From d0f4050cdc90764289b9f0c9e4db4107ba4b980d Mon Sep 17 00:00:00 2001 From: xcbyy <2578898740@qq.com> Date: Fri, 9 Oct 2026 17:18:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E4=B8=8A=E4=BC=A0=E4=B8=8E=E7=9C=9F=E5=AE=9E?= =?UTF-8?q?=E6=9D=A1=E7=A0=81=E4=BA=8C=E7=BB=B4=E7=A0=81=E5=BC=95=E6=93=8E?= =?UTF-8?q?=EF=BC=8C=E5=BD=BB=E5=BA=95=E5=89=A5=E7=A6=BB=E4=BF=9D=E5=BA=95?= =?UTF-8?q?Mock=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 9 + admin/.arco-cli/after-init.js | 26 + admin/.arco-cli/init.js | 28 + admin/.github/ISSUE_TEMPLATE/config.yml | 5 + admin/.github/PULL_REQUEST_TEMPLATE.md | 50 + admin/.gitignore | 5 + admin/.husky/commit-msg | 4 + admin/.husky/pre-commit | 2 + admin/.npmignore | 4 + admin/.prettierrc.js | 8 + admin/CODE_OF_CONDUCT.md | 47 + admin/LICENSE | 21 + admin/README.md | 55 + admin/README.zh-CN.md | 59 + admin/arco-design-pro-vite/.env.development | 1 + admin/arco-design-pro-vite/.env.production | 0 admin/arco-design-pro-vite/.eslintignore | 3 + admin/arco-design-pro-vite/.eslintrc.js | 70 + admin/arco-design-pro-vite/.gitignore | 5 + admin/arco-design-pro-vite/.husky/commit-msg | 4 + admin/arco-design-pro-vite/.husky/pre-commit | 4 + admin/arco-design-pro-vite/.prettierignore | 7 + admin/arco-design-pro-vite/.prettierrc.js | 10 + admin/arco-design-pro-vite/.stylelintrc.js | 30 + admin/arco-design-pro-vite/babel.config.js | 3 + .../arco-design-pro-vite/commitlint.config.js | 3 + admin/arco-design-pro-vite/components.d.ts | 15 + .../config/plugin/arcoResolver.ts | 19 + .../config/plugin/arcoStyleImport.ts | 12 + .../config/plugin/compress.ts | 34 + .../config/plugin/imagemin.ts | 37 + .../config/plugin/visualizer.ts | 18 + .../config/utils/index.ts | 9 + .../config/vite.config.base.ts | 51 + .../config/vite.config.dev.ts | 26 + .../config/vite.config.prod.ts | 32 + admin/arco-design-pro-vite/index.html | 13 + admin/arco-design-pro-vite/package.json | 101 + admin/arco-design-pro-vite/pnpm-lock.yaml | 10988 ++++++++++++++++ admin/arco-design-pro-vite/src/App.vue | 26 + .../arco-design-pro-vite/src/api/dashboard.ts | 22 + admin/arco-design-pro-vite/src/api/form.ts | 21 + .../src/api/interceptor.ts | 77 + admin/arco-design-pro-vite/src/api/list.ts | 56 + admin/arco-design-pro-vite/src/api/message.ts | 38 + admin/arco-design-pro-vite/src/api/profile.ts | 49 + .../src/api/user-center.ts | 88 + admin/arco-design-pro-vite/src/api/user.ts | 27 + .../src/api/visualization.ts | 73 + .../src/assets/images/login-banner.png | Bin 0 -> 63369 bytes .../arco-design-pro-vite/src/assets/logo.svg | 12 + .../src/assets/style/breakpoint.less | 19 + .../src/assets/style/global.less | 94 + .../src/assets/world.json | 1 + .../src/components/breadcrumb/index.vue | 35 + .../src/components/chart/index.vue | 47 + .../src/components/footer/index.vue | 16 + .../src/components/global-setting/block.vue | 79 + .../global-setting/form-wrapper.vue | 39 + .../src/components/global-setting/index.vue | 98 + .../src/components/index.ts | 35 + .../src/components/menu/index.vue | 160 + .../src/components/menu/use-menu-tree.ts | 73 + .../src/components/message-box/index.vue | 129 + .../src/components/message-box/list.vue | 149 + .../components/message-box/locale/en-US.ts | 13 + .../components/message-box/locale/zh-CN.ts | 13 + .../src/components/navbar/index.vue | 323 + .../src/components/tab-bar/index.vue | 101 + .../src/components/tab-bar/readme.md | 12 + .../src/components/tab-bar/tab-item.vue | 200 + .../src/config/settings.json | 17 + .../src/directive/index.ts | 8 + .../src/directive/permission/index.ts | 30 + admin/arco-design-pro-vite/src/env.d.ts | 11 + .../src/hooks/chart-option.ts | 27 + .../arco-design-pro-vite/src/hooks/loading.ts | 16 + .../arco-design-pro-vite/src/hooks/locale.ts | 22 + .../src/hooks/permission.ts | 33 + .../arco-design-pro-vite/src/hooks/request.ts | 26 + .../src/hooks/responsive.ts | 32 + .../arco-design-pro-vite/src/hooks/themes.ts | 12 + admin/arco-design-pro-vite/src/hooks/user.ts | 24 + .../arco-design-pro-vite/src/hooks/visible.ts | 16 + .../src/layout/default-layout.vue | 178 + .../src/layout/page-layout.vue | 25 + .../arco-design-pro-vite/src/locale/en-US.ts | 87 + .../src/locale/en-US/settings.ts | 29 + .../arco-design-pro-vite/src/locale/index.ts | 22 + .../arco-design-pro-vite/src/locale/zh-CN.ts | 87 + .../src/locale/zh-CN/settings.ts | 29 + admin/arco-design-pro-vite/src/main.ts | 28 + admin/arco-design-pro-vite/src/mock/index.ts | 26 + .../src/mock/message-box.ts | 85 + admin/arco-design-pro-vite/src/mock/user.ts | 105 + .../src/router/app-menus/index.ts | 16 + .../src/router/constants.ts | 18 + .../src/router/guard/index.ts | 17 + .../src/router/guard/permission.ts | 55 + .../src/router/guard/userLoginInfo.ts | 43 + .../arco-design-pro-vite/src/router/index.ts | 37 + .../src/router/routes/base.ts | 31 + .../src/router/routes/externalModules/arco.ts | 10 + .../src/router/routes/externalModules/faq.ts | 10 + .../src/router/routes/index.ts | 22 + .../src/router/routes/modules/activity.ts | 38 + .../src/router/routes/modules/companion.ts | 38 + .../src/router/routes/modules/dashboard.ts | 28 + .../src/router/routes/modules/exception.ts | 49 + .../src/router/routes/modules/finance.ts | 48 + .../src/router/routes/modules/form.ts | 39 + .../src/router/routes/modules/list.ts | 39 + .../src/router/routes/modules/order.ts | 38 + .../src/router/routes/modules/profile.ts | 29 + .../src/router/routes/modules/result.ts | 39 + .../src/router/routes/modules/safety.ts | 38 + .../src/router/routes/modules/user.ts | 48 + .../router/routes/modules/visualization.ts | 40 + .../src/router/routes/types.ts | 20 + .../src/router/typings.d.ts | 16 + admin/arco-design-pro-vite/src/store/index.ts | 9 + .../src/store/modules/app/index.ts | 77 + .../src/store/modules/app/types.ts | 20 + .../src/store/modules/tab-bar/index.ts | 74 + .../src/store/modules/tab-bar/types.ts | 12 + .../src/store/modules/user/index.ts | 91 + .../src/store/modules/user/types.ts | 19 + .../arco-design-pro-vite/src/types/echarts.ts | 10 + .../arco-design-pro-vite/src/types/global.ts | 37 + admin/arco-design-pro-vite/src/types/mock.ts | 5 + admin/arco-design-pro-vite/src/utils/auth.ts | 19 + admin/arco-design-pro-vite/src/utils/env.ts | 3 + admin/arco-design-pro-vite/src/utils/event.ts | 27 + admin/arco-design-pro-vite/src/utils/index.ts | 25 + admin/arco-design-pro-vite/src/utils/is.ts | 53 + .../arco-design-pro-vite/src/utils/monitor.ts | 28 + .../src/utils/route-listener.ts | 31 + .../src/utils/setup-mock.ts | 23 + .../src/views/activity/list/index.vue | 391 + .../src/views/activity/verify/index.vue | 297 + .../src/views/companion/audit/index.vue | 240 + .../src/views/companion/list/index.vue | 289 + .../monitor/components/chat-item.vue | 94 + .../monitor/components/chat-list.vue | 76 + .../monitor/components/chat-panel.vue | 79 + .../components/data-statistic-list.vue | 133 + .../monitor/components/data-statistic.vue | 56 + .../monitor/components/quick-operation.vue | 32 + .../monitor/components/studio-information.vue | 34 + .../monitor/components/studio-status.vue | 84 + .../dashboard/monitor/components/studio.vue | 51 + .../src/views/dashboard/monitor/index.vue | 87 + .../views/dashboard/monitor/locale/en-US.ts | 48 + .../views/dashboard/monitor/locale/zh-CN.ts | 48 + .../src/views/dashboard/monitor/mock.ts | 26 + .../workplace/components/action-hub.vue | 309 + .../workplace/components/announcement.vue | 71 + .../dashboard/workplace/components/banner.vue | 114 + .../workplace/components/carousel.vue | 24 + .../components/categories-percent.vue | 121 + .../workplace/components/content-chart.vue | 218 + .../workplace/components/data-panel.vue | 156 + .../dashboard/workplace/components/docs.vue | 42 + .../workplace/components/popular-content.vue | 174 + .../workplace/components/quick-operation.vue | 43 + .../workplace/components/quick-todo-list.vue | 174 + .../workplace/components/quick-verifier.vue | 121 + .../workplace/components/recently-visited.vue | 44 + .../src/views/dashboard/workplace/index.vue | 155 + .../views/dashboard/workplace/locale/en-US.ts | 38 + .../views/dashboard/workplace/locale/zh-CN.ts | 37 + .../src/views/dashboard/workplace/mock.ts | 129 + .../src/views/exception/403/index.vue | 41 + .../src/views/exception/403/locale/en-US.ts | 6 + .../src/views/exception/403/locale/zh-CN.ts | 5 + .../src/views/exception/404/index.vue | 47 + .../src/views/exception/404/locale/en-US.ts | 6 + .../src/views/exception/404/locale/zh-CN.ts | 6 + .../src/views/exception/500/index.vue | 41 + .../src/views/exception/500/locale/en-US.ts | 5 + .../src/views/exception/500/locale/zh-CN.ts | 5 + .../src/views/finance/config/index.vue | 154 + .../src/views/finance/records/index.vue | 124 + .../src/views/finance/withdraw/index.vue | 188 + .../src/views/form/group/index.vue | 293 + .../src/views/form/group/locale/en-US.ts | 41 + .../src/views/form/group/locale/zh-CN.ts | 40 + .../views/form/step/components/base-info.vue | 137 + .../form/step/components/channel-info.vue | 151 + .../views/form/step/components/success.vue | 49 + .../src/views/form/step/index.vue | 118 + .../src/views/form/step/locale/en-US.ts | 66 + .../src/views/form/step/locale/zh-CN.ts | 52 + .../src/views/form/step/mock.ts | 11 + .../views/list/card/components/card-wrap.vue | 204 + .../card/components/quality-inspection.vue | 115 + .../list/card/components/rules-preset.vue | 51 + .../list/card/components/the-service.vue | 57 + .../src/views/list/card/index.vue | 92 + .../src/views/list/card/locale/en-US.ts | 19 + .../src/views/list/card/locale/zh-CN.ts | 19 + .../src/views/list/card/mock.ts | 186 + .../src/views/list/search-table/index.vue | 514 + .../views/list/search-table/locale/en-US.ts | 44 + .../views/list/search-table/locale/zh-CN.ts | 45 + .../src/views/list/search-table/mock.ts | 35 + .../src/views/login/components/banner.vue | 84 + .../src/views/login/components/login-form.vue | 165 + .../src/views/login/index.vue | 81 + .../src/views/login/locale/en-US.ts | 21 + .../src/views/login/locale/zh-CN.ts | 19 + .../src/views/not-found/index.vue | 30 + .../src/views/order/arbitration/index.vue | 162 + .../src/views/order/list/index.vue | 230 + .../basic/components/operation-log.vue | 77 + .../profile/basic/components/profile-item.vue | 148 + .../src/views/profile/basic/index.vue | 83 + .../src/views/profile/basic/locale/en-US.ts | 39 + .../src/views/profile/basic/locale/zh-CN.ts | 39 + .../src/views/profile/basic/mock.ts | 58 + .../src/views/redirect/index.vue | 16 + .../src/views/result/error/index.vue | 77 + .../src/views/result/error/locale/en-US.ts | 13 + .../src/views/result/error/locale/zh-CN.ts | 11 + .../src/views/result/success/index.vue | 99 + .../src/views/result/success/locale/en-US.ts | 15 + .../src/views/result/success/locale/zh-CN.ts | 15 + .../src/views/safety/audit-log/index.vue | 110 + .../src/views/safety/places/index.vue | 185 + .../user/info/components/latest-activity.vue | 88 + .../info/components/latest-notification.vue | 27 + .../views/user/info/components/my-project.vue | 91 + .../views/user/info/components/my-team.vue | 64 + .../user/info/components/user-info-header.vue | 69 + .../src/views/user/info/index.vue | 87 + .../src/views/user/info/locale/en-US.ts | 15 + .../src/views/user/info/locale/zh-CN.ts | 15 + .../src/views/user/info/mock.ts | 162 + .../src/views/user/list/index.vue | 978 ++ .../setting/components/basic-information.vue | 159 + .../components/certification-records.vue | 77 + .../user/setting/components/certification.vue | 37 + .../components/enterprise-certification.vue | 116 + .../setting/components/security-settings.vue | 124 + .../user/setting/components/user-panel.vue | 155 + .../src/views/user/setting/index.vue | 57 + .../src/views/user/setting/locale/en-US.ts | 91 + .../src/views/user/setting/locale/zh-CN.ts | 81 + .../src/views/user/setting/mock.ts | 42 + .../data-analysis/components/chain-item.vue | 291 + .../components/content-period-analysis.vue | 216 + .../components/content-publish-ratio.vue | 162 + .../components/popular-author.vue | 75 + .../components/public-opinion.vue | 65 + .../visualization/data-analysis/index.vue | 65 + .../data-analysis/locale/en-US.ts | 16 + .../data-analysis/locale/zh-CN.ts | 16 + .../views/visualization/data-analysis/mock.ts | 108 + .../components/chain-item.vue | 152 + .../components/content-publishing-source.vue | 230 + .../components/content-type-distribution.vue | 103 + .../components/data-chain-growth.vue | 38 + .../components/data-overview.vue | 310 + .../components/user-actions.vue | 76 + .../multi-dimension-data-analysis/index.vue | 55 + .../locale/en-US.ts | 18 + .../locale/zh-CN.ts | 15 + .../multi-dimension-data-analysis/mock.ts | 49 + admin/arco-design-pro-vite/tsconfig.json | 20 + admin/commitlint.config.js | 3 + admin/docs/changelog.md | 396 + admin/docs/changelog.zh-CN.md | 398 + admin/package.json | 33 + admin/pnpm-lock.yaml | 1047 ++ admin/scripts/cra.js | 80 + admin/scripts/install.js | 1 + admin/scripts/nuxt.js | 13 + admin/scripts/postpublish.js | 4 + admin/scripts/prepublish.js | 11 + admin/scripts/vite.js | 161 + api-proxy.conf | 19 + peiwan.sql | 349 + pwuniapp/App.vue | 70 +- pwuniapp/common/api.js | 681 + pwuniapp/common/barcode.js | 74 + pwuniapp/common/icons.js | 259 + pwuniapp/common/mock.js | 17 +- pwuniapp/common/nav.js | 86 + pwuniapp/common/qrcode.js | 359 + pwuniapp/common/request.js | 68 + pwuniapp/common/role.js | 175 + pwuniapp/common/theme.js | 58 +- pwuniapp/components/CustomTabBar.vue | 415 + pwuniapp/components/SkeletonScreen.vue | 664 + pwuniapp/package.json | 6 + pwuniapp/pages.json | 34 +- pwuniapp/pages/activity/create.vue | 750 +- pwuniapp/pages/activity/detail.vue | 1506 ++- pwuniapp/pages/activity/list.vue | 601 +- pwuniapp/pages/activity/my-ticket.vue | 295 +- pwuniapp/pages/community/index.vue | 2004 +++ pwuniapp/pages/expert/detail.vue | 347 +- pwuniapp/pages/expert/hall.vue | 780 ++ pwuniapp/pages/expert/radar.vue | 1232 ++ pwuniapp/pages/expert/workspace.vue | 201 +- pwuniapp/pages/index/index.vue | 602 +- pwuniapp/pages/order/create.vue | 363 +- pwuniapp/pages/order/list.vue | 601 +- pwuniapp/pages/user/index.vue | 937 +- pwuniapp/vite.config.js | 9 + server/.env.example | 11 + server/package.json | 23 +- server/pnpm-lock.yaml | 4950 ++++++- server/src/core/activity/activity.service.ts | 206 + server/src/core/auth/auth-role.manager.ts | 154 +- .../src/core/order/companion-order.service.ts | 145 +- server/src/core/review/review.service.ts | 111 + server/src/db/mysql.ts | 495 + server/src/db/repository.ts | 1448 ++ server/src/db/test-remote.ts | 34 + server/src/index.ts | 1037 ++ server/tests/activity-list-content.spec.ts | 26 + server/tests/activity.spec.ts | 200 + server/tests/barcode-qrcode.spec.ts | 90 + server/tests/rbac-permission.spec.ts | 712 + server/tests/review-comment.spec.ts | 158 + server/tests/skeleton.spec.ts | 83 + server/tests/theme.spec.ts | 36 + server/tests/upload.spec.ts | 33 + 329 files changed, 54416 insertions(+), 926 deletions(-) create mode 100644 admin/.arco-cli/after-init.js create mode 100644 admin/.arco-cli/init.js create mode 100644 admin/.github/ISSUE_TEMPLATE/config.yml create mode 100644 admin/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 admin/.gitignore create mode 100644 admin/.husky/commit-msg create mode 100644 admin/.husky/pre-commit create mode 100644 admin/.npmignore create mode 100644 admin/.prettierrc.js create mode 100644 admin/CODE_OF_CONDUCT.md create mode 100644 admin/LICENSE create mode 100644 admin/README.md create mode 100644 admin/README.zh-CN.md create mode 100644 admin/arco-design-pro-vite/.env.development create mode 100644 admin/arco-design-pro-vite/.env.production create mode 100644 admin/arco-design-pro-vite/.eslintignore create mode 100644 admin/arco-design-pro-vite/.eslintrc.js create mode 100644 admin/arco-design-pro-vite/.gitignore create mode 100644 admin/arco-design-pro-vite/.husky/commit-msg create mode 100644 admin/arco-design-pro-vite/.husky/pre-commit create mode 100644 admin/arco-design-pro-vite/.prettierignore create mode 100644 admin/arco-design-pro-vite/.prettierrc.js create mode 100644 admin/arco-design-pro-vite/.stylelintrc.js create mode 100644 admin/arco-design-pro-vite/babel.config.js create mode 100644 admin/arco-design-pro-vite/commitlint.config.js create mode 100644 admin/arco-design-pro-vite/components.d.ts create mode 100644 admin/arco-design-pro-vite/config/plugin/arcoResolver.ts create mode 100644 admin/arco-design-pro-vite/config/plugin/arcoStyleImport.ts create mode 100644 admin/arco-design-pro-vite/config/plugin/compress.ts create mode 100644 admin/arco-design-pro-vite/config/plugin/imagemin.ts create mode 100644 admin/arco-design-pro-vite/config/plugin/visualizer.ts create mode 100644 admin/arco-design-pro-vite/config/utils/index.ts create mode 100644 admin/arco-design-pro-vite/config/vite.config.base.ts create mode 100644 admin/arco-design-pro-vite/config/vite.config.dev.ts create mode 100644 admin/arco-design-pro-vite/config/vite.config.prod.ts create mode 100644 admin/arco-design-pro-vite/index.html create mode 100644 admin/arco-design-pro-vite/package.json create mode 100644 admin/arco-design-pro-vite/pnpm-lock.yaml create mode 100644 admin/arco-design-pro-vite/src/App.vue create mode 100644 admin/arco-design-pro-vite/src/api/dashboard.ts create mode 100644 admin/arco-design-pro-vite/src/api/form.ts create mode 100644 admin/arco-design-pro-vite/src/api/interceptor.ts create mode 100644 admin/arco-design-pro-vite/src/api/list.ts create mode 100644 admin/arco-design-pro-vite/src/api/message.ts create mode 100644 admin/arco-design-pro-vite/src/api/profile.ts create mode 100644 admin/arco-design-pro-vite/src/api/user-center.ts create mode 100644 admin/arco-design-pro-vite/src/api/user.ts create mode 100644 admin/arco-design-pro-vite/src/api/visualization.ts create mode 100644 admin/arco-design-pro-vite/src/assets/images/login-banner.png create mode 100644 admin/arco-design-pro-vite/src/assets/logo.svg create mode 100644 admin/arco-design-pro-vite/src/assets/style/breakpoint.less create mode 100644 admin/arco-design-pro-vite/src/assets/style/global.less create mode 100644 admin/arco-design-pro-vite/src/assets/world.json create mode 100644 admin/arco-design-pro-vite/src/components/breadcrumb/index.vue create mode 100644 admin/arco-design-pro-vite/src/components/chart/index.vue create mode 100644 admin/arco-design-pro-vite/src/components/footer/index.vue create mode 100644 admin/arco-design-pro-vite/src/components/global-setting/block.vue create mode 100644 admin/arco-design-pro-vite/src/components/global-setting/form-wrapper.vue create mode 100644 admin/arco-design-pro-vite/src/components/global-setting/index.vue create mode 100644 admin/arco-design-pro-vite/src/components/index.ts create mode 100644 admin/arco-design-pro-vite/src/components/menu/index.vue create mode 100644 admin/arco-design-pro-vite/src/components/menu/use-menu-tree.ts create mode 100644 admin/arco-design-pro-vite/src/components/message-box/index.vue create mode 100644 admin/arco-design-pro-vite/src/components/message-box/list.vue create mode 100644 admin/arco-design-pro-vite/src/components/message-box/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/components/message-box/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/components/navbar/index.vue create mode 100644 admin/arco-design-pro-vite/src/components/tab-bar/index.vue create mode 100644 admin/arco-design-pro-vite/src/components/tab-bar/readme.md create mode 100644 admin/arco-design-pro-vite/src/components/tab-bar/tab-item.vue create mode 100644 admin/arco-design-pro-vite/src/config/settings.json create mode 100644 admin/arco-design-pro-vite/src/directive/index.ts create mode 100644 admin/arco-design-pro-vite/src/directive/permission/index.ts create mode 100644 admin/arco-design-pro-vite/src/env.d.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/chart-option.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/loading.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/locale.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/permission.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/request.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/responsive.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/themes.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/user.ts create mode 100644 admin/arco-design-pro-vite/src/hooks/visible.ts create mode 100644 admin/arco-design-pro-vite/src/layout/default-layout.vue create mode 100644 admin/arco-design-pro-vite/src/layout/page-layout.vue create mode 100644 admin/arco-design-pro-vite/src/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/locale/en-US/settings.ts create mode 100644 admin/arco-design-pro-vite/src/locale/index.ts create mode 100644 admin/arco-design-pro-vite/src/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/locale/zh-CN/settings.ts create mode 100644 admin/arco-design-pro-vite/src/main.ts create mode 100644 admin/arco-design-pro-vite/src/mock/index.ts create mode 100644 admin/arco-design-pro-vite/src/mock/message-box.ts create mode 100644 admin/arco-design-pro-vite/src/mock/user.ts create mode 100644 admin/arco-design-pro-vite/src/router/app-menus/index.ts create mode 100644 admin/arco-design-pro-vite/src/router/constants.ts create mode 100644 admin/arco-design-pro-vite/src/router/guard/index.ts create mode 100644 admin/arco-design-pro-vite/src/router/guard/permission.ts create mode 100644 admin/arco-design-pro-vite/src/router/guard/userLoginInfo.ts create mode 100644 admin/arco-design-pro-vite/src/router/index.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/base.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/externalModules/arco.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/externalModules/faq.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/index.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/activity.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/companion.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/dashboard.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/exception.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/finance.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/form.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/list.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/order.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/profile.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/result.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/safety.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/user.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/modules/visualization.ts create mode 100644 admin/arco-design-pro-vite/src/router/routes/types.ts create mode 100644 admin/arco-design-pro-vite/src/router/typings.d.ts create mode 100644 admin/arco-design-pro-vite/src/store/index.ts create mode 100644 admin/arco-design-pro-vite/src/store/modules/app/index.ts create mode 100644 admin/arco-design-pro-vite/src/store/modules/app/types.ts create mode 100644 admin/arco-design-pro-vite/src/store/modules/tab-bar/index.ts create mode 100644 admin/arco-design-pro-vite/src/store/modules/tab-bar/types.ts create mode 100644 admin/arco-design-pro-vite/src/store/modules/user/index.ts create mode 100644 admin/arco-design-pro-vite/src/store/modules/user/types.ts create mode 100644 admin/arco-design-pro-vite/src/types/echarts.ts create mode 100644 admin/arco-design-pro-vite/src/types/global.ts create mode 100644 admin/arco-design-pro-vite/src/types/mock.ts create mode 100644 admin/arco-design-pro-vite/src/utils/auth.ts create mode 100644 admin/arco-design-pro-vite/src/utils/env.ts create mode 100644 admin/arco-design-pro-vite/src/utils/event.ts create mode 100644 admin/arco-design-pro-vite/src/utils/index.ts create mode 100644 admin/arco-design-pro-vite/src/utils/is.ts create mode 100644 admin/arco-design-pro-vite/src/utils/monitor.ts create mode 100644 admin/arco-design-pro-vite/src/utils/route-listener.ts create mode 100644 admin/arco-design-pro-vite/src/utils/setup-mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/activity/list/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/activity/verify/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/companion/audit/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/companion/list/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-item.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-list.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-panel.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/data-statistic-list.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/data-statistic.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/quick-operation.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio-information.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio-status.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/monitor/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/action-hub.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/announcement.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/banner.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/carousel.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/categories-percent.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/content-chart.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/data-panel.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/docs.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/popular-content.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-operation.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-todo-list.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-verifier.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/components/recently-visited.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/dashboard/workplace/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/exception/403/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/exception/403/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/exception/403/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/exception/404/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/exception/404/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/exception/404/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/exception/500/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/exception/500/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/exception/500/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/finance/config/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/finance/records/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/finance/withdraw/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/form/group/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/form/group/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/form/group/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/form/step/components/base-info.vue create mode 100644 admin/arco-design-pro-vite/src/views/form/step/components/channel-info.vue create mode 100644 admin/arco-design-pro-vite/src/views/form/step/components/success.vue create mode 100644 admin/arco-design-pro-vite/src/views/form/step/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/form/step/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/form/step/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/form/step/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/list/card/components/card-wrap.vue create mode 100644 admin/arco-design-pro-vite/src/views/list/card/components/quality-inspection.vue create mode 100644 admin/arco-design-pro-vite/src/views/list/card/components/rules-preset.vue create mode 100644 admin/arco-design-pro-vite/src/views/list/card/components/the-service.vue create mode 100644 admin/arco-design-pro-vite/src/views/list/card/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/list/card/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/list/card/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/list/card/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/list/search-table/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/list/search-table/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/list/search-table/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/list/search-table/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/login/components/banner.vue create mode 100644 admin/arco-design-pro-vite/src/views/login/components/login-form.vue create mode 100644 admin/arco-design-pro-vite/src/views/login/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/login/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/login/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/not-found/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/order/arbitration/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/order/list/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/profile/basic/components/operation-log.vue create mode 100644 admin/arco-design-pro-vite/src/views/profile/basic/components/profile-item.vue create mode 100644 admin/arco-design-pro-vite/src/views/profile/basic/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/profile/basic/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/profile/basic/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/profile/basic/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/redirect/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/result/error/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/result/error/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/result/error/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/result/success/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/result/success/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/result/success/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/safety/audit-log/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/safety/places/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/info/components/latest-activity.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/info/components/latest-notification.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/info/components/my-project.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/info/components/my-team.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/info/components/user-info-header.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/info/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/info/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/user/info/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/user/info/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/user/list/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/components/basic-information.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/components/certification-records.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/components/certification.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/components/enterprise-certification.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/components/security-settings.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/components/user-panel.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/user/setting/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/chain-item.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/content-period-analysis.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/content-publish-ratio.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/popular-author.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/public-opinion.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/visualization/data-analysis/mock.ts create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/chain-item.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/content-publishing-source.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/content-type-distribution.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/data-chain-growth.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/data-overview.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/user-actions.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/index.vue create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/locale/en-US.ts create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/locale/zh-CN.ts create mode 100644 admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/mock.ts create mode 100644 admin/arco-design-pro-vite/tsconfig.json create mode 100644 admin/commitlint.config.js create mode 100644 admin/docs/changelog.md create mode 100644 admin/docs/changelog.zh-CN.md create mode 100644 admin/package.json create mode 100644 admin/pnpm-lock.yaml create mode 100644 admin/scripts/cra.js create mode 100644 admin/scripts/install.js create mode 100644 admin/scripts/nuxt.js create mode 100644 admin/scripts/postpublish.js create mode 100644 admin/scripts/prepublish.js create mode 100644 admin/scripts/vite.js create mode 100644 api-proxy.conf create mode 100644 peiwan.sql create mode 100644 pwuniapp/common/api.js create mode 100644 pwuniapp/common/barcode.js create mode 100644 pwuniapp/common/nav.js create mode 100644 pwuniapp/common/qrcode.js create mode 100644 pwuniapp/common/request.js create mode 100644 pwuniapp/common/role.js create mode 100644 pwuniapp/components/CustomTabBar.vue create mode 100644 pwuniapp/components/SkeletonScreen.vue create mode 100644 pwuniapp/package.json create mode 100644 pwuniapp/pages/community/index.vue create mode 100644 pwuniapp/pages/expert/hall.vue create mode 100644 pwuniapp/pages/expert/radar.vue create mode 100644 pwuniapp/vite.config.js create mode 100644 server/.env.example create mode 100644 server/src/core/review/review.service.ts create mode 100644 server/src/db/mysql.ts create mode 100644 server/src/db/repository.ts create mode 100644 server/src/db/test-remote.ts create mode 100644 server/src/index.ts create mode 100644 server/tests/barcode-qrcode.spec.ts create mode 100644 server/tests/rbac-permission.spec.ts create mode 100644 server/tests/review-comment.spec.ts create mode 100644 server/tests/skeleton.spec.ts create mode 100644 server/tests/upload.spec.ts diff --git a/.gitignore b/.gitignore index d940ad5..fbc3ac4 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,12 @@ Thumbs.db *.njsproj *.sln *.sw? + +# Backups & deploy packages +*.zip +*.bak* +*.git_backup* +deploy_staging/ + +# Server credential files +AGENT.md diff --git a/admin/.arco-cli/after-init.js b/admin/.arco-cli/after-init.js new file mode 100644 index 0000000..a309b74 --- /dev/null +++ b/admin/.arco-cli/after-init.js @@ -0,0 +1,26 @@ +const { spawnSync } = require('child_process'); + +const isWindows = process.platform === 'win32'; +const cmd = isWindows ? 'pnpm.cmd' : 'pnpm'; + +const logInfo = (messages) => { + messages.forEach((m) => { + console.log(`\x1B[32m${m}\x1B[0m`); + }); +}; + +module.exports = ({ projectName }) => { + const { error } = spawnSync(cmd, ['add', 'arco-design-pro-vue']); + + if (error) { + throw error; + } + + logInfo([ + '******************************************************************************', + ' Read README.md for help information. Execute following command to start', + ` $ cd ${projectName}`, + ' $ pnpm run dev', + '******************************************************************************', + ]); +}; diff --git a/admin/.arco-cli/init.js b/admin/.arco-cli/init.js new file mode 100644 index 0000000..0212c4f --- /dev/null +++ b/admin/.arco-cli/init.js @@ -0,0 +1,28 @@ +const { spawnSync } = require('child_process'); + +const FRAMEWORK_LIST = ['cra', 'next', 'vite']; + +const isWindows = process.platform === 'win32'; +const cmd = isWindows ? 'npm.cmd' : 'npm'; + +module.exports = function ({ framework, projectPath, simple }) { + if (FRAMEWORK_LIST.indexOf(framework) > -1) { + const command = ['run', `gen:${framework}`, '--']; + if (projectPath) { + command.push(`--projectPath=${projectPath}`); + } + if (simple) { + command.push(`--simple`); + } + + const { stderr, error } = spawnSync(cmd, command); + + if (error) { + throw error; + } + + if (stderr && stderr.toString()) { + throw new Error(`Failed to copy project content.\n${stderr.toString()}`); + } + } +}; diff --git a/admin/.github/ISSUE_TEMPLATE/config.yml b/admin/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..ec91038 --- /dev/null +++ b/admin/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Create new issue + url: https://arco.design/issue-helper?repo=arco-design-pro-vue + about: Please use the following link to create a new issue. diff --git a/admin/.github/PULL_REQUEST_TEMPLATE.md b/admin/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..83b96de --- /dev/null +++ b/admin/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,50 @@ + + + + +## Types of changes + + +- [ ] New feature +- [ ] Bug fix +- [ ] Documentation change +- [ ] Coding style change +- [ ] Refactoring +- [ ] Performance improvement +- [ ] Test cases +- [ ] Continuous integration +- [ ] Typescript definition change +- [ ] Breaking change + +## Background and context + + + + +## Solution + + + +## How is the change tested? + + + + +## Changelog + +| Changelog(CN) | Changelog(EN) | Related issues | +| ------------- | ------------- | -------------- | +| | | | + +## Checklist: + +- [ ] Provide changelog for relevant changes (e.g. bug fixes and new features) if applicable. +- [ ] Changes are submitted to the appropriate branch (e.g. features should be submitted to `feature` branch and others should be submitted to `master` branch) + +## Other information + + \ No newline at end of file diff --git a/admin/.gitignore b/admin/.gitignore new file mode 100644 index 0000000..d451ff1 --- /dev/null +++ b/admin/.gitignore @@ -0,0 +1,5 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local diff --git a/admin/.husky/commit-msg b/admin/.husky/commit-msg new file mode 100644 index 0000000..d69ab0a --- /dev/null +++ b/admin/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +pnpm commitlint --edit $1 diff --git a/admin/.husky/pre-commit b/admin/.husky/pre-commit new file mode 100644 index 0000000..6700f51 --- /dev/null +++ b/admin/.husky/pre-commit @@ -0,0 +1,2 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" diff --git a/admin/.npmignore b/admin/.npmignore new file mode 100644 index 0000000..c32103c --- /dev/null +++ b/admin/.npmignore @@ -0,0 +1,4 @@ +# .npmignore +node_modules +tests +dist \ No newline at end of file diff --git a/admin/.prettierrc.js b/admin/.prettierrc.js new file mode 100644 index 0000000..24da7c8 --- /dev/null +++ b/admin/.prettierrc.js @@ -0,0 +1,8 @@ +module.exports = { + tabWidth: 2, + semi: true, + printWidth: 80, + singleQuote: true, + quoteProps: 'consistent', + htmlWhitespaceSensitivity: 'strict', +}; diff --git a/admin/CODE_OF_CONDUCT.md b/admin/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..198fd88 --- /dev/null +++ b/admin/CODE_OF_CONDUCT.md @@ -0,0 +1,47 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at pengjiyuan@bytendance.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq \ No newline at end of file diff --git a/admin/LICENSE b/admin/LICENSE new file mode 100644 index 0000000..e252026 --- /dev/null +++ b/admin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Bytedance, Inc. and its affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/admin/README.md b/admin/README.md new file mode 100644 index 0000000..b579df2 --- /dev/null +++ b/admin/README.md @@ -0,0 +1,55 @@ +
+

Arco Design Pro

+
+ +
+ +An out-of-the-box solution to quickly build enterprise-level applications based on [Arco Design](https://arco.design/). + +[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/arco-design/arco-design-pro/blob/main/LICENSE) + +
+ +
+ +English | [简体中文](./README.zh-CN.md) + +
+ +![f769c408-adf4-4a85-b4a5-cc0d7e7f29ef](https://user-images.githubusercontent.com/19399269/148364725-b7a36383-04a9-4d67-87a4-91e970d0d083.gif) + +## ✨ Features + +- **TypeScript** - The code is completely written in TypeScript. +- **Vue3** - Look to the future and embrace Vue3. +- **Pinia** - It's trendy and delicious. +- **Arco Design** - Powered by [ArcoDesign Vue](https://github.com/arco-design/arco-design-vue) component library. +- **Templates** - 16+ page templates, covering tables, lists, forms, dashboard, visualization and other scenes. +- **Themes** - Based on the rich theme market of [DesignLab](https://arco.design/themes), make your projects ever-changing. +- **Dark Theme** - Switch to dark theme with one click. +- **Mock** - Built-in API simulation scheme, code as comments, more simulation of the online environment. +- **I18n** - Built-in internationalized multi-language solution. +- **Config** - Flexible configuration of page color, layout, etc. + +## 🌈 Usage + +```bash +$ npm i arco-cli@latest pnpm -g + +$ arco init my-project +``` + +## 🔗 Link + +- [Arco Design Pro](https://pro.arco.design) +- [Preview](https://vue-pro.arco.design) + +## 💎 Changelog + +- [Chinese Version](https://github.com/arco-design/arco-design-pro-vue/blob/main/docs/changelog.zh-CN.md) + +- [English Version](https://github.com/arco-design/arco-design-pro-vue/blob/main/docs/changelog.md) + +## LICENSE + +[MIT](./LICENSE) © [ArcoDesign](https://arco.design) diff --git a/admin/README.zh-CN.md b/admin/README.zh-CN.md new file mode 100644 index 0000000..2bfe901 --- /dev/null +++ b/admin/README.zh-CN.md @@ -0,0 +1,59 @@ +
+

Arco Design Pro

+
+ +
+ +基于 [Arco Design](https://arco.design/) Vue 组件库的开箱即用的中后台前端解决方案。 + +Admin 中后台管理页面,创新的多架构方案。 + +[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/arco-design/arco-design-pro/blob/main/LICENSE) + +
+ + +
+ +[English](./README.md) | 简体中文 + +
+ +![f769c408-adf4-4a85-b4a5-cc0d7e7f29ef](https://user-images.githubusercontent.com/19399269/148364725-b7a36383-04a9-4d67-87a4-91e970d0d083.gif) + +## ✨ Features + +- **TypeScript** - 代码完全使用 TypeScript 书写。 +- **Vue3** - 面向未来,拥抱 Vue3。 +- **Pinia** - 紧跟潮流,美味可口。 +- **Arco Design** - 由 [ArcoDesign Vue](https://github.com/arco-design/arco-design-vue) 组件库强力驱动。 +- **Templates** - 16+ 页面模版,覆盖表格、列表、表单、工作台、可视化等场景。 +- **Themes** - 基于「[风格配置平台](https://arco.design/themes)」丰富的主题市场,让你的项目千变万化。 +- **Dark Theme** - 一键丝滑切换暗黑风格。 +- **Mock** - 内置 api 模拟方案,代码即注释,更加仿真线上环境。 +- **I18n** - 内置国际化多语言解决方案。 +- **Config** - 灵活配置页面配色、布局等。 + + +## 🌈 Usage + +```bash +$ npm i arco-cli@latest yarn -g + +$ arco init my-project +``` + +## 🔗 Link + +- [Arco Design Pro 官网](https://pro.arco.design) +- [预览](https://vue-pro.arco.design) + +## 💎 Changelog + +- [中文版](https://github.com/arco-design/arco-design-pro-vue/blob/main/docs/changelog.zh-CN.md) + +- [英文版](https://github.com/arco-design/arco-design-pro-vue/blob/main/docs/changelog.md) + +## LICENSE + +[MIT](./LICENSE) © [ArcoDesign](https://arco.design) diff --git a/admin/arco-design-pro-vite/.env.development b/admin/arco-design-pro-vite/.env.development new file mode 100644 index 0000000..31bb01d --- /dev/null +++ b/admin/arco-design-pro-vite/.env.development @@ -0,0 +1 @@ +VITE_API_BASE_URL='' \ No newline at end of file diff --git a/admin/arco-design-pro-vite/.env.production b/admin/arco-design-pro-vite/.env.production new file mode 100644 index 0000000..e69de29 diff --git a/admin/arco-design-pro-vite/.eslintignore b/admin/arco-design-pro-vite/.eslintignore new file mode 100644 index 0000000..fc04190 --- /dev/null +++ b/admin/arco-design-pro-vite/.eslintignore @@ -0,0 +1,3 @@ +/*.json +/*.js +dist \ No newline at end of file diff --git a/admin/arco-design-pro-vite/.eslintrc.js b/admin/arco-design-pro-vite/.eslintrc.js new file mode 100644 index 0000000..906bb5f --- /dev/null +++ b/admin/arco-design-pro-vite/.eslintrc.js @@ -0,0 +1,70 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const path = require('path'); + +module.exports = { + root: true, + parser: 'vue-eslint-parser', + parserOptions: { + // Parser that checks the content of the + + diff --git a/admin/arco-design-pro-vite/package.json b/admin/arco-design-pro-vite/package.json new file mode 100644 index 0000000..82ca247 --- /dev/null +++ b/admin/arco-design-pro-vite/package.json @@ -0,0 +1,101 @@ +{ + "name": "arco-design-pro-vue", + "description": "Arco Design Pro for Vue", + "version": "1.0.0", + "private": true, + "author": "ArcoDesign Team", + "license": "MIT", + "scripts": { + "dev": "vite --config ./config/vite.config.dev.ts", + "build": "vite build --config ./config/vite.config.prod.ts", + "report": "cross-env REPORT=true npm run build", + "preview": "npm run build && vite preview --host", + "type:check": "vue-tsc --noEmit --skipLibCheck", + "lint-staged": "npx lint-staged" + }, + "lint-staged": { + "*.{js,ts,jsx,tsx}": [ + "prettier --write", + "eslint --fix" + ], + "*.vue": [ + "stylelint --fix", + "prettier --write", + "eslint --fix" + ], + "*.{less,css}": [ + "stylelint --fix", + "prettier --write" + ] + }, + "dependencies": { + "@arco-design/web-vue": "^2.44.7", + "@vueuse/core": "^9.3.0", + "axios": "^0.24.0", + "dayjs": "^1.11.5", + "echarts": "^5.4.0", + "lodash": "^4.17.21", + "mitt": "^3.0.0", + "nprogress": "^0.2.0", + "pinia": "^2.0.23", + "query-string": "^8.0.3", + "sortablejs": "^1.15.0", + "vue": "^3.2.40", + "vue-echarts": "^6.2.3", + "vue-i18n": "^9.2.2", + "vue-router": "^4.0.14" + }, + "devDependencies": { + "@arco-plugins/vite-vue": "^1.4.5", + "@commitlint/cli": "^17.1.2", + "@commitlint/config-conventional": "^17.1.0", + "@types/lodash": "^4.14.186", + "@types/mockjs": "^1.0.7", + "@types/nprogress": "^0.2.0", + "@types/sortablejs": "^1.15.0", + "@typescript-eslint/eslint-plugin": "^5.40.0", + "@typescript-eslint/parser": "^5.40.0", + "@vitejs/plugin-vue": "^3.1.2", + "@vitejs/plugin-vue-jsx": "^2.0.1", + "@vue/babel-plugin-jsx": "^1.1.1", + "consola": "^2.15.3", + "cross-env": "^7.0.3", + "eslint": "^8.25.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-import-resolver-typescript": "^3.5.1", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-vue": "^9.6.0", + "husky": "^8.0.1", + "less": "^4.1.3", + "lint-staged": "^13.0.3", + "mockjs": "^1.1.0", + "postcss-html": "^1.5.0", + "prettier": "^2.7.1", + "rollup": "^3.9.1", + "rollup-plugin-visualizer": "^5.8.2", + "stylelint": "^14.13.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-rational-order": "^0.1.2", + "stylelint-config-recommended-vue": "^1.4.0", + "stylelint-config-standard": "^29.0.0", + "stylelint-order": "^5.0.0", + "typescript": "^4.8.4", + "unplugin-vue-components": "^0.24.1", + "vite": "^3.2.5", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-imagemin": "^0.6.1", + "vite-svg-loader": "^3.6.0", + "vue-tsc": "^1.0.14" + }, + "engines": { + "node": ">=14.0.0" + }, + "resolutions": { + "bin-wrapper": "npm:bin-wrapper-china", + "rollup": "^2.56.3", + "gifsicle": "5.2.0" + } +} diff --git a/admin/arco-design-pro-vite/pnpm-lock.yaml b/admin/arco-design-pro-vite/pnpm-lock.yaml new file mode 100644 index 0000000..ae34e40 --- /dev/null +++ b/admin/arco-design-pro-vite/pnpm-lock.yaml @@ -0,0 +1,10988 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + bin-wrapper: npm:bin-wrapper-china + rollup: ^2.56.3 + gifsicle: 5.2.0 + +importers: + + .: + dependencies: + '@arco-design/web-vue': + specifier: ^2.44.7 + version: 2.58.0(vue@3.5.43(typescript@4.9.5)) + '@vueuse/core': + specifier: ^9.3.0 + version: 9.13.0(vue@3.5.43(typescript@4.9.5)) + axios: + specifier: ^0.24.0 + version: 0.24.0 + dayjs: + specifier: ^1.11.5 + version: 1.11.23 + echarts: + specifier: ^5.4.0 + version: 5.6.0 + lodash: + specifier: ^4.17.21 + version: 4.18.1 + mitt: + specifier: ^3.0.0 + version: 3.0.1 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + pinia: + specifier: ^2.0.23 + version: 2.3.1(typescript@4.9.5)(vue@3.5.43(typescript@4.9.5)) + query-string: + specifier: ^8.0.3 + version: 8.2.0 + sortablejs: + specifier: ^1.15.0 + version: 1.15.7 + vue: + specifier: ^3.2.40 + version: 3.5.43(typescript@4.9.5) + vue-echarts: + specifier: ^6.2.3 + version: 6.7.3(@vue/runtime-core@3.5.43)(echarts@5.6.0)(vue@3.5.43(typescript@4.9.5)) + vue-i18n: + specifier: ^9.2.2 + version: 9.14.5(vue@3.5.43(typescript@4.9.5)) + vue-router: + specifier: ^4.0.14 + version: 4.6.4(vue@3.5.43(typescript@4.9.5)) + devDependencies: + '@arco-plugins/vite-vue': + specifier: ^1.4.5 + version: 1.4.6 + '@commitlint/cli': + specifier: ^17.1.2 + version: 17.8.1 + '@commitlint/config-conventional': + specifier: ^17.1.0 + version: 17.8.1 + '@types/lodash': + specifier: ^4.14.186 + version: 4.17.25 + '@types/mockjs': + specifier: ^1.0.7 + version: 1.0.10 + '@types/nprogress': + specifier: ^0.2.0 + version: 0.2.3 + '@types/sortablejs': + specifier: ^1.15.0 + version: 1.15.9 + '@typescript-eslint/eslint-plugin': + specifier: ^5.40.0 + version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': + specifier: ^5.40.0 + version: 5.62.0(eslint@8.57.1)(typescript@4.9.5) + '@vitejs/plugin-vue': + specifier: ^3.1.2 + version: 3.2.0(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0))(vue@3.5.43(typescript@4.9.5)) + '@vitejs/plugin-vue-jsx': + specifier: ^2.0.1 + version: 2.1.1(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0))(vue@3.5.43(typescript@4.9.5)) + '@vue/babel-plugin-jsx': + specifier: ^1.1.1 + version: 1.5.0(@babel/core@7.29.7) + consola: + specifier: ^2.15.3 + version: 2.15.3 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + eslint: + specifier: ^8.25.0 + version: 8.57.1 + eslint-config-airbnb-base: + specifier: ^15.0.0 + version: 15.0.0(eslint-plugin-import@2.32.0)(eslint@8.57.1) + eslint-config-prettier: + specifier: ^8.5.0 + version: 8.10.2(eslint@8.57.1) + eslint-import-resolver-typescript: + specifier: ^3.5.1 + version: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) + eslint-plugin-import: + specifier: ^2.26.0 + version: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.5(eslint-config-prettier@8.10.2(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8) + eslint-plugin-vue: + specifier: ^9.6.0 + version: 9.33.0(eslint@8.57.1) + husky: + specifier: ^8.0.1 + version: 8.0.3 + less: + specifier: ^4.1.3 + version: 4.9.1 + lint-staged: + specifier: ^13.0.3 + version: 13.3.0 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + postcss-html: + specifier: ^1.5.0 + version: 1.8.1 + prettier: + specifier: ^2.7.1 + version: 2.8.8 + rollup: + specifier: ^2.56.3 + version: 2.80.0 + rollup-plugin-visualizer: + specifier: ^5.8.2 + version: 5.14.0(rollup@2.80.0) + stylelint: + specifier: ^14.13.0 + version: 14.16.1 + stylelint-config-prettier: + specifier: ^9.0.3 + version: 9.0.5(stylelint@14.16.1) + stylelint-config-rational-order: + specifier: ^0.1.2 + version: 0.1.2 + stylelint-config-recommended-vue: + specifier: ^1.4.0 + version: 1.6.1(postcss-html@1.8.1)(stylelint@14.16.1) + stylelint-config-standard: + specifier: ^29.0.0 + version: 29.0.0(stylelint@14.16.1) + stylelint-order: + specifier: ^5.0.0 + version: 5.0.0(stylelint@14.16.1) + typescript: + specifier: ^4.8.4 + version: 4.9.5 + unplugin-vue-components: + specifier: ^0.24.1 + version: 0.24.1(@babel/parser@7.29.9)(rollup@2.80.0)(vue@3.5.43(typescript@4.9.5)) + vite: + specifier: ^3.2.5 + version: 3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0) + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0)) + vite-plugin-eslint: + specifier: ^1.8.1 + version: 1.8.1(eslint@8.57.1)(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0)) + vite-plugin-imagemin: + specifier: ^0.6.1 + version: 0.6.1(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0)) + vite-svg-loader: + specifier: ^3.6.0 + version: 3.6.0 + vue-tsc: + specifier: ^1.0.14 + version: 1.8.27(typescript@4.9.5) + +packages: + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@arco-design/color@0.4.0': + resolution: {integrity: sha512-s7p9MSwJgHeL8DwcATaXvWT3m2SigKpxx4JA1BGPHL4gfvaQsmQfrLBDpjOJFJuJ2jG2dMt3R3P8Pm9E65q18g==} + + '@arco-design/web-vue@2.58.0': + resolution: {integrity: sha512-b1vdPYOmjG5VAkVa7jlVwCb+WynBK+rnKN8zH3yKohpZObZbostRd3HgYNtjjZjGVU3OqR0Yy2FX7ftgF0bcOw==} + peerDependencies: + vue: '>=3.1.0' + + '@arco-plugins/vite-vue@1.4.6': + resolution: {integrity: sha512-i7asMOIWMKbTBo/ftJ5Kge+3X56b4dUyp1BNtYGc5IXVtCZ5mwnCVTNmfgzkKGXHRWEu01O5JXy/OMbUvzGYQQ==} + + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + + '@babel/code-frame@8.0.6': + resolution: {integrity: sha512-uMHhvmDmwFiLuiozaoRYTZHqMFuu3fem/X9JY78lohAuLoh8LSGGC8JqUzo2cVuBsBxkjMZNk56CE7ock8Xxkw==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@8.0.5': + resolution: {integrity: sha512-YLsYoQMvL8l8WrGpN3Zj7O1wK5LEBN+cQtux7BcuHyxIXve724XG+zuJ1n3U1cUweRtTzQOA4IHbuQw3N34SZw==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + engines: {node: '>=6.9.0'} + + '@babel/core@8.0.6': + resolution: {integrity: sha512-5zwYt1V4ji3mXKKRIAkohSJ29WepxNwxQi+7y7P5AcVPh1dcxnZBU2cfxHnPwS+u9+lZnXPsv30TQaF2xg+Tfg==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@8.0.6': + resolution: {integrity: sha512-/pcanjdRsonCexCuxgGD8fKnBLLzk2i9uM4kmcmGyyev2R5YDs+rafMYZ89RvaGY1mW8T7C5au0TyYaEeHBGng==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-annotate-as-pure@7.29.7': + resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@8.0.6': + resolution: {integrity: sha512-HTrtZ4+iA0+kzdbCgvdSk1U4pEl3BvpGnlUbualCGNbrVhhQvhgBzurTUmqpWyvyHbWYWaIfdx2mOlL9LJjsew==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-create-class-features-plugin@7.29.7': + resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@8.0.6': + resolution: {integrity: sha512-OdnA/N52LhzFpeUuVz5YGuSWjc7TPHiFmVYZbPlSgExocO2GwbxVpSni9MVs5wwW+wZ4kPuwBEBN9pIPDYz1mA==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-member-expression-to-functions@7.29.7': + resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.29.7': + resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.29.7': + resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@8.0.6': + resolution: {integrity: sha512-+6HYEBnsDRZHJtUTAEfMQd0zMDqdFHS7C+5vAsEZqBUr3vEMWOWlHJ0Jz1gS8jJIlCvLsuA6ivmeoqzH936YcA==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@8.0.6': + resolution: {integrity: sha512-HYx0YmuchRxRSpnjvcNffnPS8DCauKNmnumIuHG3jnQAVewRA7kfJGwF13ayEpSZs7s4R/oBH4eppuXcAQd5JQ==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@8.0.0': + resolution: {integrity: sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@8.0.5': + resolution: {integrity: sha512-fQtPOXjYOYv85PIdwotp2TJGVYOycX0PQq+l844fFAxOULtBy8BVF35GyeueX0r4KvDthqPH5xAI1clQPk/2uA==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/parser@7.29.9': + resolution: {integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@8.0.6': + resolution: {integrity: sha512-LpGDIYJAzc3Y3PT9x+FxBrGYu2PlWxLmyN7SwPTzaX0LSwEmFJBsRnPBqmaXF2r1v+Zhz6lNiEJ+7yKtM5+Ugg==} + engines: {node: ^22.18.0 || >=24.11.0} + hasBin: true + + '@babel/plugin-syntax-jsx@7.29.7': + resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.29.7': + resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.29.9': + resolution: {integrity: sha512-FFwIwzU+7SCOuxxV4YtJql6T9981ZVTm+FHO5GhVsRqCTdy0WwrEZh3l42ARpXruJUDGOptdduHW6Zr7pNPLNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + + '@babel/template@8.0.0': + resolution: {integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@8.0.6': + resolution: {integrity: sha512-ilYV+qLStGzSKLipJlETdvdtpK3rAuwfCmCoGKv15MU4EoeIuLkespSNoNLFGOPSciEHx9TLWtN5mv0fz5w5mQ==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} + engines: {node: '>=6.9.0'} + + '@babel/types@8.0.6': + resolution: {integrity: sha512-c+xgSWboV2pdwXP67BUWDVRHi2BO5Q3KwxyFVs7taVTY+fsK47/L51ZXQoV9rozHJDNHvJ4v4WEsI/IlxV2l2A==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@commitlint/cli@17.8.1': + resolution: {integrity: sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==} + engines: {node: '>=v14'} + hasBin: true + + '@commitlint/config-conventional@17.8.1': + resolution: {integrity: sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==} + engines: {node: '>=v14'} + + '@commitlint/config-validator@17.8.1': + resolution: {integrity: sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==} + engines: {node: '>=v14'} + + '@commitlint/ensure@17.8.1': + resolution: {integrity: sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==} + engines: {node: '>=v14'} + + '@commitlint/execute-rule@17.8.1': + resolution: {integrity: sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==} + engines: {node: '>=v14'} + + '@commitlint/format@17.8.1': + resolution: {integrity: sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==} + engines: {node: '>=v14'} + + '@commitlint/is-ignored@17.8.1': + resolution: {integrity: sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==} + engines: {node: '>=v14'} + + '@commitlint/lint@17.8.1': + resolution: {integrity: sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==} + engines: {node: '>=v14'} + + '@commitlint/load@17.8.1': + resolution: {integrity: sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==} + engines: {node: '>=v14'} + + '@commitlint/message@17.8.1': + resolution: {integrity: sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==} + engines: {node: '>=v14'} + + '@commitlint/parse@17.8.1': + resolution: {integrity: sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==} + engines: {node: '>=v14'} + + '@commitlint/read@17.8.1': + resolution: {integrity: sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==} + engines: {node: '>=v14'} + + '@commitlint/resolve-extends@17.8.1': + resolution: {integrity: sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==} + engines: {node: '>=v14'} + + '@commitlint/rules@17.8.1': + resolution: {integrity: sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==} + engines: {node: '>=v14'} + + '@commitlint/to-lines@17.8.1': + resolution: {integrity: sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==} + engines: {node: '>=v14'} + + '@commitlint/top-level@17.8.1': + resolution: {integrity: sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==} + engines: {node: '>=v14'} + + '@commitlint/types@17.8.1': + resolution: {integrity: sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==} + engines: {node: '>=v14'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@csstools/selector-specificity@2.2.0': + resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.10 + + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + + '@esbuild/android-arm@0.15.18': + resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/linux-loong64@0.14.54': + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.15.18': + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@intlify/core-base@9.14.5': + resolution: {integrity: sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==} + engines: {node: '>= 16'} + + '@intlify/message-compiler@9.14.5': + resolution: {integrity: sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==} + engines: {node: '>= 16'} + + '@intlify/shared@9.14.5': + resolution: {integrity: sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==} + engines: {node: '>= 16'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/gen-mapping@0.4.0-beta.0': + resolution: {integrity: sha512-JdGNkbE4GlNPYQhM0L95fBQr7ctLZJ276QXQLTad4t1oSdnnCI3fDq9DW3BqYAWv8Wc3+HS+4Gsii1oPMCfz1w==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.6.0': + resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@mrmlnc/readdir-enhanced@2.2.1': + resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} + engines: {node: '>=4'} + + '@napi-rs/wasm-runtime@1.2.4': + resolution: {integrity: sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==} + engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} + peerDependencies: + '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 + '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@1.1.3': + resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==} + engines: {node: '>= 6'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + + '@rollup/pluginutils@5.4.0': + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.56.3 + peerDependenciesMeta: + rollup: + optional: true + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@sindresorhus/is@0.7.0': + resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} + engines: {node: '>=4'} + + '@tsconfig/node10@1.0.13': + resolution: {integrity: sha512-gcLdvR9HO1ZJBypsOGqaP6TFEzb6vIta0KSTLt9NAQ6pXQO3cRgSVyCN6pzYqI9DlJgY71XKO0dpDhCf08b3pg==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@tybys/wasm-util@0.10.4': + resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==} + + '@types/eslint@8.56.12': + resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/gensync@1.0.5': + resolution: {integrity: sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==} + + '@types/glob@7.2.0': + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + + '@types/imagemin-gifsicle@7.0.4': + resolution: {integrity: sha512-ZghMBd/Jgqg5utTJNPmvf6DkuHzMhscJ8vgf/7MUGCpO+G+cLrhYltL+5d+h3A1B4W73S2SrmJZ1jS5LACpX+A==} + + '@types/imagemin-jpegtran@5.0.4': + resolution: {integrity: sha512-PSMxOeJa8q94Y+qx8Yriw+qj1+vH5xWpvar63o6SGO0Xi5RlKuwHHfJmN2GRUngPrlhe394jOUmpVq8jQlVmFA==} + + '@types/imagemin-mozjpeg@8.0.4': + resolution: {integrity: sha512-ZCAxV8SYJB8ehwHpnbRpHjg5Wc4HcyuAMiDhXbkgC7gujDoOTyHO3dhDkUtZ1oK1DLBRZapqG9etdLVhUml7yQ==} + + '@types/imagemin-optipng@5.2.4': + resolution: {integrity: sha512-mvKnDMC8eCYZetAQudjs1DbgpR84WhsTx1wgvdiXnpuUEti3oJ+MaMYBRWPY0JlQ4+y4TXKOfa7+LOuT8daegQ==} + + '@types/imagemin-svgo@10.0.5': + resolution: {integrity: sha512-9U2Rf7vWBHeqJvzmWNP3vYAKqR0208QqQ9Mkrq9OLIL5AeoF/dRVRou6iUYCufBSim57BpBpCJhZLrTgfS3k1g==} + + '@types/imagemin-webp@7.0.3': + resolution: {integrity: sha512-C2/EMohS4bzsvY5VJvdzHFdcfmnZoui54DmM/9bFtK57/CgGmKkc+p6n49euPGmMFDDvwm4yVl60nwxcZOmH5A==} + + '@types/imagemin@7.0.1': + resolution: {integrity: sha512-xEn5+M3lDBtI3JxLy6eU3ksoVurygnlG7OYhTqJfGGP4PcvYnfn+IABCmMve7ziM/SneHDm5xgJFKC8hCYPicw==} + + '@types/jsesc@2.5.1': + resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/lodash@4.17.25': + resolution: {integrity: sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ==} + + '@types/minimatch@6.0.0': + resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} + deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/mockjs@1.0.10': + resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==} + + '@types/node@16.18.126': + resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==} + + '@types/node@20.5.1': + resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} + + '@types/node@26.6.3': + resolution: {integrity: sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/nprogress@0.2.3': + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/semver@7.8.0': + resolution: {integrity: sha512-1mAINjtQCXXeLkJ9ehXkwOcBpqtLxiVtKhpUf83DdRNdQKV0iXZpaHYqRr7nj+wvxuJzoAmAwXI+sCNMv1CzLQ==} + + '@types/sortablejs@1.15.9': + resolution: {integrity: sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==} + + '@types/svgo@2.6.4': + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/vfile-message@2.0.0': + resolution: {integrity: sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==} + deprecated: This is a stub types definition. vfile-message provides its own type definitions, so you do not need this installed. + + '@types/vfile@3.0.2': + resolution: {integrity: sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==} + + '@types/web-bluetooth@0.0.16': + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + + '@typescript-eslint/eslint-plugin@5.62.0': + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@5.62.0': + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/type-utils@5.62.0': + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@5.62.0': + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@ungap/structured-clone@1.4.0': + resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==} + + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.12.2': + resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.12.2': + resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + cpu: [loong64] + os: [linux] + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + cpu: [loong64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + cpu: [arm64] + os: [openharmony] + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} + cpu: [x64] + os: [win32] + + '@vitejs/plugin-vue-jsx@2.1.1': + resolution: {integrity: sha512-JgDhxstQlwnHBvZ1BSnU5mbmyQ14/t5JhREc6YH5kWyu2QdAAOsLF6xgHoIWarj8tddaiwFrNzLbWJPudpXKYA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^3.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@3.2.0': + resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^3.0.0 + vue: ^3.2.25 + + '@volar/language-core@1.11.1': + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + + '@volar/source-map@1.11.1': + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + + '@volar/typescript@1.11.1': + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + + '@vue/babel-helper-vue-transform-on@1.5.0': + resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} + + '@vue/babel-plugin-jsx@1.5.0': + resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.5.0': + resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.5.43': + resolution: {integrity: sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==} + + '@vue/compiler-dom@3.5.43': + resolution: {integrity: sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==} + + '@vue/compiler-sfc@3.5.43': + resolution: {integrity: sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==} + + '@vue/compiler-ssr@3.5.43': + resolution: {integrity: sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/language-core@1.8.27': + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.43': + resolution: {integrity: sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==} + + '@vue/runtime-core@3.5.43': + resolution: {integrity: sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==} + + '@vue/runtime-dom@3.5.43': + resolution: {integrity: sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==} + + '@vue/server-renderer@3.5.43': + resolution: {integrity: sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==} + + '@vue/shared@3.5.43': + resolution: {integrity: sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==} + + '@vueuse/core@9.13.0': + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + + '@vueuse/metadata@9.13.0': + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + + '@vueuse/shared@9.13.0': + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} + engines: {node: '>=0.4.0'} + + acorn@8.18.0: + resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + + ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.4.0: + resolution: {integrity: sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==} + engines: {node: '>=12'} + + ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + + archive-type@4.0.0: + resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==} + engines: {node: '>=4'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-find-index@1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-includes@3.2.0: + resolution: {integrity: sha512-VXY5eFRarnXcYxwBjJzPmEhH55+rmP79/+ueDhi0F+TuqfHCItagIHqxeUZrmgrOPa31QTh9H85DjX3FfJ0FTg==} + engines: {node: '>= 0.4'} + + array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + + array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + autoprefixer@9.8.8: + resolution: {integrity: sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==} + hasBin: true + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axios@0.24.0: + resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==} + + b-tween@0.3.3: + resolution: {integrity: sha512-oEHegcRpA7fAuc9KC4nktucuZn2aS8htymCPcP3qkEGPqiBH+GfqtqoG2l7LxHngg6O0HFM7hOeOYExl1Oz4ZA==} + + b-validate@1.5.3: + resolution: {integrity: sha512-iCvCkGFskbaYtfQ0a3GmcQCHl/Sv1GufXFGuUQ+FE+WJa7A/espLOuFIn09B944V8/ImPj71T4+rTASxO2PAuA==} + + bail@1.0.5: + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + + baseline-browser-mapping@2.11.26: + resolution: {integrity: sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + bin-build@3.0.0: + resolution: {integrity: sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==} + engines: {node: '>=4'} + + bin-check@4.1.0: + resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==} + engines: {node: '>=4'} + + bin-version-check@4.0.0: + resolution: {integrity: sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==} + engines: {node: '>=6'} + + bin-version@3.1.0: + resolution: {integrity: sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==} + engines: {node: '>=6'} + + bin-wrapper-china@0.1.0: + resolution: {integrity: sha512-1UCm17WYEbgry50tup+AQN+JGVEVzoW4f8HMl899k1lvuFxWKGZXl/G2fgxQxAckRjnloO3ijLVVEsv8zescUg==} + engines: {node: '>=8.3'} + hasBin: true + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binary-mirror-config@1.41.0: + resolution: {integrity: sha512-ZiIhR1s6Sv1Fv6qCQqfPjx0Cj86BgFlhqNxZgHkQOWcxJcMbO3mj1iqsuVjowYqJqeZL8e52+IEv7IRnSX6T6w==} + + bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.21: + resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==} + + brace-expansion@2.1.7: + resolution: {integrity: sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==} + + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + + braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.29.1: + resolution: {integrity: sha512-AUdjuRyCNGUYtqpqfTmWyM4fXay8yIQhmLnvYe/THMGfT9B/34X7xQd3ifKxwyNPPpowVBjLb+64BN9Rn1mizw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + + buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + + cacheable-request@2.1.4: + resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + + caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} + engines: {node: '>=4'} + + caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} + engines: {node: '>=4'} + + callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} + engines: {node: '>=4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-keys@2.1.0: + resolution: {integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==} + engines: {node: '>=0.10.0'} + + camelcase-keys@4.2.0: + resolution: {integrity: sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==} + engines: {node: '>=4'} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase@2.1.1: + resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} + engines: {node: '>=0.10.0'} + + camelcase@4.1.0: + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} + engines: {node: '>=4'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001812: + resolution: {integrity: sha512-qN+QNNBr93TCmFrmte0bBCjSDMuRvt78VlHT99qIGPszm4QsqCX8lnyWUFkHi8B7ZBAPq8SH+UqyXNy/odMdng==} + + caw@2.0.1: + resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==} + engines: {node: '>=4'} + + ccount@1.1.0: + resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} + + chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@1.1.4: + resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} + + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-regexp@1.0.1: + resolution: {integrity: sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==} + engines: {node: '>=0.10.0'} + + clone-response@1.0.2: + resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} + + collapse-white-space@1.0.6: + resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} + + collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + + colord@2.10.0: + resolution: {integrity: sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} + + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + console-stream@0.1.1: + resolution: {integrity: sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + conventional-changelog-angular@6.0.0: + resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} + engines: {node: '>=14'} + + conventional-changelog-conventionalcommits@6.1.0: + resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==} + engines: {node: '>=14'} + + conventional-commits-parser@4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} + hasBin: true + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cosmiconfig-typescript-loader@4.4.0: + resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} + engines: {node: '>=v14.21.3'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=4' + + cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} + engines: {node: '>=4'} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + + cross-spawn@6.0.6: + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} + engines: {node: '>=4.8'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + css-functions-list@3.3.3: + resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==} + engines: {node: '>=12'} + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + currently-unhandled@0.4.1: + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} + engines: {node: '>=0.10.0'} + + cwebp-bin@6.1.2: + resolution: {integrity: sha512-NLEZ/BVAl9g426hwUX/qrQ7b/EfQH7BS1tr+CzPo2EgDQbcdzmUVE+fIfsi64lsL638lWgzTEViMAL4pxV1GOg==} + engines: {node: '>=10'} + hasBin: true + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + dayjs@1.11.23: + resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + decode-uri-component@0.4.1: + resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==} + engines: {node: '>=14.16'} + + decompress-response@3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} + + decompress-tar@4.1.1: + resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} + engines: {node: '>=4'} + + decompress-tarbz2@4.1.1: + resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} + engines: {node: '>=4'} + + decompress-targz@4.1.1: + resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} + engines: {node: '>=4'} + + decompress-unzip@4.0.1: + resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} + engines: {node: '>=4'} + + decompress@4.2.1: + resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} + engines: {node: '>=4'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + + define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} + engines: {node: '>=0.3.1'} + + dir-glob@2.2.2: + resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} + engines: {node: '>=4'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + download@6.2.5: + resolution: {integrity: sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==} + engines: {node: '>=4'} + + download@7.1.0: + resolution: {integrity: sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==} + engines: {node: '>=6'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + echarts@5.6.0: + resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} + + electron-to-chromium@1.5.439: + resolution: {integrity: sha512-qu6QIPXhsb+CRcAiTMNjR4A1y/7tCYKkKjr5CZXRVih6qkDf79peZ2BpEU3qoDBNCRrcy3Mra3X9nG5oruuA7Q==} + + emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + empathic@2.1.0: + resolution: {integrity: sha512-AnfC1ATldl49/cvZdLPDjBfrRNwbDO05aibiOtzQu3qtlbJtomNLhF30HEtn/7iBz50dlMECqATo3fG0LrdEgw==} + engines: {node: '>=14'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + es-abstract-get@1.0.0: + resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==} + engines: {node: '>= 0.4'} + + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.4: + resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==} + engines: {node: '>= 0.4'} + + esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + esbuild-android-64@0.15.18: + resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + esbuild-android-arm64@0.15.18: + resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + esbuild-darwin-64@0.15.18: + resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + esbuild-darwin-arm64@0.15.18: + resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-64@0.15.18: + resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + esbuild-freebsd-arm64@0.15.18: + resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + esbuild-linux-32@0.15.18: + resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + esbuild-linux-64@0.15.18: + resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm64@0.15.18: + resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-arm@0.15.18: + resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-mips64le@0.15.18: + resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-ppc64le@0.15.18: + resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-riscv64@0.15.18: + resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-linux-s390x@0.15.18: + resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-netbsd-64@0.15.18: + resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-openbsd-64@0.15.18: + resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-sunos-64@0.15.18: + resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-32@0.15.18: + resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-64@0.15.18: + resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild-windows-arm64@0.15.18: + resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.15.18: + resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-airbnb-base@15.0.0: + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + + eslint-config-prettier@8.10.2: + resolution: {integrity: sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.10: + resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} + + eslint-import-resolver-typescript@3.10.1: + resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.14.0: + resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-prettier@4.2.5: + resolution: {integrity: sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + + eslint-plugin-vue@9.33.0: + resolution: {integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + + exec-buffer@3.2.0: + resolution: {integrity: sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==} + engines: {node: '>=4'} + + execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} + engines: {node: '>=4'} + + execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + + execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + + execall@1.0.0: + resolution: {integrity: sha512-/J0Q8CvOvlAdpvhfkD/WnTQ4H1eU0exze2nFGPj/RSC7jpQ0NkKe2r28T5eMkhEEs+fzepMZNy1kVRKNlC04nQ==} + engines: {node: '>=0.10.0'} + + executable@4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} + engines: {node: '>=4'} + + expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + + ext-list@2.2.2: + resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} + engines: {node: '>=0.10.0'} + + ext-name@5.0.0: + resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} + engines: {node: '>=4'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@2.2.7: + resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==} + engines: {node: '>=4.0.0'} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.1.8: + resolution: {integrity: sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==} + + fast-xml-parser@4.5.7: + resolution: {integrity: sha512-a6Qh1RMCNbSrU1+sAyAAZH3rTe+OaWJbNZIq0S+ifZciUUOQtlVxBJwoTUE2bYhysmG/RYyI5WJFIKdBahJdrQ==} + hasBin: true + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastq@1.20.3: + resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + figures@1.7.0: + resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} + engines: {node: '>=0.10.0'} + + file-entry-cache@4.0.0: + resolution: {integrity: sha512-AVSwsnbV8vH/UVbvgEhf3saVQXORNv0ZzSkvkhQIaia5Tia+JhGTaa/ePUSVoPHQyGayQNmYfkzFi3WZV5zcpA==} + engines: {node: '>=4'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-type@10.11.0: + resolution: {integrity: sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==} + engines: {node: '>=6'} + + file-type@12.4.2: + resolution: {integrity: sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==} + engines: {node: '>=8'} + + file-type@3.9.0: + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} + engines: {node: '>=0.10.0'} + + file-type@4.4.0: + resolution: {integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==} + engines: {node: '>=4'} + + file-type@5.2.0: + resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} + engines: {node: '>=4'} + + file-type@6.2.0: + resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} + engines: {node: '>=4'} + + file-type@8.1.0: + resolution: {integrity: sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==} + engines: {node: '>=6'} + + filename-reserved-regex@2.0.0: + resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} + engines: {node: '>=4'} + + filenamify@2.1.0: + resolution: {integrity: sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==} + engines: {node: '>=4'} + + fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + filter-obj@5.1.0: + resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==} + engines: {node: '>=14.16'} + + find-up@1.1.2: + resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} + engines: {node: '>=0.10.0'} + + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-versions@3.2.0: + resolution: {integrity: sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==} + engines: {node: '>=6'} + + flat-cache@2.0.1: + resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} + engines: {node: '>=4'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@2.0.2: + resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} + + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + + flru@1.0.2: + resolution: {integrity: sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==} + engines: {node: '>=6'} + + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + + from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.4.1: + resolution: {integrity: sha512-KYAb4c9BJQI6QqGKthV68OHe0badztdXJWKo0WtBA9IuCFPTKvE5ZdUBglP833aMjhaSPNO4A5j/EkzZtGlKjA==} + engines: {node: '>=14.14'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.2.0: + resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-proxy@2.1.0: + resolution: {integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==} + engines: {node: '>=4'} + + get-stdin@4.0.1: + resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==} + engines: {node: '>=0.10.0'} + + get-stdin@6.0.0: + resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} + engines: {node: '>=4'} + + get-stream@2.3.1: + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} + engines: {node: '>=0.10.0'} + + get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} + + get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.14.3: + resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==} + + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + gifsicle@5.2.0: + resolution: {integrity: sha512-vOIS3j0XoTCxq9pkGj43gEix82RkI5FveNgaFZutjbaui/HH+4fR8Y56dwXDuxYo8hR4xOo6/j2h1WHoQW6XLw==} + engines: {node: '>=10'} + hasBin: true + + git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + deprecated: Deprecated and no longer maintained. Use @conventional-changelog/git-client instead. + hasBin: true + + glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.3.0: + resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@10.0.2: + resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@9.2.0: + resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==} + engines: {node: '>=6'} + + globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + + gonzales-pe@4.3.0: + resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==} + engines: {node: '>=0.6.0'} + hasBin: true + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + got@7.1.0: + resolution: {integrity: sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==} + engines: {node: '>=4'} + + got@8.3.2: + resolution: {integrity: sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==} + engines: {node: '>=4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbol-support-x@1.4.2: + resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-to-string-tag-x@1.4.1: + resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + + has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + + has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + html-tags@2.0.0: + resolution: {integrity: sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==} + engines: {node: '>=4'} + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-cache-semantics@3.8.1: + resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} + + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + + husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + imagemin-gifsicle@7.0.0: + resolution: {integrity: sha512-LaP38xhxAwS3W8PFh4y5iQ6feoTSF+dTAXFRUEYQWYst6Xd+9L/iPk34QGgK/VO/objmIlmq9TStGfVY2IcHIA==} + engines: {node: '>=10'} + + imagemin-jpegtran@7.0.0: + resolution: {integrity: sha512-MJoyTCW8YjMJf56NorFE41SR/WkaGA3IYk4JgvMlRwguJEEd3PnP9UxA8Y2UWjquz8d+On3Ds/03ZfiiLS8xTQ==} + engines: {node: '>=10'} + + imagemin-mozjpeg@9.0.0: + resolution: {integrity: sha512-TwOjTzYqCFRgROTWpVSt5UTT0JeCuzF1jswPLKALDd89+PmrJ2PdMMYeDLYZ1fs9cTovI9GJd68mRSnuVt691w==} + engines: {node: '>=10'} + + imagemin-optipng@8.0.0: + resolution: {integrity: sha512-CUGfhfwqlPjAC0rm8Fy+R2DJDBGjzy2SkfyT09L8rasnF9jSoHFqJ1xxSZWK6HVPZBMhGPMxCTL70OgTHlLF5A==} + engines: {node: '>=10'} + + imagemin-pngquant@9.0.2: + resolution: {integrity: sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg==} + engines: {node: '>=10'} + + imagemin-svgo@9.0.0: + resolution: {integrity: sha512-uNgXpKHd99C0WODkrJ8OO/3zW3qjgS4pW7hcuII0RcHN3tnKxDjJWcitdVC/TZyfIqSricU8WfrHn26bdSW62g==} + engines: {node: '>=10'} + + imagemin-webp@6.1.0: + resolution: {integrity: sha512-i8ZluZV1pfQX9aVzmZ/VZh9KBSdPwUlp5VruAa9c30GZnX/nMl5n7h+oUMnI7Mg7+SUpu9mYBsw2nsYGUEllWQ==} + engines: {node: '>=10'} + + imagemin@7.0.1: + resolution: {integrity: sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==} + engines: {node: '>=8'} + + import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} + engines: {node: '>=4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-lazy@3.1.0: + resolution: {integrity: sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@2.1.0: + resolution: {integrity: sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==} + engines: {node: '>=0.10.0'} + + indent-string@3.2.0: + resolution: {integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==} + engines: {node: '>=4'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indexes-of@1.0.1: + resolution: {integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==} + + inflight@1.0.6: + resolution: {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. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + into-stream@3.1.0: + resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==} + engines: {node: '>=4'} + + is-accessor-descriptor@1.0.2: + resolution: {integrity: sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g==} + engines: {node: '>= 0.4'} + + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + + is-alphanumeric@1.0.0: + resolution: {integrity: sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==} + engines: {node: '>=0.10.0'} + + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.4: + resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.17.0: + resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==} + engines: {node: '>= 0.4'} + + is-cwebp-readable@3.0.0: + resolution: {integrity: sha512-bpELc7/Q1/U5MWHn4NdHI44R3jxk0h9ew9ljzabiRl70/UIjL/ZAqRMb52F5+eke/VC8yTiv4Ewryo1fPWidvA==} + + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + + is-descriptor@0.1.8: + resolution: {integrity: sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==} + engines: {node: '>= 0.4'} + + is-descriptor@1.0.4: + resolution: {integrity: sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==} + engines: {node: '>= 0.4'} + + is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} + engines: {node: '>=0.10.0'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-document.all@1.0.0: + resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==} + engines: {node: '>= 0.4'} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-finite@1.1.0: + resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-gif@3.0.0: + resolution: {integrity: sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw==} + engines: {node: '>=6'} + + is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + + is-jpg@2.0.0: + resolution: {integrity: sha512-ODlO0ruzhkzD3sdynIainVP5eoOFNN85rxA1+cwwnPe4dKyX0r5+hxNO5XpCrxlHcmb9vkOit9mhRD2JVuimHg==} + engines: {node: '>=6'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-natural-number@4.0.1: + resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-object@1.0.2: + resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-plain-object@5.1.0: + resolution: {integrity: sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==} + engines: {node: '>=0.10.0'} + + is-png@2.0.0: + resolution: {integrity: sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==} + engines: {node: '>=8'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-retry-allowed@1.2.0: + resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} + engines: {node: '>=0.10.0'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-supported-regexp-flag@1.0.1: + resolution: {integrity: sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==} + engines: {node: '>=0.10.0'} + + is-svg@4.4.0: + resolution: {integrity: sha512-v+AgVwiK5DsGtT9ng+m4mClp6zDAmwrW8nZi6Gg15qzvBnRWWdfWA1TGaXyCDnWq5g5asofIgMVl3PjKxvk1ug==} + engines: {node: '>=6'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-whitespace-character@1.0.4: + resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-word-character@1.0.4: + resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + isurl@1.0.0: + resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==} + engines: {node: '>= 4'} + + jpegtran-bin@5.0.2: + resolution: {integrity: sha512-4FSmgIcr8d5+V6T1+dHbPZjaFH0ogVyP4UVsE+zri7S9YLO4qAT2our4IN3sW3STVgNTbqPermdIgt2XuAJ4EA==} + engines: {node: '>=10'} + hasBin: true + + jpegtran-bin@6.0.1: + resolution: {integrity: sha512-WohhhHhqe22de7PU8hXs6Sr5d4BAvkrfA93NR5tGlHyPnFLgvEW/bH+q7fv65JgoiQDsd7SBwwQ/OGRBivU3Mw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + js-yaml@3.15.2: + resolution: {integrity: sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==} + hasBin: true + + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + junk@3.1.0: + resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==} + engines: {node: '>=8'} + + keyv@3.0.0: + resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + + kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + known-css-properties@0.11.0: + resolution: {integrity: sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w==} + + known-css-properties@0.26.0: + resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} + + less@4.9.1: + resolution: {integrity: sha512-orp15PfJvvNDIqJdVWzMI9Sjpjp3VTiw3sfvbB+67LlISTEn8uVT2EdYSuyl02BLvaftv6sdk9Umnxmm5rckmg==} + engines: {node: '>=18'} + hasBin: true + + leven@2.1.0: + resolution: {integrity: sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==} + engines: {node: '>=0.10.0'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lint-staged@13.3.0: + resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + listr2@6.6.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + + load-json-file@1.1.0: + resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} + engines: {node: '>=0.10.0'} + + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + + local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + + log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} + engines: {node: '>=4'} + + log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + logalot@2.1.0: + resolution: {integrity: sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==} + engines: {node: '>=0.10.0'} + + longest-streak@2.0.4: + resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} + + longest@1.0.1: + resolution: {integrity: sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==} + engines: {node: '>=0.10.0'} + + loud-rejection@1.6.0: + resolution: {integrity: sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==} + engines: {node: '>=0.10.0'} + + lowercase-keys@1.0.0: + resolution: {integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==} + engines: {node: '>=0.10.0'} + + lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + + lpad-align@1.1.2: + resolution: {integrity: sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + make-dir@1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} + engines: {node: '>=4'} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + make-dir@5.1.0: + resolution: {integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==} + engines: {node: '>=18'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@2.0.0: + resolution: {integrity: sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==} + engines: {node: '>=4'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + + markdown-escapes@1.0.4: + resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} + + markdown-table@1.1.3: + resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + + mdast-util-compact@1.0.4: + resolution: {integrity: sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + meow@3.7.0: + resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} + engines: {node: '>=0.10.0'} + + meow@5.0.0: + resolution: {integrity: sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==} + engines: {node: '>=6'} + + meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + + meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@7.4.9: + resolution: {integrity: sha512-Brg/fp/iAVDOQoHxkuN5bEYhyQlZhxddI78yWsCbeEwTHXQjlNLtiJDUsp1GIptVqMI7/gkJMz4vVAc01mpoBw==} + engines: {node: '>=10'} + + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@3.0.2: + resolution: {integrity: sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==} + engines: {node: '>= 4'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + + mozjpeg@7.1.1: + resolution: {integrity: sha512-iIDxWvzhWvLC9mcRJ1uSkiKaj4drF58oCqK2bITm5c2Jt6cJ8qQjSSru2PCaysG+hLIinryj8mgz5ZJzOYTv1A==} + engines: {node: '>=10'} + hasBin: true + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + + nanoid@3.3.19: + resolution: {integrity: sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare-lite@1.4.1: + resolution: {integrity: sha512-8Mz06azhPqiDlxhUaUTjBhNAbib/1MoPr89kgmuV6Ir8ICT2/Q/XSYg6VfL3fq2x8MpSQX8sqyI/NeZ5GsGyXA==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + + needle@3.5.0: + resolution: {integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==} + engines: {node: '>= 4.4.x'} + hasBin: true + + nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + + node-exports-info@1.6.2: + resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} + engines: {node: '>= 0.4'} + + node-releases@2.0.57: + resolution: {integrity: sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==} + engines: {node: '>=18'} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + normalize-selector@0.2.0: + resolution: {integrity: sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==} + + normalize-url@2.0.1: + resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==} + engines: {node: '>=4'} + + npm-conf@1.1.3: + resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==} + engines: {node: '>=4'} + + npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + num2fraction@1.2.2: + resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==} + + number-precision@1.6.0: + resolution: {integrity: sha512-05OLPgbgmnixJw+VvEh18yNPUo3iyp4BEWJcrLu4X9W05KmMifN7Mu5exYvQXqxxeNWhvIF+j3Rij+HmddM/hQ==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + obug@2.2.1: + resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==} + engines: {node: '>=12.20.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + optipng-bin@7.0.1: + resolution: {integrity: sha512-W99mpdW7Nt2PpFiaO+74pkht7KEqkXkeRomdWXfEz3SALZ6hns81y/pm1dsGZ6ItUIfchiNIP6ORDr1zETU1jA==} + engines: {node: '>=10'} + hasBin: true + + os-filter-obj@2.0.0: + resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==} + engines: {node: '>=4'} + + ow@0.17.0: + resolution: {integrity: sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA==} + engines: {node: '>=10'} + + own-keys@1.0.2: + resolution: {integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==} + engines: {node: '>= 0.4'} + + p-cancelable@0.3.0: + resolution: {integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==} + engines: {node: '>=4'} + + p-cancelable@0.4.1: + resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==} + engines: {node: '>=4'} + + p-event@1.3.0: + resolution: {integrity: sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==} + engines: {node: '>=4'} + + p-event@2.3.1: + resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==} + engines: {node: '>=6'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-is-promise@1.1.0: + resolution: {integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==} + engines: {node: '>=4'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map-series@1.0.0: + resolution: {integrity: sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==} + engines: {node: '>=4'} + + p-pipe@3.1.0: + resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} + engines: {node: '>=8'} + + p-reduce@1.0.0: + resolution: {integrity: sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==} + engines: {node: '>=4'} + + p-timeout@1.2.1: + resolution: {integrity: sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==} + engines: {node: '>=4'} + + p-timeout@2.0.1: + resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==} + engines: {node: '>=4'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-entities@1.2.2: + resolution: {integrity: sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==} + + parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} + engines: {node: '>=0.10.0'} + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + + pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + path-exists@2.1.0: + resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} + engines: {node: '>=0.10.0'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-type@1.1.0: + resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} + engines: {node: '>=0.10.0'} + + path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + picocolors@0.2.1: + resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pinia@2.3.1: + resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + + pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + + pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + + pngquant-bin@6.0.1: + resolution: {integrity: sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==} + engines: {node: '>=10'} + hasBin: true + + posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-html@0.36.0: + resolution: {integrity: sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==} + peerDependencies: + postcss: '>=5.0.0' + postcss-syntax: '>=0.36.0' + + postcss-html@1.8.1: + resolution: {integrity: sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==} + engines: {node: ^12 || >=14} + + postcss-jsx@0.36.4: + resolution: {integrity: sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA==} + peerDependencies: + postcss: '>=5.0.0' + postcss-syntax: '>=0.36.0' + + postcss-less@3.1.4: + resolution: {integrity: sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==} + engines: {node: '>=6.14.4'} + + postcss-markdown@0.36.0: + resolution: {integrity: sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ==} + peerDependencies: + postcss: '>=5.0.0' + postcss-syntax: '>=0.36.0' + + postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + + postcss-reporter@6.0.1: + resolution: {integrity: sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==} + engines: {node: '>=6'} + + postcss-resolve-nested-selector@0.1.6: + resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} + + postcss-safe-parser@4.0.2: + resolution: {integrity: sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==} + engines: {node: '>=6.0.0'} + + postcss-safe-parser@6.0.0: + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + + postcss-sass@0.3.5: + resolution: {integrity: sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==} + + postcss-scss@2.1.1: + resolution: {integrity: sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==} + engines: {node: '>=6.0.0'} + + postcss-selector-parser@3.1.2: + resolution: {integrity: sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==} + engines: {node: '>=8'} + + postcss-selector-parser@6.1.4: + resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} + engines: {node: '>=4'} + + postcss-sorting@4.1.0: + resolution: {integrity: sha512-r4T2oQd1giURJdHQ/RMb72dKZCuLOdWx2B/XhXN1Y1ZdnwXsKH896Qz6vD4tFy9xSjpKNYhlZoJmWyhH/7JUQw==} + engines: {node: '>=6.14.3'} + + postcss-sorting@7.0.1: + resolution: {integrity: sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==} + peerDependencies: + postcss: ^8.3.9 + + postcss-syntax@0.36.2: + resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} + peerDependencies: + postcss: '>=5.0.0' + postcss-html: '*' + postcss-jsx: '*' + postcss-less: '*' + postcss-markdown: '*' + postcss-scss: '*' + peerDependenciesMeta: + postcss-html: + optional: true + postcss-jsx: + optional: true + postcss-less: + optional: true + postcss-markdown: + optional: true + postcss-scss: + optional: true + + postcss-value-parser@3.3.1: + resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@7.0.39: + resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} + engines: {node: '>=6.0.0'} + + postcss@8.5.28: + resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prepend-http@1.0.4: + resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==} + engines: {node: '>=0.10.0'} + + prepend-http@2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} + + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} + engines: {node: '>=6.0.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + probe-image-size@7.4.0: + resolution: {integrity: sha512-cdEprVtZxV+awMde9X+4jILBFYh4CARxVrQaMl4wY4YcPWbul9jntXrIW95NInBDyJwcVUP3U0T6yukN8rMBaQ==} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + query-string@5.1.1: + resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} + engines: {node: '>=0.10.0'} + + query-string@8.2.0: + resolution: {integrity: sha512-tUZIw8J0CawM5wyGBiDOAp7ObdRQh4uBor/fUR9ZjmbZVvw95OD9If4w3MQxr99rg0DJZ/9CIORcpEqU5hQG7g==} + engines: {node: '>=14.16'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@1.1.0: + resolution: {integrity: sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==} + engines: {node: '>=4'} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + read-pkg-up@1.0.1: + resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} + engines: {node: '>=0.10.0'} + + read-pkg-up@3.0.0: + resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} + engines: {node: '>=4'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@1.1.0: + resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} + engines: {node: '>=0.10.0'} + + read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + redent@1.0.0: + resolution: {integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==} + engines: {node: '>=0.10.0'} + + redent@2.0.0: + resolution: {integrity: sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==} + engines: {node: '>=4'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + remark-parse@6.0.3: + resolution: {integrity: sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==} + + remark-stringify@6.0.4: + resolution: {integrity: sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==} + + remark@10.0.1: + resolution: {integrity: sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==} + + repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + repeating@2.0.1: + resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} + engines: {node: '>=0.10.0'} + + replace-ext@1.0.0: + resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==} + engines: {node: '>= 0.10'} + + replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resize-detector@0.3.0: + resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} + engines: {node: '>= 0.4'} + hasBin: true + + responselike@1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup-plugin-visualizer@5.14.0: + resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + rolldown: 1.x + rollup: ^2.56.3 + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + + rollup@2.80.0: + resolution: {integrity: sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==} + engines: {node: '>=10.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.6.1: + resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==} + engines: {node: '>=11.0.0'} + + scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + + seek-bzip@1.0.6: + resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} + hasBin: true + + semver-regex@2.0.0: + resolution: {integrity: sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==} + engines: {node: '>=6'} + + semver-truncate@1.1.2: + resolution: {integrity: sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==} + engines: {node: '>=0.10.0'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + simple-swizzle@0.2.4: + resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} + + slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + + snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + + snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + + sort-keys-length@1.0.1: + resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} + engines: {node: '>=0.10.0'} + + sort-keys@1.1.2: + resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} + engines: {node: '>=0.10.0'} + + sort-keys@2.0.0: + resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} + engines: {node: '>=4'} + + sortablejs@1.15.7: + resolution: {integrity: sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.24: + resolution: {integrity: sha512-cLS9TtWkIQFyLkJ3/5aFQAOHOSKTlOs/7WDut/XPSdjom1fJhUdkepeJAKXa9Y05+FabHd0sti+Et559vDtkpQ==} + + specificity@0.4.1: + resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==} + hasBin: true + + split-on-first@3.0.0: + resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==} + engines: {node: '>=12'} + + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + squeak@1.3.0: + resolution: {integrity: sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==} + engines: {node: '>=0.10.0'} + + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + + stable@0.1.8: + resolution: {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' + + state-toggle@1.0.3: + resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} + + static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + + stream-parser@0.3.1: + resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} + + strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.trim@1.2.11: + resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.10: + resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@1.3.2: + resolution: {integrity: sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==} + + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + + strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-dirs@2.1.0: + resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} + + strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@1.0.1: + resolution: {integrity: sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==} + engines: {node: '>=0.10.0'} + hasBin: true + + strip-indent@2.0.0: + resolution: {integrity: sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==} + engines: {node: '>=4'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-outer@1.0.1: + resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} + engines: {node: '>=0.10.0'} + + strnum@1.1.2: + resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} + + style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + + stylelint-config-html@2.0.0: + resolution: {integrity: sha512-Lk1NPEdUxzHkPv3ehktjpiOk4MPaqQ3H8fkvhxdWlQpaZCm9ze0SoMbRQLqkUxEMfPE1G9/x968uxm/+d2njoA==} + engines: {node: ^22.12 || >=24} + peerDependencies: + postcss-html: ^2.0.0 + stylelint: '>=16.0.0' + + stylelint-config-prettier@9.0.5: + resolution: {integrity: sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==} + engines: {node: '>= 12'} + hasBin: true + peerDependencies: + stylelint: '>= 11.x < 15' + + stylelint-config-rational-order@0.1.2: + resolution: {integrity: sha512-Qo7ZQaihCwTqijfZg4sbdQQHtugOX/B1/fYh018EiDZHW+lkqH9uHOnsDwDPGZrYJuB6CoyI7MZh2ecw2dOkew==} + + stylelint-config-recommended-vue@1.6.1: + resolution: {integrity: sha512-lLW7hTIMBiTfjenGuDq2kyHA6fBWd/+Df7MO4/AWOxiFeXP9clbpKgg27kHfwA3H7UNMGC7aeP3mNlZB5LMmEQ==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + + stylelint-config-recommended@18.0.0: + resolution: {integrity: sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==} + engines: {node: '>=20.19.0'} + peerDependencies: + stylelint: ^17.0.0 + + stylelint-config-recommended@9.0.0: + resolution: {integrity: sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==} + peerDependencies: + stylelint: ^14.10.0 + + stylelint-config-standard@29.0.0: + resolution: {integrity: sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==} + peerDependencies: + stylelint: ^14.14.0 + + stylelint-order@2.2.1: + resolution: {integrity: sha512-019KBV9j8qp1MfBjJuotse6MgaZqGVtXMc91GU9MsS9Feb+jYUvUU3Z8XiClqPdqJZQ0ryXQJGg3U3PcEjXwfg==} + engines: {node: '>=6'} + peerDependencies: + stylelint: ^9.10.1 || ^10.0.0 + + stylelint-order@5.0.0: + resolution: {integrity: sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==} + peerDependencies: + stylelint: ^14.0.0 + + stylelint@14.16.1: + resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + stylelint@9.10.1: + resolution: {integrity: sha512-9UiHxZhOAHEgeQ7oLGwrwoDR8vclBKlSX7r4fH0iuu0SfPwFaLkb1c7Q2j1cqg9P7IDXeAV2TvQML/fRQzGBBQ==} + engines: {node: '>=6'} + hasBin: true + + sugarss@2.0.0: + resolution: {integrity: sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==} + + supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + + svgo@2.8.4: + resolution: {integrity: sha512-2GJ4h3rl13qYTdwllaK6QlL8tG+UrM8626V2Ylcd/yBUv2Y/EwLsYisVV6UDCRmlk+C74G8nMpxJCk0RWPdDCw==} + engines: {node: '>=10.13.0'} + hasBin: true + + table@5.4.6: + resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==} + engines: {node: '>=6.0.0'} + + table@6.9.0: + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} + + tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} + + temp-dir@1.0.0: + resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} + engines: {node: '>=4'} + + tempfile@2.0.0: + resolution: {integrity: sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==} + engines: {node: '>=4'} + + text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + timed-out@4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} + engines: {node: '>=0.10.0'} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + to-buffer@1.2.2: + resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} + engines: {node: '>= 0.4'} + + to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + + to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + + trim-newlines@1.0.0: + resolution: {integrity: sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==} + engines: {node: '>=0.10.0'} + + trim-newlines@2.0.0: + resolution: {integrity: sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==} + engines: {node: '>=4'} + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + trim-repeated@1.0.0: + resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} + engines: {node: '>=0.10.0'} + + trim-trailing-lines@1.1.4: + resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} + + trim@0.0.1: + resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} + deprecated: Use String.prototype.trim() instead + + trough@1.0.5: + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + 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 + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + 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' + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.11.0: + resolution: {integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==} + engines: {node: '>=8'} + + type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.5: + resolution: {integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.8: + resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} + engines: {node: '>= 0.4'} + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + + undici-types@8.9.0: + resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} + + unherit@1.1.3: + resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} + + unified@7.1.0: + resolution: {integrity: sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==} + + union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + + uniq@1.0.1: + resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} + + unist-util-find-all-after@1.0.5: + resolution: {integrity: sha512-lWgIc3rrTMTlK1Y0hEuL+k+ApzFk78h+lsaa2gHf63Gp5Ww+mt11huDniuaoq1H+XMK2lIIjjPkncxXcDp3QDw==} + + unist-util-is@3.0.0: + resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} + + unist-util-remove-position@1.1.4: + resolution: {integrity: sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==} + + unist-util-stringify-position@1.1.2: + resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@2.1.2: + resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} + + unist-util-visit@1.4.1: + resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unplugin-vue-components@0.24.1: + resolution: {integrity: sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} + engines: {node: '>=14.0.0'} + + unrs-resolver@1.12.2: + resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} + + unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + + update-browserslist-db@1.3.3: + resolution: {integrity: sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + url-parse-lax@1.0.0: + resolution: {integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==} + engines: {node: '>=0.10.0'} + + url-parse-lax@3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} + + url-to-options@1.0.1: + resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==} + engines: {node: '>= 4'} + + use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + verkit@0.3.2: + resolution: {integrity: sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==} + engines: {node: '>=18.12.0'} + + vfile-location@2.0.6: + resolution: {integrity: sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==} + + vfile-message@1.1.1: + resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@3.0.1: + resolution: {integrity: sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==} + + vite-plugin-compression@0.5.1: + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + + vite-plugin-eslint@1.8.1: + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + peerDependencies: + eslint: '>=7' + vite: '>=2' + + vite-plugin-imagemin@0.6.1: + resolution: {integrity: sha512-cP7LDn8euPrji7WYtDoNQpJEB9nkMxJHm/A+QZnvMrrCSuyo/clpMy/T1v7suDXPBavsDiDdFdVQB5p7VGD2cg==} + peerDependencies: + vite: '>=2.0.0' + + vite-svg-loader@3.6.0: + resolution: {integrity: sha512-bZJffcgCREW57kNkgMhuNqeDznWXyQwJ3wKrRhHLMMzwDnP5jr3vXW3cqsmquRR7VTP5mLdKj1/zzPPooGUuPw==} + + vite@3.2.11: + resolution: {integrity: sha512-K/jGKL/PgbIgKCiJo5QbASQhFiV02X9Jh+Qq0AKCRCRKZtOTVi4t6wh75FDpGf2N9rYOnzH87OEFQNaFy6pdxQ==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vue-demi@0.13.11: + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-echarts@6.7.3: + resolution: {integrity: sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==} + peerDependencies: + '@vue/composition-api': ^1.0.5 + '@vue/runtime-core': ^3.0.0 + echarts: ^5.4.1 + vue: ^2.6.12 || ^3.1.1 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + '@vue/runtime-core': + optional: true + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + vue-i18n@9.14.5: + resolution: {integrity: sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g==} + engines: {node: '>= 16'} + deprecated: v9 and v10 no longer supported. please migrate to v11. about maintenance status, see https://vue-i18n.intlify.dev/guide/maintenance.html + peerDependencies: + vue: ^3.0.0 + + vue-router@4.6.4: + resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==} + peerDependencies: + vue: ^3.5.0 + + vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + + vue-tsc@1.8.27: + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + + vue@3.5.43: + resolution: {integrity: sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.24: + resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + write@1.0.3: + resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} + engines: {node: '>=4'} + + x-is-string@0.1.0: + resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} + engines: {node: '>= 6'} + + yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} + + yargs-parser@10.1.0: + resolution: {integrity: sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.3: + resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zrender@5.6.1: + resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} + +snapshots: + + '@antfu/utils@0.7.10': {} + + '@arco-design/color@0.4.0': + dependencies: + color: 3.2.1 + + '@arco-design/web-vue@2.58.0(vue@3.5.43(typescript@4.9.5))': + dependencies: + '@arco-design/color': 0.4.0 + b-tween: 0.3.3 + b-validate: 1.5.3 + compute-scroll-into-view: 1.0.20 + dayjs: 1.11.23 + number-precision: 1.6.0 + resize-observer-polyfill: 1.5.1 + scroll-into-view-if-needed: 2.2.31 + vue: 3.5.43(typescript@4.9.5) + + '@arco-plugins/vite-vue@1.4.6': + dependencies: + '@babel/generator': 7.29.8 + '@babel/helper-module-imports': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + '@types/node': 16.18.126 + transitivePeerDependencies: + - supports-color + + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/code-frame@8.0.6': + dependencies: + '@babel/helper-validator-identifier': 8.0.6 + js-tokens: 10.0.0 + + '@babel/compat-data@7.29.7': {} + + '@babel/compat-data@8.0.5': {} + + '@babel/core@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/core@8.0.6': + dependencies: + '@babel/code-frame': 8.0.6 + '@babel/generator': 8.0.6 + '@babel/helper-compilation-targets': 8.0.6 + '@babel/helpers': 8.0.5 + '@babel/parser': 8.0.6 + '@babel/template': 8.0.0 + '@babel/traverse': 8.0.6 + '@babel/types': 8.0.6 + '@types/gensync': 1.0.5 + convert-source-map: 2.0.0 + empathic: 2.1.0 + gensync: 1.0.0-beta.2 + import-meta-resolve: 4.2.0 + json5: 2.2.3 + obug: 2.2.1 + verkit: 0.3.2 + + '@babel/generator@7.29.8': + dependencies: + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/generator@8.0.6': + dependencies: + '@babel/parser': 8.0.6 + '@babel/types': 8.0.6 + '@jridgewell/gen-mapping': 0.4.0-beta.0 + '@jridgewell/trace-mapping': 0.3.31 + '@types/jsesc': 2.5.1 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.29.7': + dependencies: + '@babel/types': 7.29.8 + + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.29.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-compilation-targets@8.0.6': + dependencies: + '@babel/compat-data': 8.0.5 + '@babel/helper-validator-option': 8.0.0 + browserslist: 4.29.1 + flru: 1.0.2 + verkit: 0.3.2 + + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.8 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.29.7': {} + + '@babel/helper-globals@8.0.6': {} + + '@babel/helper-member-expression-to-functions@7.29.7': + dependencies: + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.29.7': + dependencies: + '@babel/types': 7.29.8 + + '@babel/helper-plugin-utils@7.29.7': {} + + '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + dependencies: + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-string-parser@8.0.6': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/helper-validator-identifier@8.0.6': {} + + '@babel/helper-validator-option@7.29.7': {} + + '@babel/helper-validator-option@8.0.0': {} + + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + + '@babel/helpers@8.0.5': + dependencies: + '@babel/template': 8.0.0 + '@babel/types': 8.0.6 + + '@babel/parser@7.29.9': + dependencies: + '@babel/types': 7.29.8 + + '@babel/parser@8.0.6': + dependencies: + '@babel/types': 8.0.6 + + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-typescript@7.29.9(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 + + '@babel/template@8.0.0': + dependencies: + '@babel/code-frame': 8.0.6 + '@babel/parser': 8.0.6 + '@babel/types': 8.0.6 + + '@babel/traverse@7.29.8': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.9 + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/traverse@8.0.6': + dependencies: + '@babel/code-frame': 8.0.6 + '@babel/generator': 8.0.6 + '@babel/helper-globals': 8.0.6 + '@babel/parser': 8.0.6 + '@babel/template': 8.0.0 + '@babel/types': 8.0.6 + obug: 2.2.1 + + '@babel/types@7.29.8': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@babel/types@8.0.6': + dependencies: + '@babel/helper-string-parser': 8.0.6 + '@babel/helper-validator-identifier': 8.0.6 + + '@commitlint/cli@17.8.1': + dependencies: + '@commitlint/format': 17.8.1 + '@commitlint/lint': 17.8.1 + '@commitlint/load': 17.8.1 + '@commitlint/read': 17.8.1 + '@commitlint/types': 17.8.1 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.3 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + '@commitlint/config-conventional@17.8.1': + dependencies: + conventional-changelog-conventionalcommits: 6.1.0 + + '@commitlint/config-validator@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + ajv: 8.20.0 + + '@commitlint/ensure@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + + '@commitlint/execute-rule@17.8.1': {} + + '@commitlint/format@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + chalk: 4.1.2 + + '@commitlint/is-ignored@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + semver: 7.5.4 + + '@commitlint/lint@17.8.1': + dependencies: + '@commitlint/is-ignored': 17.8.1 + '@commitlint/parse': 17.8.1 + '@commitlint/rules': 17.8.1 + '@commitlint/types': 17.8.1 + + '@commitlint/load@17.8.1': + dependencies: + '@commitlint/config-validator': 17.8.1 + '@commitlint/execute-rule': 17.8.1 + '@commitlint/resolve-extends': 17.8.1 + '@commitlint/types': 17.8.1 + '@types/node': 20.5.1 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@4.9.5) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@4.9.5))(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5))(typescript@4.9.5) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + '@commitlint/message@17.8.1': {} + + '@commitlint/parse@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + conventional-changelog-angular: 6.0.0 + conventional-commits-parser: 4.0.0 + + '@commitlint/read@17.8.1': + dependencies: + '@commitlint/top-level': 17.8.1 + '@commitlint/types': 17.8.1 + fs-extra: 11.4.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + + '@commitlint/resolve-extends@17.8.1': + dependencies: + '@commitlint/config-validator': 17.8.1 + '@commitlint/types': 17.8.1 + import-fresh: 3.3.1 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + + '@commitlint/rules@17.8.1': + dependencies: + '@commitlint/ensure': 17.8.1 + '@commitlint/message': 17.8.1 + '@commitlint/to-lines': 17.8.1 + '@commitlint/types': 17.8.1 + execa: 5.1.1 + + '@commitlint/to-lines@17.8.1': {} + + '@commitlint/top-level@17.8.1': + dependencies: + find-up: 5.0.0 + + '@commitlint/types@17.8.1': + dependencies: + chalk: 4.1.2 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.1.4)': + dependencies: + postcss-selector-parser: 6.1.4 + + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/android-arm@0.15.18': + optional: true + + '@esbuild/linux-loong64@0.14.54': + optional: true + + '@esbuild/linux-loong64@0.15.18': + optional: true + + '@eslint-community/eslint-utils@4.10.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.15.0 + debug: 4.4.3 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.3.2 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.3 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@intlify/core-base@9.14.5': + dependencies: + '@intlify/message-compiler': 9.14.5 + '@intlify/shared': 9.14.5 + + '@intlify/message-compiler@9.14.5': + dependencies: + '@intlify/shared': 9.14.5 + source-map-js: 1.2.1 + + '@intlify/shared@9.14.5': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/gen-mapping@0.4.0-beta.0': + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.6.0': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.6.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.6.0 + + '@mrmlnc/readdir-enhanced@2.2.1': + dependencies: + call-me-maybe: 1.0.2 + glob-to-regexp: 0.3.0 + + '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.4 + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@1.1.3': {} + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.3 + + '@nolyfill/is-core-module@1.0.39': {} + + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.2 + + '@rollup/pluginutils@5.4.0(rollup@2.80.0)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.7 + optionalDependencies: + rollup: 2.80.0 + + '@rtsao/scc@1.1.0': {} + + '@sindresorhus/is@0.7.0': {} + + '@tsconfig/node10@1.0.13': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@tybys/wasm-util@0.10.4': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/eslint@8.56.12': + dependencies: + '@types/estree': 1.0.9 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.9': {} + + '@types/gensync@1.0.5': {} + + '@types/glob@7.2.0': + dependencies: + '@types/minimatch': 6.0.0 + '@types/node': 26.6.3 + + '@types/imagemin-gifsicle@7.0.4': + dependencies: + '@types/imagemin': 7.0.1 + + '@types/imagemin-jpegtran@5.0.4': + dependencies: + '@types/imagemin': 7.0.1 + + '@types/imagemin-mozjpeg@8.0.4': + dependencies: + '@types/imagemin': 7.0.1 + + '@types/imagemin-optipng@5.2.4': + dependencies: + '@types/imagemin': 7.0.1 + + '@types/imagemin-svgo@10.0.5': + dependencies: + '@types/imagemin': 7.0.1 + '@types/svgo': 2.6.4 + + '@types/imagemin-webp@7.0.3': + dependencies: + '@types/imagemin': 7.0.1 + + '@types/imagemin@7.0.1': + dependencies: + '@types/node': 26.6.3 + + '@types/jsesc@2.5.1': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 26.6.3 + + '@types/lodash@4.17.25': {} + + '@types/minimatch@6.0.0': + dependencies: + minimatch: 10.2.6 + + '@types/minimist@1.2.5': {} + + '@types/mockjs@1.0.10': {} + + '@types/node@16.18.126': {} + + '@types/node@20.5.1': {} + + '@types/node@26.6.3': + dependencies: + undici-types: 8.9.0 + + '@types/normalize-package-data@2.4.4': {} + + '@types/nprogress@0.2.3': {} + + '@types/parse-json@4.0.2': {} + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 26.6.3 + + '@types/semver@7.8.0': {} + + '@types/sortablejs@1.15.9': {} + + '@types/svgo@2.6.4': + dependencies: + '@types/node': 26.6.3 + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@types/vfile-message@2.0.0': + dependencies: + vfile-message: 4.0.3 + + '@types/vfile@3.0.2': + dependencies: + '@types/node': 26.6.3 + '@types/unist': 2.0.11 + '@types/vfile-message': 2.0.0 + + '@types/web-bluetooth@0.0.16': {} + + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + debug: 4.4.3 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare-lite: 1.4.1 + semver: 7.8.5 + tsutils: 3.21.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5)': + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + debug: 4.4.3 + eslint: 8.57.1 + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + + '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@4.9.5)': + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + debug: 4.4.3 + eslint: 8.57.1 + tsutils: 3.21.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@5.62.0': {} + + '@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5)': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.4.3 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.8.5 + tsutils: 3.21.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@4.9.5)': + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.8.0 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + eslint: 8.57.1 + eslint-scope: 5.1.1 + semver: 7.8.5 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.4.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + optional: true + + '@vitejs/plugin-vue-jsx@2.1.1(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0))(vue@3.5.43(typescript@4.9.5))': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-transform-typescript': 7.29.9(@babel/core@7.29.7) + '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.7) + vite: 3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0) + vue: 3.5.43(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@3.2.0(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0))(vue@3.5.43(typescript@4.9.5))': + dependencies: + vite: 3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0) + vue: 3.5.43(typescript@4.9.5) + + '@volar/language-core@1.11.1': + dependencies: + '@volar/source-map': 1.11.1 + + '@volar/source-map@1.11.1': + dependencies: + muggle-string: 0.3.1 + + '@volar/typescript@1.11.1': + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + + '@vue/babel-helper-vue-transform-on@1.5.0': {} + + '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.29.7)': + dependencies: + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + '@vue/babel-helper-vue-transform-on': 1.5.0 + '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.29.7) + '@vue/shared': 3.5.43 + optionalDependencies: + '@babel/core': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.29.7)': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/parser': 7.29.9 + '@vue/compiler-sfc': 3.5.43 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.5.43': + dependencies: + '@babel/parser': 7.29.9 + '@vue/shared': 3.5.43 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.43': + dependencies: + '@vue/compiler-core': 3.5.43 + '@vue/shared': 3.5.43 + + '@vue/compiler-sfc@3.5.43': + dependencies: + '@babel/parser': 7.29.9 + '@vue/compiler-core': 3.5.43 + '@vue/compiler-dom': 3.5.43 + '@vue/compiler-ssr': 3.5.43 + '@vue/shared': 3.5.43 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.28 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.43': + dependencies: + '@vue/compiler-dom': 3.5.43 + '@vue/shared': 3.5.43 + + '@vue/devtools-api@6.6.4': {} + + '@vue/language-core@1.8.27(typescript@4.9.5)': + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.5.43 + '@vue/shared': 3.5.43 + computeds: 0.0.1 + minimatch: 9.0.9 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + vue-template-compiler: 2.7.16 + optionalDependencies: + typescript: 4.9.5 + + '@vue/reactivity@3.5.43': + dependencies: + '@vue/shared': 3.5.43 + + '@vue/runtime-core@3.5.43': + dependencies: + '@vue/reactivity': 3.5.43 + '@vue/shared': 3.5.43 + + '@vue/runtime-dom@3.5.43': + dependencies: + '@vue/reactivity': 3.5.43 + '@vue/runtime-core': 3.5.43 + '@vue/shared': 3.5.43 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.43': + dependencies: + '@vue/compiler-ssr': 3.5.43 + '@vue/runtime-dom': 3.5.43 + '@vue/shared': 3.5.43 + + '@vue/shared@3.5.43': {} + + '@vueuse/core@9.13.0(vue@3.5.43(typescript@4.9.5))': + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.5.43(typescript@4.9.5)) + vue-demi: 0.14.10(vue@3.5.43(typescript@4.9.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@9.13.0': {} + + '@vueuse/shared@9.13.0(vue@3.5.43(typescript@4.9.5))': + dependencies: + vue-demi: 0.14.10(vue@3.5.43(typescript@4.9.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + acorn-jsx@5.3.2(acorn@8.18.0): + dependencies: + acorn: 8.18.0 + + acorn-walk@8.3.5: + dependencies: + acorn: 8.18.0 + + acorn@8.18.0: {} + + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.8 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-escapes@5.0.0: + dependencies: + type-fest: 1.4.0 + + ansi-regex@2.1.1: {} + + ansi-regex@4.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.4.0: {} + + ansi-styles@2.2.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + arch@2.2.0: {} + + archive-type@4.0.0: + dependencies: + file-type: 4.4.0 + + arg@4.1.3: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + arr-diff@4.0.0: {} + + arr-flatten@1.1.0: {} + + arr-union@3.1.0: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-find-index@1.0.2: {} + + array-ify@1.0.0: {} + + array-includes@3.2.0: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + es-shim-unscopables: 1.1.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + + array-union@1.0.2: + dependencies: + array-uniq: 1.0.3 + + array-union@2.1.0: {} + + array-uniq@1.0.3: {} + + array-unique@0.3.2: {} + + array.prototype.findlastindex@1.2.6: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + arrify@1.0.1: {} + + assign-symbols@1.0.0: {} + + astral-regex@1.0.0: {} + + astral-regex@2.0.0: {} + + async-function@1.0.0: {} + + atob@2.1.2: {} + + autoprefixer@9.8.8: + dependencies: + browserslist: 4.29.1 + caniuse-lite: 1.0.30001812 + normalize-range: 0.1.2 + num2fraction: 1.2.2 + picocolors: 0.2.1 + postcss: 7.0.39 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axios@0.24.0: + dependencies: + follow-redirects: 1.16.0 + transitivePeerDependencies: + - debug + + b-tween@0.3.3: {} + + b-validate@1.5.3: {} + + bail@1.0.5: {} + + balanced-match@1.0.2: {} + + balanced-match@2.0.0: {} + + balanced-match@4.0.4: {} + + base64-js@1.5.1: {} + + base@0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + baseline-browser-mapping@2.11.26: {} + + bin-build@3.0.0: + dependencies: + decompress: 4.2.1 + download: 6.2.5 + execa: 0.7.0 + p-map-series: 1.0.0 + tempfile: 2.0.0 + + bin-check@4.1.0: + dependencies: + execa: 0.7.0 + executable: 4.1.1 + + bin-version-check@4.0.0: + dependencies: + bin-version: 3.1.0 + semver: 5.7.2 + semver-truncate: 1.1.2 + + bin-version@3.1.0: + dependencies: + execa: 1.0.0 + find-versions: 3.2.0 + + bin-wrapper-china@0.1.0: + dependencies: + bin-check: 4.1.0 + bin-version-check: 4.0.0 + binary-mirror-config: 1.41.0 + download: 7.1.0 + import-lazy: 4.0.0 + os-filter-obj: 2.0.0 + pify: 4.0.1 + + binary-extensions@2.3.0: {} + + binary-mirror-config@1.41.0: {} + + bl@1.2.3: + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + + boolbase@1.0.0: {} + + brace-expansion@1.1.21: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.1.7: + dependencies: + balanced-match: 1.0.2 + + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + + braces@2.3.2: + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.29.1: + dependencies: + baseline-browser-mapping: 2.11.26 + caniuse-lite: 1.0.30001812 + electron-to-chromium: 1.5.439 + node-releases: 2.0.57 + update-browserslist-db: 1.3.3(browserslist@4.29.1) + + buffer-alloc-unsafe@1.1.0: {} + + buffer-alloc@1.2.0: + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + + buffer-crc32@0.2.13: {} + + buffer-fill@1.0.0: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + cache-base@1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + cacheable-request@2.1.4: + dependencies: + clone-response: 1.0.2 + get-stream: 3.0.0 + http-cache-semantics: 3.8.1 + keyv: 3.0.0 + lowercase-keys: 1.0.0 + normalize-url: 2.0.1 + responselike: 1.0.2 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + call-me-maybe@1.0.2: {} + + caller-callsite@2.0.0: + dependencies: + callsites: 2.0.0 + + caller-path@2.0.0: + dependencies: + caller-callsite: 2.0.0 + + callsites@2.0.0: {} + + callsites@3.1.0: {} + + camelcase-keys@2.1.0: + dependencies: + camelcase: 2.1.1 + map-obj: 1.0.1 + + camelcase-keys@4.2.0: + dependencies: + camelcase: 4.1.0 + map-obj: 2.0.0 + quick-lru: 1.1.0 + + camelcase-keys@6.2.2: + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + + camelcase@2.1.1: {} + + camelcase@4.1.0: {} + + camelcase@5.3.1: {} + + caniuse-lite@1.0.30001812: {} + + caw@2.0.1: + dependencies: + get-proxy: 2.1.0 + isurl: 1.0.0 + tunnel-agent: 0.6.0 + url-to-options: 1.0.1 + + ccount@1.1.0: {} + + chalk@1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + character-entities-html4@1.1.4: {} + + character-entities-legacy@1.1.4: {} + + character-entities@1.2.4: {} + + character-reference-invalid@1.1.4: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + class-utils@0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + cli-cursor@4.0.0: + dependencies: + restore-cursor: 4.0.0 + + cli-truncate@3.1.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-regexp@1.0.1: + dependencies: + is-regexp: 1.0.0 + is-supported-regexp-flag: 1.0.1 + + clone-response@1.0.2: + dependencies: + mimic-response: 1.0.1 + + collapse-white-space@1.0.6: {} + + collection-visit@1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.4 + + color@3.2.1: + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + + colord@2.10.0: {} + + colorette@2.0.20: {} + + commander@11.0.0: {} + + commander@15.0.0: {} + + commander@2.20.3: {} + + commander@7.2.0: {} + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + component-emitter@1.3.1: {} + + compute-scroll-into-view@1.0.20: {} + + computeds@0.0.1: {} + + concat-map@0.0.1: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + confusing-browser-globals@1.0.11: {} + + consola@2.15.3: {} + + console-stream@0.1.1: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + conventional-changelog-angular@6.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-conventionalcommits@6.1.0: + dependencies: + compare-func: 2.0.0 + + conventional-commits-parser@4.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + meow: 8.1.2 + split2: 3.2.2 + + convert-source-map@2.0.0: {} + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + copy-descriptor@0.1.1: {} + + core-util-is@1.0.3: {} + + cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@4.9.5))(ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5))(typescript@4.9.5): + dependencies: + '@types/node': 20.5.1 + cosmiconfig: 8.3.6(typescript@4.9.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@4.9.5) + typescript: 4.9.5 + + cosmiconfig@5.2.1: + dependencies: + import-fresh: 2.0.0 + is-directory: 0.3.1 + js-yaml: 3.15.2 + parse-json: 4.0.0 + + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.3 + + cosmiconfig@8.3.6(typescript@4.9.5): + dependencies: + import-fresh: 3.3.1 + js-yaml: 4.3.2 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 4.9.5 + + create-require@1.1.1: {} + + cross-env@7.0.3: + dependencies: + cross-spawn: 7.0.6 + + cross-spawn@5.1.0: + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + + cross-spawn@6.0.6: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-functions-list@3.3.3: {} + + css-select@4.3.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + + css-tree@1.1.3: + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + + css-what@6.2.2: {} + + cssesc@3.0.0: {} + + csso@4.2.0: + dependencies: + css-tree: 1.1.3 + + csstype@3.2.3: {} + + currently-unhandled@0.4.1: + dependencies: + array-find-index: 1.0.2 + + cwebp-bin@6.1.2: + dependencies: + bin-build: 3.0.0 + bin-wrapper: bin-wrapper-china@0.1.0 + + dargs@7.0.0: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + dayjs@1.11.23: {} + + de-indent@1.0.2: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decamelize-keys@1.1.1: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + decamelize@1.2.0: {} + + decode-uri-component@0.2.2: {} + + decode-uri-component@0.4.1: {} + + decompress-response@3.3.0: + dependencies: + mimic-response: 1.0.1 + + decompress-tar@4.1.1: + dependencies: + file-type: 5.2.0 + is-stream: 1.1.0 + tar-stream: 1.6.2 + + decompress-tarbz2@4.1.1: + dependencies: + decompress-tar: 4.1.1 + file-type: 6.2.0 + is-stream: 1.1.0 + seek-bzip: 1.0.6 + unbzip2-stream: 1.4.3 + + decompress-targz@4.1.1: + dependencies: + decompress-tar: 4.1.1 + file-type: 5.2.0 + is-stream: 1.1.0 + + decompress-unzip@4.0.1: + dependencies: + file-type: 3.9.0 + get-stream: 2.3.1 + pify: 2.3.0 + yauzl: 2.10.0 + + decompress@4.2.1: + dependencies: + decompress-tar: 4.1.1 + decompress-tarbz2: 4.1.1 + decompress-targz: 4.1.1 + decompress-unzip: 4.0.1 + graceful-fs: 4.2.11 + make-dir: 1.3.0 + pify: 2.3.0 + strip-dirs: 2.1.0 + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-lazy-prop@2.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + define-property@0.2.5: + dependencies: + is-descriptor: 0.1.8 + + define-property@1.0.0: + dependencies: + is-descriptor: 1.0.4 + + define-property@2.0.2: + dependencies: + is-descriptor: 1.0.4 + isobject: 3.0.1 + + diff@4.0.4: {} + + dir-glob@2.2.2: + dependencies: + path-type: 3.0.0 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-serializer@0.2.2: + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + + dom-serializer@1.4.1: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@1.3.1: {} + + domelementtype@2.3.0: {} + + domhandler@2.4.2: + dependencies: + domelementtype: 1.3.1 + + domhandler@4.3.1: + dependencies: + domelementtype: 2.3.0 + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@1.7.0: + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + + domutils@2.8.0: + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + + download@6.2.5: + dependencies: + caw: 2.0.1 + content-disposition: 0.5.4 + decompress: 4.2.1 + ext-name: 5.0.0 + file-type: 5.2.0 + filenamify: 2.1.0 + get-stream: 3.0.0 + got: 7.1.0 + make-dir: 1.3.0 + p-event: 1.3.0 + pify: 3.0.0 + + download@7.1.0: + dependencies: + archive-type: 4.0.0 + caw: 2.0.1 + content-disposition: 0.5.4 + decompress: 4.2.1 + ext-name: 5.0.0 + file-type: 8.1.0 + filenamify: 2.1.0 + get-stream: 3.0.0 + got: 8.3.2 + make-dir: 1.3.0 + p-event: 2.3.1 + pify: 3.0.0 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer3@0.1.5: {} + + eastasianwidth@0.2.0: {} + + echarts@5.6.0: + dependencies: + tslib: 2.3.0 + zrender: 5.6.1 + + electron-to-chromium@1.5.439: {} + + emoji-regex@7.0.3: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + empathic@2.1.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + entities@1.1.2: {} + + entities@2.2.0: {} + + entities@4.5.0: {} + + entities@7.0.1: {} + + errno@0.1.8: + dependencies: + prr: 1.0.1 + optional: true + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + es-abstract-get@1.0.0: + dependencies: + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + is-callable: 1.2.7 + object-inspect: 1.13.4 + + es-abstract@1.24.2: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.4 + function.prototype.name: 1.2.0 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.2 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.4 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.5 + typed-array-length: 1.0.8 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.24 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.4 + + es-to-primitive@1.3.4: + dependencies: + es-abstract-get: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + esbuild-android-64@0.14.54: + optional: true + + esbuild-android-64@0.15.18: + optional: true + + esbuild-android-arm64@0.14.54: + optional: true + + esbuild-android-arm64@0.15.18: + optional: true + + esbuild-darwin-64@0.14.54: + optional: true + + esbuild-darwin-64@0.15.18: + optional: true + + esbuild-darwin-arm64@0.14.54: + optional: true + + esbuild-darwin-arm64@0.15.18: + optional: true + + esbuild-freebsd-64@0.14.54: + optional: true + + esbuild-freebsd-64@0.15.18: + optional: true + + esbuild-freebsd-arm64@0.14.54: + optional: true + + esbuild-freebsd-arm64@0.15.18: + optional: true + + esbuild-linux-32@0.14.54: + optional: true + + esbuild-linux-32@0.15.18: + optional: true + + esbuild-linux-64@0.14.54: + optional: true + + esbuild-linux-64@0.15.18: + optional: true + + esbuild-linux-arm64@0.14.54: + optional: true + + esbuild-linux-arm64@0.15.18: + optional: true + + esbuild-linux-arm@0.14.54: + optional: true + + esbuild-linux-arm@0.15.18: + optional: true + + esbuild-linux-mips64le@0.14.54: + optional: true + + esbuild-linux-mips64le@0.15.18: + optional: true + + esbuild-linux-ppc64le@0.14.54: + optional: true + + esbuild-linux-ppc64le@0.15.18: + optional: true + + esbuild-linux-riscv64@0.14.54: + optional: true + + esbuild-linux-riscv64@0.15.18: + optional: true + + esbuild-linux-s390x@0.14.54: + optional: true + + esbuild-linux-s390x@0.15.18: + optional: true + + esbuild-netbsd-64@0.14.54: + optional: true + + esbuild-netbsd-64@0.15.18: + optional: true + + esbuild-openbsd-64@0.14.54: + optional: true + + esbuild-openbsd-64@0.15.18: + optional: true + + esbuild-sunos-64@0.14.54: + optional: true + + esbuild-sunos-64@0.15.18: + optional: true + + esbuild-windows-32@0.14.54: + optional: true + + esbuild-windows-32@0.15.18: + optional: true + + esbuild-windows-64@0.14.54: + optional: true + + esbuild-windows-64@0.15.18: + optional: true + + esbuild-windows-arm64@0.14.54: + optional: true + + esbuild-windows-arm64@0.15.18: + optional: true + + esbuild@0.14.54: + optionalDependencies: + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + + esbuild@0.15.18: + optionalDependencies: + '@esbuild/android-arm': 0.15.18 + '@esbuild/linux-loong64': 0.15.18 + esbuild-android-64: 0.15.18 + esbuild-android-arm64: 0.15.18 + esbuild-darwin-64: 0.15.18 + esbuild-darwin-arm64: 0.15.18 + esbuild-freebsd-64: 0.15.18 + esbuild-freebsd-arm64: 0.15.18 + esbuild-linux-32: 0.15.18 + esbuild-linux-64: 0.15.18 + esbuild-linux-arm: 0.15.18 + esbuild-linux-arm64: 0.15.18 + esbuild-linux-mips64le: 0.15.18 + esbuild-linux-ppc64le: 0.15.18 + esbuild-linux-riscv64: 0.15.18 + esbuild-linux-s390x: 0.15.18 + esbuild-netbsd-64: 0.15.18 + esbuild-openbsd-64: 0.15.18 + esbuild-sunos-64: 0.15.18 + esbuild-windows-32: 0.15.18 + esbuild-windows-64: 0.15.18 + esbuild-windows-arm64: 0.15.18 + + escalade@3.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.32.0)(eslint@8.57.1): + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.57.1 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + object.assign: 4.1.7 + object.entries: 1.1.9 + semver: 6.3.1 + + eslint-config-prettier@8.10.2(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-import-resolver-node@0.3.10: + dependencies: + debug: 3.2.7 + is-core-module: 2.17.0 + resolve: 2.0.0-next.7 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.3 + eslint: 8.57.1 + get-tsconfig: 4.14.3 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.17 + unrs-resolver: 1.12.2 + optionalDependencies: + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.14.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.10 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.2.0 + 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: 8.57.1 + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.14.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + hasown: 2.0.4 + is-core-module: 2.17.0 + is-glob: 4.0.3 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.10 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-prettier@4.2.5(eslint-config-prettier@8.10.2(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8): + dependencies: + eslint: 8.57.1 + prettier: 2.8.8 + prettier-linter-helpers: 1.0.1 + optionalDependencies: + eslint-config-prettier: 8.10.2(eslint@8.57.1) + + eslint-plugin-vue@9.33.0(eslint@8.57.1): + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@8.57.1) + eslint: 8.57.1 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.4 + semver: 7.8.5 + vue-eslint-parser: 9.4.3(eslint@8.57.1) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.4.0 + ajv: 6.15.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.3.2 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + eventemitter3@5.0.4: {} + + exec-buffer@3.2.0: + dependencies: + execa: 0.7.0 + p-finally: 1.0.0 + pify: 3.0.0 + rimraf: 2.7.1 + tempfile: 2.0.0 + + execa@0.7.0: + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + + execa@1.0.0: + dependencies: + cross-spawn: 6.0.6 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + + execa@4.1.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@7.2.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + + execall@1.0.0: + dependencies: + clone-regexp: 1.0.1 + + executable@4.1.1: + dependencies: + pify: 2.3.0 + + expand-brackets@2.1.4: + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + ext-list@2.2.2: + dependencies: + mime-db: 1.54.0 + + ext-name@5.0.0: + dependencies: + ext-list: 2.2.2 + sort-keys-length: 1.0.1 + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend-shallow@3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + extend@3.0.2: {} + + extglob@2.0.4: + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@2.2.7: + dependencies: + '@mrmlnc/readdir-enhanced': 2.2.1 + '@nodelib/fs.stat': 1.1.3 + glob-parent: 3.1.0 + is-glob: 4.0.3 + merge2: 1.4.1 + micromatch: 3.1.10 + transitivePeerDependencies: + - supports-color + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.1.8: {} + + fast-xml-parser@4.5.7: + dependencies: + strnum: 1.1.2 + + fastest-levenshtein@1.0.16: {} + + fastq@1.20.3: + dependencies: + reusify: 1.1.0 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fdir@6.5.0(picomatch@4.0.7): + optionalDependencies: + picomatch: 4.0.7 + + figures@1.7.0: + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + + file-entry-cache@4.0.0: + dependencies: + flat-cache: 2.0.1 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + file-type@10.11.0: {} + + file-type@12.4.2: {} + + file-type@3.9.0: {} + + file-type@4.4.0: {} + + file-type@5.2.0: {} + + file-type@6.2.0: {} + + file-type@8.1.0: {} + + filename-reserved-regex@2.0.0: {} + + filenamify@2.1.0: + dependencies: + filename-reserved-regex: 2.0.0 + strip-outer: 1.0.1 + trim-repeated: 1.0.0 + + fill-range@4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + filter-obj@5.1.0: {} + + find-up@1.1.2: + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + + find-up@2.1.0: + dependencies: + locate-path: 2.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-versions@3.2.0: + dependencies: + semver-regex: 2.0.0 + + flat-cache@2.0.1: + dependencies: + flatted: 2.0.2 + rimraf: 2.6.3 + write: 1.0.3 + + flat-cache@3.2.0: + dependencies: + flatted: 3.4.4 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@2.0.2: {} + + flatted@3.4.4: {} + + flru@1.0.2: {} + + follow-redirects@1.16.0: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + for-in@1.0.2: {} + + fragment-cache@0.2.1: + dependencies: + map-cache: 0.2.2 + + from2@2.3.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + fs-constants@1.0.0: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + + fs-extra@11.4.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.2.0: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + es-define-property: 1.0.1 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + hasown: 2.0.4 + is-callable: 1.2.7 + is-document.all: 1.0.0 + + functions-have-names@1.2.3: {} + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + get-proxy@2.1.0: + dependencies: + npm-conf: 1.1.3 + + get-stdin@4.0.1: {} + + get-stdin@6.0.0: {} + + get-stream@2.3.1: + dependencies: + object-assign: 4.1.1 + pinkie-promise: 2.0.1 + + get-stream@3.0.0: {} + + get-stream@4.1.0: + dependencies: + pump: 3.0.4 + + get-stream@5.2.0: + dependencies: + pump: 3.0.4 + + get-stream@6.0.1: {} + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + get-tsconfig@4.14.3: + dependencies: + resolve-pkg-maps: 1.0.0 + + get-value@2.0.6: {} + + gifsicle@5.2.0: + dependencies: + bin-build: 3.0.0 + bin-wrapper: bin-wrapper-china@0.1.0 + execa: 5.1.1 + logalot: 2.1.0 + + git-raw-commits@2.0.11: + dependencies: + dargs: 7.0.0 + lodash: 4.18.1 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + + glob-parent@3.1.0: + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.3.0: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.5 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-dirs@0.1.1: + dependencies: + ini: 1.3.8 + + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 + + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@10.0.2: + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + glob: 7.2.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + globby@9.2.0: + dependencies: + '@types/glob': 7.2.0 + array-union: 1.0.2 + dir-glob: 2.2.2 + fast-glob: 2.2.7 + glob: 7.2.3 + ignore: 4.0.6 + pify: 4.0.1 + slash: 2.0.0 + transitivePeerDependencies: + - supports-color + + globjoin@0.1.4: {} + + gonzales-pe@4.3.0: + dependencies: + minimist: 1.2.8 + + gopd@1.2.0: {} + + got@7.1.0: + dependencies: + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.3 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 3.0.0 + is-plain-obj: 1.1.0 + is-retry-allowed: 1.2.0 + is-stream: 1.1.0 + isurl: 1.0.0 + lowercase-keys: 1.0.1 + p-cancelable: 0.3.0 + p-timeout: 1.2.1 + safe-buffer: 5.2.1 + timed-out: 4.0.1 + url-parse-lax: 1.0.0 + url-to-options: 1.0.1 + + got@8.3.2: + dependencies: + '@sindresorhus/is': 0.7.0 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.3 + cacheable-request: 2.1.4 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 3.0.0 + into-stream: 3.1.0 + is-retry-allowed: 1.2.0 + isurl: 1.0.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 0.4.1 + p-timeout: 2.0.1 + pify: 3.0.0 + safe-buffer: 5.2.1 + timed-out: 4.0.1 + url-parse-lax: 3.0.0 + url-to-options: 1.0.1 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + hard-rejection@2.1.0: {} + + has-ansi@2.0.0: + dependencies: + ansi-regex: 2.1.1 + + has-bigints@1.1.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbol-support-x@1.4.2: {} + + has-symbols@1.1.0: {} + + has-to-string-tag-x@1.4.1: + dependencies: + has-symbol-support-x: 1.4.2 + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + has-value@0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + has-value@1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + has-values@0.1.4: {} + + has-values@1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + hosted-git-info@2.8.9: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + html-tags@2.0.0: {} + + html-tags@3.3.1: {} + + htmlparser2@3.10.1: + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + + http-cache-semantics@3.8.1: {} + + human-signals@1.1.1: {} + + human-signals@2.1.0: {} + + human-signals@4.3.1: {} + + husky@8.0.3: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + optional: true + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + optional: true + + ieee754@1.2.1: {} + + ignore@4.0.6: {} + + ignore@5.3.2: {} + + imagemin-gifsicle@7.0.0: + dependencies: + execa: 1.0.0 + gifsicle: 5.2.0 + is-gif: 3.0.0 + + imagemin-jpegtran@7.0.0: + dependencies: + exec-buffer: 3.2.0 + is-jpg: 2.0.0 + jpegtran-bin: 5.0.2 + + imagemin-mozjpeg@9.0.0: + dependencies: + execa: 4.1.0 + is-jpg: 2.0.0 + mozjpeg: 7.1.1 + + imagemin-optipng@8.0.0: + dependencies: + exec-buffer: 3.2.0 + is-png: 2.0.0 + optipng-bin: 7.0.1 + + imagemin-pngquant@9.0.2: + dependencies: + execa: 4.1.0 + is-png: 2.0.0 + is-stream: 2.0.1 + ow: 0.17.0 + pngquant-bin: 6.0.1 + + imagemin-svgo@9.0.0: + dependencies: + is-svg: 4.4.0 + svgo: 2.8.4 + + imagemin-webp@6.1.0: + dependencies: + cwebp-bin: 6.1.2 + exec-buffer: 3.2.0 + is-cwebp-readable: 3.0.0 + + imagemin@7.0.1: + dependencies: + file-type: 12.4.2 + globby: 10.0.2 + graceful-fs: 4.2.11 + junk: 3.1.0 + make-dir: 3.1.0 + p-pipe: 3.1.0 + replace-ext: 1.0.1 + + import-fresh@2.0.0: + dependencies: + caller-path: 2.0.0 + resolve-from: 3.0.0 + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-lazy@3.1.0: {} + + import-lazy@4.0.0: {} + + import-meta-resolve@4.2.0: {} + + imurmurhash@0.1.4: {} + + indent-string@2.1.0: + dependencies: + repeating: 2.0.1 + + indent-string@3.2.0: {} + + indent-string@4.0.0: {} + + indexes-of@1.0.1: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@1.3.8: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.4 + side-channel: 1.1.1 + + into-stream@3.1.0: + dependencies: + from2: 2.3.0 + p-is-promise: 1.1.0 + + is-accessor-descriptor@1.0.2: + dependencies: + hasown: 2.0.4 + + is-alphabetical@1.0.4: {} + + is-alphanumeric@1.0.0: {} + + is-alphanumerical@1.0.4: + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-arrayish@0.2.1: {} + + is-arrayish@0.3.4: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-buffer@1.1.6: {} + + is-buffer@2.0.5: {} + + is-bun-module@2.0.0: + dependencies: + semver: 7.8.5 + + is-callable@1.2.7: {} + + is-core-module@2.17.0: + dependencies: + hasown: 2.0.4 + + is-cwebp-readable@3.0.0: + dependencies: + file-type: 10.11.0 + + is-data-descriptor@1.0.1: + dependencies: + hasown: 2.0.4 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-decimal@1.0.4: {} + + is-descriptor@0.1.8: + dependencies: + is-accessor-descriptor: 1.0.2 + is-data-descriptor: 1.0.1 + + is-descriptor@1.0.4: + dependencies: + is-accessor-descriptor: 1.0.2 + is-data-descriptor: 1.0.1 + + is-directory@0.3.1: {} + + is-docker@2.2.1: {} + + is-document.all@1.0.0: + dependencies: + call-bound: 1.0.4 + + is-extendable@0.1.1: {} + + is-extendable@1.0.1: + dependencies: + is-plain-object: 2.0.4 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-finite@1.1.0: {} + + is-fullwidth-code-point@2.0.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-gif@3.0.0: + dependencies: + file-type: 10.11.0 + + is-glob@3.1.0: + dependencies: + is-extglob: 2.1.1 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@1.0.4: {} + + is-jpg@2.0.0: {} + + is-map@2.0.3: {} + + is-natural-number@4.0.1: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-number@3.0.0: + dependencies: + kind-of: 3.2.2 + + is-number@7.0.0: {} + + is-obj@2.0.0: {} + + is-object@1.0.2: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@1.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-plain-object@5.1.0: {} + + is-png@2.0.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + is-regexp@1.0.0: {} + + is-retry-allowed@1.2.0: {} + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-stream@1.1.0: {} + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-supported-regexp-flag@1.0.1: {} + + is-svg@4.4.0: + dependencies: + fast-xml-parser: 4.5.7 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-text-path@1.0.1: + dependencies: + text-extensions: 1.9.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.24 + + is-utf8@0.2.1: {} + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-what@4.1.16: {} + + is-whitespace-character@1.0.4: {} + + is-windows@1.0.2: {} + + is-word-character@1.0.4: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isobject@2.1.0: + dependencies: + isarray: 1.0.0 + + isobject@3.0.1: {} + + isurl@1.0.0: + dependencies: + has-to-string-tag-x: 1.4.1 + is-object: 1.0.2 + + jpegtran-bin@5.0.2: + dependencies: + bin-build: 3.0.0 + bin-wrapper: bin-wrapper-china@0.1.0 + logalot: 2.1.0 + + jpegtran-bin@6.0.1: + dependencies: + bin-build: 3.0.0 + bin-wrapper: bin-wrapper-china@0.1.0 + + js-tokens@10.0.0: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.1: {} + + js-yaml@3.15.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.3.2: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-buffer@3.0.0: {} + + json-buffer@3.0.1: {} + + json-parse-better-errors@1.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsonfile@6.2.1: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + junk@3.1.0: {} + + keyv@3.0.0: + dependencies: + json-buffer: 3.0.0 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@3.2.2: + dependencies: + is-buffer: 1.1.6 + + kind-of@4.0.0: + dependencies: + is-buffer: 1.1.6 + + kind-of@6.0.3: {} + + known-css-properties@0.11.0: {} + + known-css-properties@0.26.0: {} + + less@4.9.1: + dependencies: + copy-anything: 3.0.5 + parse-node-version: 1.0.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + make-dir: 5.1.0 + mime: 1.6.0 + needle: 3.5.0 + probe-image-size: 7.4.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + leven@2.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + + lines-and-columns@1.2.4: {} + + lint-staged@13.3.0: + dependencies: + chalk: 5.3.0 + commander: 11.0.0 + debug: 4.3.4 + execa: 7.2.0 + lilconfig: 2.1.0 + listr2: 6.6.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.1 + transitivePeerDependencies: + - enquirer + - supports-color + + listr2@6.6.1: + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.4 + log-update: 5.0.1 + rfdc: 1.4.1 + wrap-ansi: 8.1.0 + + load-json-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + + load-json-file@4.0.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + + local-pkg@0.4.3: {} + + locate-path@2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.isfunction@3.0.9: {} + + lodash.isplainobject@4.0.6: {} + + lodash.kebabcase@4.1.1: {} + + lodash.merge@4.6.2: {} + + lodash.mergewith@4.6.2: {} + + lodash.snakecase@4.1.1: {} + + lodash.startcase@4.4.0: {} + + lodash.truncate@4.4.2: {} + + lodash.uniq@4.5.0: {} + + lodash.upperfirst@4.3.1: {} + + lodash@4.18.1: {} + + log-symbols@2.2.0: + dependencies: + chalk: 2.4.2 + + log-update@5.0.1: + dependencies: + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.2.0 + wrap-ansi: 8.1.0 + + logalot@2.1.0: + dependencies: + figures: 1.7.0 + squeak: 1.3.0 + + longest-streak@2.0.4: {} + + longest@1.0.1: {} + + loud-rejection@1.6.0: + dependencies: + currently-unhandled: 0.4.1 + signal-exit: 3.0.7 + + lowercase-keys@1.0.0: {} + + lowercase-keys@1.0.1: {} + + lpad-align@1.1.2: + dependencies: + get-stdin: 4.0.1 + indent-string: 2.1.0 + longest: 1.0.1 + meow: 3.7.0 + + lru-cache@4.1.5: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + + make-dir@1.3.0: + dependencies: + pify: 3.0.0 + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + make-dir@5.1.0: + optional: true + + make-error@1.3.6: {} + + map-cache@0.2.2: {} + + map-obj@1.0.1: {} + + map-obj@2.0.0: {} + + map-obj@4.3.0: {} + + map-visit@1.0.0: + dependencies: + object-visit: 1.0.1 + + markdown-escapes@1.0.4: {} + + markdown-table@1.1.3: {} + + math-intrinsics@1.1.0: {} + + mathml-tag-names@2.1.3: {} + + mdast-util-compact@1.0.4: + dependencies: + unist-util-visit: 1.4.1 + + mdn-data@2.0.14: {} + + meow@3.7.0: + dependencies: + camelcase-keys: 2.1.0 + decamelize: 1.2.0 + loud-rejection: 1.6.0 + map-obj: 1.0.1 + minimist: 1.2.8 + normalize-package-data: 2.5.0 + object-assign: 4.1.1 + read-pkg-up: 1.0.1 + redent: 1.0.0 + trim-newlines: 1.0.0 + + meow@5.0.0: + dependencies: + camelcase-keys: 4.2.0 + decamelize-keys: 1.1.1 + loud-rejection: 1.6.0 + minimist-options: 3.0.2 + normalize-package-data: 2.5.0 + read-pkg-up: 3.0.0 + redent: 2.0.0 + trim-newlines: 2.0.0 + yargs-parser: 10.1.0 + + meow@8.1.2: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + + meow@9.0.0: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@3.1.10: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.5: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + + mime-db@1.54.0: {} + + mime@1.6.0: + optional: true + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-response@1.0.1: {} + + min-indent@1.0.1: {} + + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.21 + + minimatch@7.4.9: + dependencies: + brace-expansion: 2.1.7 + + minimatch@9.0.9: + dependencies: + brace-expansion: 2.1.7 + + minimist-options@3.0.2: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + + minimist-options@4.1.0: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + + minimist@1.2.8: {} + + mitt@3.0.1: {} + + mixin-deep@1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mockjs@1.1.0: + dependencies: + commander: 15.0.0 + + mozjpeg@7.1.1: + dependencies: + bin-build: 3.0.0 + bin-wrapper: bin-wrapper-china@0.1.0 + + ms@2.0.0: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + muggle-string@0.3.1: {} + + nanoid@3.3.19: {} + + nanomatch@1.2.13: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + napi-postinstall@0.3.4: {} + + natural-compare-lite@1.4.1: {} + + natural-compare@1.4.0: {} + + needle@2.9.1: + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.6.1 + transitivePeerDependencies: + - supports-color + optional: true + + needle@3.5.0: + dependencies: + iconv-lite: 0.6.3 + sax: 1.6.1 + optional: true + + nice-try@1.0.5: {} + + node-exports-info@1.6.2: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + + node-releases@2.0.57: {} + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.12 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.17.0 + semver: 7.8.5 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + normalize-selector@0.2.0: {} + + normalize-url@2.0.1: + dependencies: + prepend-http: 2.0.0 + query-string: 5.1.1 + sort-keys: 2.0.0 + + npm-conf@1.1.3: + dependencies: + config-chain: 1.1.13 + pify: 3.0.0 + + npm-run-path@2.0.2: + dependencies: + path-key: 2.0.1 + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + nprogress@0.2.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + num2fraction@1.2.2: {} + + number-precision@1.6.0: {} + + object-assign@4.1.1: {} + + object-copy@0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object-visit@1.0.1: + dependencies: + isobject: 3.0.1 + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + + object.pick@1.3.0: + dependencies: + isobject: 3.0.1 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + obug@2.2.1: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + optipng-bin@7.0.1: + dependencies: + bin-build: 3.0.0 + bin-wrapper: bin-wrapper-china@0.1.0 + + os-filter-obj@2.0.0: + dependencies: + arch: 2.2.0 + + ow@0.17.0: + dependencies: + type-fest: 0.11.0 + + own-keys@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-cancelable@0.3.0: {} + + p-cancelable@0.4.1: {} + + p-event@1.3.0: + dependencies: + p-timeout: 1.2.1 + + p-event@2.3.1: + dependencies: + p-timeout: 2.0.1 + + p-finally@1.0.0: {} + + p-is-promise@1.1.0: {} + + p-limit@1.3.0: + dependencies: + p-try: 1.0.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@2.0.0: + dependencies: + p-limit: 1.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map-series@1.0.0: + dependencies: + p-reduce: 1.0.0 + + p-pipe@3.1.0: {} + + p-reduce@1.0.0: {} + + p-timeout@1.2.1: + dependencies: + p-finally: 1.0.0 + + p-timeout@2.0.1: + dependencies: + p-finally: 1.0.0 + + p-try@1.0.0: {} + + p-try@2.2.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-entities@1.2.2: + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + + parse-json@2.2.0: + dependencies: + error-ex: 1.3.4 + + parse-json@4.0.0: + dependencies: + error-ex: 1.3.4 + json-parse-better-errors: 1.0.2 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.29.7 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-node-version@1.0.1: {} + + pascalcase@0.1.1: {} + + path-browserify@1.0.1: {} + + path-dirname@1.0.2: {} + + path-exists@2.1.0: + dependencies: + pinkie-promise: 2.0.1 + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@2.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-type@1.1.0: + dependencies: + graceful-fs: 4.2.11 + pify: 2.3.0 + pinkie-promise: 2.0.1 + + path-type@3.0.0: + dependencies: + pify: 3.0.0 + + path-type@4.0.0: {} + + pathe@0.2.0: {} + + pend@1.2.0: {} + + picocolors@0.2.1: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.7: {} + + pidtree@0.6.0: {} + + pify@2.3.0: {} + + pify@3.0.0: {} + + pify@4.0.1: {} + + pinia@2.3.1(typescript@4.9.5)(vue@3.5.43(typescript@4.9.5)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.43(typescript@4.9.5) + vue-demi: 0.14.10(vue@3.5.43(typescript@4.9.5)) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - '@vue/composition-api' + + pinkie-promise@2.0.1: + dependencies: + pinkie: 2.0.4 + + pinkie@2.0.4: {} + + pngquant-bin@6.0.1: + dependencies: + bin-build: 3.0.0 + bin-wrapper: bin-wrapper-china@0.1.0 + execa: 4.1.0 + + posix-character-classes@0.1.1: {} + + possible-typed-array-names@1.1.0: {} + + postcss-html@0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39): + dependencies: + htmlparser2: 3.10.1 + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + + postcss-html@1.8.1: + dependencies: + htmlparser2: 8.0.2 + js-tokens: 9.0.1 + postcss: 8.5.28 + postcss-safe-parser: 6.0.0(postcss@8.5.28) + + postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39): + dependencies: + '@babel/core': 8.0.6 + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + + postcss-less@3.1.4: + dependencies: + postcss: 7.0.39 + + postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39): + dependencies: + postcss: 7.0.39 + postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + remark: 10.0.1 + unist-util-find-all-after: 1.0.5 + + postcss-media-query-parser@0.2.3: {} + + postcss-reporter@6.0.1: + dependencies: + chalk: 2.4.2 + lodash: 4.18.1 + log-symbols: 2.2.0 + postcss: 7.0.39 + + postcss-resolve-nested-selector@0.1.6: {} + + postcss-safe-parser@4.0.2: + dependencies: + postcss: 7.0.39 + + postcss-safe-parser@6.0.0(postcss@8.5.28): + dependencies: + postcss: 8.5.28 + + postcss-sass@0.3.5: + dependencies: + gonzales-pe: 4.3.0 + postcss: 7.0.39 + + postcss-scss@2.1.1: + dependencies: + postcss: 7.0.39 + + postcss-selector-parser@3.1.2: + dependencies: + dot-prop: 5.3.0 + indexes-of: 1.0.1 + uniq: 1.0.1 + + postcss-selector-parser@6.1.4: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-sorting@4.1.0: + dependencies: + lodash: 4.18.1 + postcss: 7.0.39 + + postcss-sorting@7.0.1(postcss@8.5.28): + dependencies: + postcss: 8.5.28 + + postcss-syntax@0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39): + dependencies: + postcss: 7.0.39 + optionalDependencies: + postcss-html: 0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39) + postcss-jsx: 0.36.4(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39) + postcss-less: 3.1.4 + postcss-markdown: 0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39) + postcss-scss: 2.1.1 + + postcss-value-parser@3.3.1: {} + + postcss-value-parser@4.2.0: {} + + postcss@7.0.39: + dependencies: + picocolors: 0.2.1 + source-map: 0.6.1 + + postcss@8.5.28: + dependencies: + nanoid: 3.3.19 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prepend-http@1.0.4: {} + + prepend-http@2.0.0: {} + + prettier-linter-helpers@1.0.1: + dependencies: + fast-diff: 1.3.0 + + prettier@2.8.8: {} + + probe-image-size@7.4.0: + dependencies: + lodash.merge: 4.6.2 + needle: 2.9.1 + stream-parser: 0.3.1 + transitivePeerDependencies: + - supports-color + optional: true + + process-nextick-args@2.0.1: {} + + proto-list@1.2.4: {} + + prr@1.0.1: + optional: true + + pseudomap@1.0.2: {} + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + punycode@2.3.1: {} + + query-string@5.1.1: + dependencies: + decode-uri-component: 0.2.2 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + + query-string@8.2.0: + dependencies: + decode-uri-component: 0.4.1 + filter-obj: 5.1.0 + split-on-first: 3.0.0 + + queue-microtask@1.2.3: {} + + quick-lru@1.1.0: {} + + quick-lru@4.0.1: {} + + read-pkg-up@1.0.1: + dependencies: + find-up: 1.1.2 + read-pkg: 1.1.0 + + read-pkg-up@3.0.0: + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@1.1.0: + dependencies: + load-json-file: 1.1.0 + normalize-package-data: 2.5.0 + path-type: 1.1.0 + + read-pkg@3.0.0: + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.2 + + redent@1.0.0: + dependencies: + indent-string: 2.1.0 + strip-indent: 1.0.1 + + redent@2.0.0: + dependencies: + indent-string: 3.2.0 + strip-indent: 2.0.0 + + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regex-not@1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + remark-parse@6.0.3: + dependencies: + collapse-white-space: 1.0.6 + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + is-whitespace-character: 1.0.4 + is-word-character: 1.0.4 + markdown-escapes: 1.0.4 + parse-entities: 1.2.2 + repeat-string: 1.6.1 + state-toggle: 1.0.3 + trim: 0.0.1 + trim-trailing-lines: 1.1.4 + unherit: 1.1.3 + unist-util-remove-position: 1.1.4 + vfile-location: 2.0.6 + xtend: 4.0.2 + + remark-stringify@6.0.4: + dependencies: + ccount: 1.1.0 + is-alphanumeric: 1.0.0 + is-decimal: 1.0.4 + is-whitespace-character: 1.0.4 + longest-streak: 2.0.4 + markdown-escapes: 1.0.4 + markdown-table: 1.1.3 + mdast-util-compact: 1.0.4 + parse-entities: 1.2.2 + repeat-string: 1.6.1 + state-toggle: 1.0.3 + stringify-entities: 1.3.2 + unherit: 1.1.3 + xtend: 4.0.2 + + remark@10.0.1: + dependencies: + remark-parse: 6.0.3 + remark-stringify: 6.0.4 + unified: 7.1.0 + + repeat-element@1.1.4: {} + + repeat-string@1.6.1: {} + + repeating@2.0.1: + dependencies: + is-finite: 1.1.0 + + replace-ext@1.0.0: {} + + replace-ext@1.0.1: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resize-detector@0.3.0: {} + + resize-observer-polyfill@1.5.1: {} + + resolve-from@3.0.0: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-global@1.0.0: + dependencies: + global-dirs: 0.1.1 + + resolve-pkg-maps@1.0.0: {} + + resolve-url@0.2.1: {} + + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.17.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.7: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.17.0 + node-exports-info: 1.6.2 + object-keys: 1.1.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@1.0.2: + dependencies: + lowercase-keys: 1.0.1 + + restore-cursor@4.0.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + ret@0.1.15: {} + + reusify@1.1.0: {} + + rfdc@1.4.1: {} + + rimraf@2.6.3: + dependencies: + glob: 7.2.3 + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup-plugin-visualizer@5.14.0(rollup@2.80.0): + dependencies: + open: 8.4.2 + picomatch: 4.0.7 + source-map: 0.7.6 + yargs: 17.7.3 + optionalDependencies: + rollup: 2.80.0 + + rollup@2.80.0: + optionalDependencies: + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-array-concat@1.1.4: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-regex@1.1.0: + dependencies: + ret: 0.1.15 + + safer-buffer@2.1.2: + optional: true + + sax@1.6.1: {} + + scroll-into-view-if-needed@2.2.31: + dependencies: + compute-scroll-into-view: 1.0.20 + + seek-bzip@1.0.6: + dependencies: + commander: 2.20.3 + + semver-regex@2.0.0: {} + + semver-truncate@1.1.2: + dependencies: + semver: 5.7.2 + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + semver@7.8.5: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + + set-value@2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@1.0.0: {} + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + simple-swizzle@0.2.4: + dependencies: + is-arrayish: 0.3.4 + + slash@2.0.0: {} + + slash@3.0.0: {} + + slice-ansi@2.1.0: + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 4.0.0 + + snapdragon-node@2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + snapdragon-util@3.0.1: + dependencies: + kind-of: 3.2.2 + + snapdragon@0.8.2: + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + sort-keys-length@1.0.1: + dependencies: + sort-keys: 1.1.2 + + sort-keys@1.1.2: + dependencies: + is-plain-obj: 1.1.0 + + sort-keys@2.0.0: + dependencies: + is-plain-obj: 1.1.0 + + sortablejs@1.15.7: {} + + source-map-js@1.2.1: {} + + source-map-resolve@0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + source-map-url@0.4.1: {} + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + source-map@0.7.6: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.24 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.24 + + spdx-license-ids@3.0.24: {} + + specificity@0.4.1: {} + + split-on-first@3.0.0: {} + + split-string@3.1.0: + dependencies: + extend-shallow: 3.0.2 + + split2@3.2.2: + dependencies: + readable-stream: 3.6.2 + + sprintf-js@1.0.3: {} + + squeak@1.3.0: + dependencies: + chalk: 1.1.3 + console-stream: 0.1.1 + lpad-align: 1.1.2 + + stable-hash@0.0.5: {} + + stable@0.1.8: {} + + state-toggle@1.0.3: {} + + static-extend@0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + + stream-parser@0.3.1: + dependencies: + debug: 2.6.9 + transitivePeerDependencies: + - supports-color + optional: true + + strict-uri-encode@1.1.0: {} + + string-argv@0.3.2: {} + + string-width@3.1.0: + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.2.0 + + string.prototype.trim@1.2.11: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 + + string.prototype.trimend@1.0.10: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@1.3.2: + dependencies: + character-entities-html4: 1.1.4 + character-entities-legacy: 1.1.4 + is-alphanumerical: 1.0.4 + is-hexadecimal: 1.0.4 + + strip-ansi@3.0.1: + dependencies: + ansi-regex: 2.1.1 + + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.4.0 + + strip-bom@2.0.0: + dependencies: + is-utf8: 0.2.1 + + strip-bom@3.0.0: {} + + strip-dirs@2.1.0: + dependencies: + is-natural-number: 4.0.1 + + strip-eof@1.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-indent@1.0.1: + dependencies: + get-stdin: 4.0.1 + + strip-indent@2.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + strip-outer@1.0.1: + dependencies: + escape-string-regexp: 1.0.5 + + strnum@1.1.2: {} + + style-search@0.1.0: {} + + stylelint-config-html@2.0.0(postcss-html@1.8.1)(stylelint@14.16.1): + dependencies: + postcss-html: 1.8.1 + stylelint: 14.16.1 + + stylelint-config-prettier@9.0.5(stylelint@14.16.1): + dependencies: + stylelint: 14.16.1 + + stylelint-config-rational-order@0.1.2: + dependencies: + stylelint: 9.10.1 + stylelint-order: 2.2.1(stylelint@9.10.1) + transitivePeerDependencies: + - supports-color + + stylelint-config-recommended-vue@1.6.1(postcss-html@1.8.1)(stylelint@14.16.1): + dependencies: + postcss-html: 1.8.1 + semver: 7.8.5 + stylelint: 14.16.1 + stylelint-config-html: 2.0.0(postcss-html@1.8.1)(stylelint@14.16.1) + stylelint-config-recommended: 18.0.0(stylelint@14.16.1) + + stylelint-config-recommended@18.0.0(stylelint@14.16.1): + dependencies: + stylelint: 14.16.1 + + stylelint-config-recommended@9.0.0(stylelint@14.16.1): + dependencies: + stylelint: 14.16.1 + + stylelint-config-standard@29.0.0(stylelint@14.16.1): + dependencies: + stylelint: 14.16.1 + stylelint-config-recommended: 9.0.0(stylelint@14.16.1) + + stylelint-order@2.2.1(stylelint@9.10.1): + dependencies: + lodash: 4.18.1 + postcss: 7.0.39 + postcss-sorting: 4.1.0 + stylelint: 9.10.1 + + stylelint-order@5.0.0(stylelint@14.16.1): + dependencies: + postcss: 8.5.28 + postcss-sorting: 7.0.1(postcss@8.5.28) + stylelint: 14.16.1 + + stylelint@14.16.1: + dependencies: + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.4) + balanced-match: 2.0.0 + colord: 2.10.0 + cosmiconfig: 7.1.0 + css-functions-list: 3.3.3 + debug: 4.4.3 + fast-glob: 3.3.3 + fastest-levenshtein: 1.0.16 + file-entry-cache: 6.0.1 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.3.2 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + is-plain-object: 5.1.0 + known-css-properties: 0.26.0 + mathml-tag-names: 2.1.3 + meow: 9.0.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.28 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.6 + postcss-safe-parser: 6.0.0(postcss@8.5.28) + postcss-selector-parser: 6.1.4 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + style-search: 0.1.0 + supports-hyperlinks: 2.3.0 + svg-tags: 1.0.0 + table: 6.9.0 + v8-compile-cache: 2.4.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + stylelint@9.10.1: + dependencies: + autoprefixer: 9.8.8 + balanced-match: 1.0.2 + chalk: 2.4.2 + cosmiconfig: 5.2.1 + debug: 4.4.3 + execall: 1.0.0 + file-entry-cache: 4.0.0 + get-stdin: 6.0.0 + global-modules: 2.0.0 + globby: 9.2.0 + globjoin: 0.1.4 + html-tags: 2.0.0 + ignore: 5.3.2 + import-lazy: 3.1.0 + imurmurhash: 0.1.4 + known-css-properties: 0.11.0 + leven: 2.1.0 + lodash: 4.18.1 + log-symbols: 2.2.0 + mathml-tag-names: 2.1.3 + meow: 5.0.0 + micromatch: 3.1.10 + normalize-selector: 0.2.0 + pify: 4.0.1 + postcss: 7.0.39 + postcss-html: 0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39) + postcss-jsx: 0.36.4(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39) + postcss-less: 3.1.4 + postcss-markdown: 0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39) + postcss-media-query-parser: 0.2.3 + postcss-reporter: 6.0.1 + postcss-resolve-nested-selector: 0.1.6 + postcss-safe-parser: 4.0.2 + postcss-sass: 0.3.5 + postcss-scss: 2.1.1 + postcss-selector-parser: 3.1.2 + postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss-html@1.8.1)(postcss@8.5.28))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + postcss-value-parser: 3.3.1 + resolve-from: 4.0.0 + signal-exit: 3.0.7 + slash: 2.0.0 + specificity: 0.4.1 + string-width: 3.1.0 + style-search: 0.1.0 + sugarss: 2.0.0 + svg-tags: 1.0.0 + table: 5.4.6 + transitivePeerDependencies: + - supports-color + + sugarss@2.0.0: + dependencies: + postcss: 7.0.39 + + supports-color@2.0.0: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-hyperlinks@2.3.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svg-tags@1.0.0: {} + + svgo@2.8.4: + dependencies: + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.1.1 + sax: 1.6.1 + stable: 0.1.8 + + table@5.4.6: + dependencies: + ajv: 6.15.0 + lodash: 4.18.1 + slice-ansi: 2.1.0 + string-width: 3.1.0 + + table@6.9.0: + dependencies: + ajv: 8.20.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + tar-stream@1.6.2: + dependencies: + bl: 1.2.3 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + readable-stream: 2.3.8 + to-buffer: 1.2.2 + xtend: 4.0.2 + + temp-dir@1.0.0: {} + + tempfile@2.0.0: + dependencies: + temp-dir: 1.0.0 + uuid: 3.4.0 + + text-extensions@1.9.0: {} + + text-table@0.2.0: {} + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + + through@2.3.8: {} + + timed-out@4.0.1: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 + + to-buffer@1.2.2: + dependencies: + isarray: 2.0.5 + safe-buffer: 5.2.1 + typed-array-buffer: 1.0.3 + + to-object-path@0.3.0: + dependencies: + kind-of: 3.2.2 + + to-regex-range@2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + to-regex@3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + trim-newlines@1.0.0: {} + + trim-newlines@2.0.0: {} + + trim-newlines@3.0.1: {} + + trim-repeated@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + trim-trailing-lines@1.1.4: {} + + trim@0.0.1: {} + + trough@1.0.5: {} + + ts-node@10.9.2(@types/node@20.5.1)(typescript@4.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.13 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.5.1 + acorn: 8.18.0 + acorn-walk: 8.3.5 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.4 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@1.14.1: {} + + tslib@2.3.0: {} + + tslib@2.8.1: + optional: true + + tsutils@3.21.0(typescript@4.9.5): + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.11.0: {} + + type-fest@0.18.1: {} + + type-fest@0.20.2: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + type-fest@1.4.0: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.5: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.8: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typescript@4.9.5: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + unbzip2-stream@1.4.3: + dependencies: + buffer: 5.7.1 + through: 2.3.8 + + undici-types@8.9.0: {} + + unherit@1.1.3: + dependencies: + inherits: 2.0.4 + xtend: 4.0.2 + + unified@7.1.0: + dependencies: + '@types/unist': 2.0.11 + '@types/vfile': 3.0.2 + bail: 1.0.5 + extend: 3.0.2 + is-plain-obj: 1.1.0 + trough: 1.0.5 + vfile: 3.0.1 + x-is-string: 0.1.0 + + union-value@1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + uniq@1.0.1: {} + + unist-util-find-all-after@1.0.5: + dependencies: + unist-util-is: 3.0.0 + + unist-util-is@3.0.0: {} + + unist-util-remove-position@1.1.4: + dependencies: + unist-util-visit: 1.4.1 + + unist-util-stringify-position@1.1.2: {} + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@2.1.2: + dependencies: + unist-util-is: 3.0.0 + + unist-util-visit@1.4.1: + dependencies: + unist-util-visit-parents: 2.1.2 + + universalify@2.0.1: {} + + unplugin-vue-components@0.24.1(@babel/parser@7.29.9)(rollup@2.80.0)(vue@3.5.43(typescript@4.9.5)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.4.0(rollup@2.80.0) + chokidar: 3.6.0 + debug: 4.4.3 + fast-glob: 3.3.3 + local-pkg: 0.4.3 + magic-string: 0.30.21 + minimatch: 7.4.9 + resolve: 1.22.12 + unplugin: 1.16.1 + vue: 3.5.43(typescript@4.9.5) + optionalDependencies: + '@babel/parser': 7.29.9 + transitivePeerDependencies: + - rollup + - supports-color + + unplugin@1.16.1: + dependencies: + acorn: 8.18.0 + webpack-virtual-modules: 0.6.2 + + unrs-resolver@1.12.2: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.12.2 + '@unrs/resolver-binding-android-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-x64': 1.12.2 + '@unrs/resolver-binding-freebsd-x64': 1.12.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 + '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-musl': 1.12.2 + '@unrs/resolver-binding-openharmony-arm64': 1.12.2 + '@unrs/resolver-binding-wasm32-wasi': 1.12.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + + unset-value@1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + update-browserslist-db@1.3.3(browserslist@4.29.1): + dependencies: + browserslist: 4.29.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urix@0.1.0: {} + + url-parse-lax@1.0.0: + dependencies: + prepend-http: 1.0.4 + + url-parse-lax@3.0.0: + dependencies: + prepend-http: 2.0.0 + + url-to-options@1.0.1: {} + + use@3.1.1: {} + + util-deprecate@1.0.2: {} + + uuid@3.4.0: {} + + v8-compile-cache-lib@3.0.1: {} + + v8-compile-cache@2.4.0: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + verkit@0.3.2: {} + + vfile-location@2.0.6: {} + + vfile-message@1.1.1: + dependencies: + unist-util-stringify-position: 1.1.2 + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@3.0.1: + dependencies: + is-buffer: 2.0.5 + replace-ext: 1.0.0 + unist-util-stringify-position: 1.1.2 + vfile-message: 1.1.1 + + vite-plugin-compression@0.5.1(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0)): + dependencies: + chalk: 4.1.2 + debug: 4.4.3 + fs-extra: 10.1.0 + vite: 3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0) + transitivePeerDependencies: + - supports-color + + vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0)): + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.56.12 + eslint: 8.57.1 + rollup: 2.80.0 + vite: 3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0) + + vite-plugin-imagemin@0.6.1(vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0)): + dependencies: + '@types/imagemin': 7.0.1 + '@types/imagemin-gifsicle': 7.0.4 + '@types/imagemin-jpegtran': 5.0.4 + '@types/imagemin-mozjpeg': 8.0.4 + '@types/imagemin-optipng': 5.2.4 + '@types/imagemin-svgo': 10.0.5 + '@types/imagemin-webp': 7.0.3 + '@types/svgo': 2.6.4 + chalk: 4.1.2 + debug: 4.4.3 + esbuild: 0.14.54 + fs-extra: 10.1.0 + gifsicle: 5.2.0 + imagemin: 7.0.1 + imagemin-gifsicle: 7.0.0 + imagemin-jpegtran: 7.0.0 + imagemin-mozjpeg: 9.0.0 + imagemin-optipng: 8.0.0 + imagemin-pngquant: 9.0.2 + imagemin-svgo: 9.0.0 + imagemin-webp: 6.1.0 + jpegtran-bin: 6.0.1 + pathe: 0.2.0 + vite: 3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0) + transitivePeerDependencies: + - supports-color + + vite-svg-loader@3.6.0: + dependencies: + '@vue/compiler-sfc': 3.5.43 + svgo: 2.8.4 + + vite@3.2.11(@types/node@20.5.1)(less@4.9.1)(sugarss@2.0.0): + dependencies: + esbuild: 0.15.18 + postcss: 8.5.28 + resolve: 1.22.12 + rollup: 2.80.0 + optionalDependencies: + '@types/node': 20.5.1 + fsevents: 2.3.3 + less: 4.9.1 + sugarss: 2.0.0 + + vue-demi@0.13.11(vue@3.5.43(typescript@4.9.5)): + dependencies: + vue: 3.5.43(typescript@4.9.5) + + vue-demi@0.14.10(vue@3.5.43(typescript@4.9.5)): + dependencies: + vue: 3.5.43(typescript@4.9.5) + + vue-echarts@6.7.3(@vue/runtime-core@3.5.43)(echarts@5.6.0)(vue@3.5.43(typescript@4.9.5)): + dependencies: + echarts: 5.6.0 + resize-detector: 0.3.0 + vue: 3.5.43(typescript@4.9.5) + vue-demi: 0.13.11(vue@3.5.43(typescript@4.9.5)) + optionalDependencies: + '@vue/runtime-core': 3.5.43 + + vue-eslint-parser@9.4.3(eslint@8.57.1): + dependencies: + debug: 4.4.3 + eslint: 8.57.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.7.0 + lodash: 4.18.1 + semver: 7.8.5 + transitivePeerDependencies: + - supports-color + + vue-i18n@9.14.5(vue@3.5.43(typescript@4.9.5)): + dependencies: + '@intlify/core-base': 9.14.5 + '@intlify/shared': 9.14.5 + '@vue/devtools-api': 6.6.4 + vue: 3.5.43(typescript@4.9.5) + + vue-router@4.6.4(vue@3.5.43(typescript@4.9.5)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.43(typescript@4.9.5) + + vue-template-compiler@2.7.16: + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + vue-tsc@1.8.27(typescript@4.9.5): + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@4.9.5) + semver: 7.8.5 + typescript: 4.9.5 + + vue@3.5.43(typescript@4.9.5): + dependencies: + '@vue/compiler-dom': 3.5.43 + '@vue/compiler-sfc': 3.5.43 + '@vue/runtime-dom': 3.5.43 + '@vue/server-renderer': 3.5.43 + '@vue/shared': 3.5.43 + optionalDependencies: + typescript: 4.9.5 + + webpack-virtual-modules@0.6.2: {} + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.2.0 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.24 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.24: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.2.0 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + write@1.0.3: + dependencies: + mkdirp: 0.5.6 + + x-is-string@0.1.0: {} + + xml-name-validator@4.0.0: {} + + xtend@4.0.2: {} + + y18n@5.0.8: {} + + yallist@2.1.2: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yaml@1.10.3: {} + + yaml@2.3.1: {} + + yargs-parser@10.1.0: + dependencies: + camelcase: 4.1.0 + + yargs-parser@20.2.9: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.3: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} + + zrender@5.6.1: + dependencies: + tslib: 2.3.0 diff --git a/admin/arco-design-pro-vite/src/App.vue b/admin/arco-design-pro-vite/src/App.vue new file mode 100644 index 0000000..238e31b --- /dev/null +++ b/admin/arco-design-pro-vite/src/App.vue @@ -0,0 +1,26 @@ + + + diff --git a/admin/arco-design-pro-vite/src/api/dashboard.ts b/admin/arco-design-pro-vite/src/api/dashboard.ts new file mode 100644 index 0000000..773a104 --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/dashboard.ts @@ -0,0 +1,22 @@ +import axios from 'axios'; +import type { TableData } from '@arco-design/web-vue/es/table/interface'; + +export interface ContentDataRecord { + x: string; + y: number; +} + +export function queryContentData() { + return axios.get('/api/content-data'); +} + +export interface PopularRecord { + key: number; + clickNumber: string; + title: string; + increases: number; +} + +export function queryPopularList(params: { type: string }) { + return axios.get('/api/popular/list', { params }); +} diff --git a/admin/arco-design-pro-vite/src/api/form.ts b/admin/arco-design-pro-vite/src/api/form.ts new file mode 100644 index 0000000..0a1ea7c --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/form.ts @@ -0,0 +1,21 @@ +import axios from 'axios'; + +export interface BaseInfoModel { + activityName: string; + channelType: string; + promotionTime: string[]; + promoteLink: string; +} +export interface ChannelInfoModel { + advertisingSource: string; + advertisingMedia: string; + keyword: string[]; + pushNotify: boolean; + advertisingContent: string; +} + +export type UnitChannelModel = BaseInfoModel & ChannelInfoModel; + +export function submitChannelForm(data: UnitChannelModel) { + return axios.post('/api/channel-form/submit', { data }); +} diff --git a/admin/arco-design-pro-vite/src/api/interceptor.ts b/admin/arco-design-pro-vite/src/api/interceptor.ts new file mode 100644 index 0000000..1d8214f --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/interceptor.ts @@ -0,0 +1,77 @@ +import axios from 'axios'; +import type { AxiosRequestConfig, AxiosResponse } from 'axios'; +import { Message, Modal } from '@arco-design/web-vue'; +import { useUserStore } from '@/store'; +import { getToken } from '@/utils/auth'; + +export interface HttpResponse { + status: number; + msg: string; + code: number; + data: T; +} + +if (import.meta.env.VITE_API_BASE_URL) { + axios.defaults.baseURL = import.meta.env.VITE_API_BASE_URL; +} + +axios.interceptors.request.use( + (config: AxiosRequestConfig) => { + // let each request carry token + // this example using the JWT token + // Authorization is a custom headers key + // please modify it according to the actual situation + const token = getToken(); + if (token) { + if (!config.headers) { + config.headers = {}; + } + config.headers.Authorization = `Bearer ${token}`; + } + return config; + }, + (error) => { + // do something + return Promise.reject(error); + } +); +// add response interceptors +axios.interceptors.response.use( + (response: AxiosResponse) => { + const res = response.data; + // if the custom code is not 20000, it is judged as an error. + if (res.code !== 20000) { + Message.error({ + content: res.msg || 'Error', + duration: 5 * 1000, + }); + // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; + if ( + [50008, 50012, 50014].includes(res.code) && + response.config.url !== '/api/user/info' + ) { + Modal.error({ + title: 'Confirm logout', + content: + 'You have been logged out, you can cancel to stay on this page, or log in again', + okText: 'Re-Login', + async onOk() { + const userStore = useUserStore(); + + await userStore.logout(); + window.location.reload(); + }, + }); + } + return Promise.reject(new Error(res.msg || 'Error')); + } + return res; + }, + (error) => { + Message.error({ + content: error.msg || 'Request Error', + duration: 5 * 1000, + }); + return Promise.reject(error); + } +); diff --git a/admin/arco-design-pro-vite/src/api/list.ts b/admin/arco-design-pro-vite/src/api/list.ts new file mode 100644 index 0000000..2c58189 --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/list.ts @@ -0,0 +1,56 @@ +import axios from 'axios'; +import qs from 'query-string'; +import type { DescData } from '@arco-design/web-vue/es/descriptions/interface'; + +export interface PolicyRecord { + id: string; + number: number; + name: string; + contentType: 'img' | 'horizontalVideo' | 'verticalVideo'; + filterType: 'artificial' | 'rules'; + count: number; + status: 'online' | 'offline'; + createdTime: string; +} + +export interface PolicyParams extends Partial { + current: number; + pageSize: number; +} + +export interface PolicyListRes { + list: PolicyRecord[]; + total: number; +} + +export function queryPolicyList(params: PolicyParams) { + return axios.get('/api/list/policy', { + params, + paramsSerializer: (obj) => { + return qs.stringify(obj); + }, + }); +} + +export interface ServiceRecord { + id: number; + title: string; + description: string; + name?: string; + actionType?: string; + icon?: string; + data?: DescData[]; + enable?: boolean; + expires?: boolean; +} +export function queryInspectionList() { + return axios.get('/api/list/quality-inspection'); +} + +export function queryTheServiceList() { + return axios.get('/api/list/the-service'); +} + +export function queryRulesPresetList() { + return axios.get('/api/list/rules-preset'); +} diff --git a/admin/arco-design-pro-vite/src/api/message.ts b/admin/arco-design-pro-vite/src/api/message.ts new file mode 100644 index 0000000..e2d60ee --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/message.ts @@ -0,0 +1,38 @@ +import axios from 'axios'; + +export interface MessageRecord { + id: number; + type: string; + title: string; + subTitle: string; + avatar?: string; + content: string; + time: string; + status: 0 | 1; + messageType?: number; +} +export type MessageListType = MessageRecord[]; + +export function queryMessageList() { + return axios.post('/api/message/list'); +} + +interface MessageStatus { + ids: number[]; +} + +export function setMessageStatus(data: MessageStatus) { + return axios.post('/api/message/read', data); +} + +export interface ChatRecord { + id: number; + username: string; + content: string; + time: string; + isCollect: boolean; +} + +export function queryChatList() { + return axios.post('/api/chat/list'); +} diff --git a/admin/arco-design-pro-vite/src/api/profile.ts b/admin/arco-design-pro-vite/src/api/profile.ts new file mode 100644 index 0000000..3083749 --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/profile.ts @@ -0,0 +1,49 @@ +import axios from 'axios'; + +export interface ProfileBasicRes { + status: number; + video: { + mode: string; + acquisition: { + resolution: string; + frameRate: number; + }; + encoding: { + resolution: string; + rate: { + min: number; + max: number; + default: number; + }; + frameRate: number; + profile: string; + }; + }; + audio: { + mode: string; + acquisition: { + channels: number; + }; + encoding: { + channels: number; + rate: number; + profile: string; + }; + }; +} + +export function queryProfileBasic() { + return axios.get('/api/profile/basic'); +} + +export type operationLogRes = Array<{ + key: string; + contentNumber: string; + updateContent: string; + status: number; + updateTime: string; +}>; + +export function queryOperationLog() { + return axios.get('/api/operation/log'); +} diff --git a/admin/arco-design-pro-vite/src/api/user-center.ts b/admin/arco-design-pro-vite/src/api/user-center.ts new file mode 100644 index 0000000..fb6a53d --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/user-center.ts @@ -0,0 +1,88 @@ +import axios from 'axios'; + +export interface MyProjectRecord { + id: number; + name: string; + description: string; + peopleNumber: number; + contributors: { + name: string; + email: string; + avatar: string; + }[]; +} +export function queryMyProjectList() { + return axios.post('/api/user/my-project/list'); +} + +export interface MyTeamRecord { + id: number; + avatar: string; + name: string; + peopleNumber: number; +} +export function queryMyTeamList() { + return axios.post('/api/user/my-team/list'); +} + +export interface LatestActivity { + id: number; + title: string; + description: string; + avatar: string; +} +export function queryLatestActivity() { + return axios.post('/api/user/latest-activity'); +} + +export function saveUserInfo() { + return axios.post('/api/user/save-info'); +} + +export interface BasicInfoModel { + email: string; + nickname: string; + countryRegion: string; + area: string; + address: string; + profile: string; +} + +export interface EnterpriseCertificationModel { + accountType: number; + status: number; + time: string; + legalPerson: string; + certificateType: string; + authenticationNumber: string; + enterpriseName: string; + enterpriseCertificateType: string; + organizationCode: string; +} + +export type CertificationRecord = Array<{ + certificationType: number; + certificationContent: string; + status: number; + time: string; +}>; + +export interface UnitCertification { + enterpriseInfo: EnterpriseCertificationModel; + record: CertificationRecord; +} + +export function queryCertification() { + return axios.post('/api/user/certification'); +} + +export function userUploadApi( + data: FormData, + config: { + controller: AbortController; + onUploadProgress?: (progressEvent: any) => void; + } +) { + // const controller = new AbortController(); + return axios.post('/api/user/upload', data, config); +} diff --git a/admin/arco-design-pro-vite/src/api/user.ts b/admin/arco-design-pro-vite/src/api/user.ts new file mode 100644 index 0000000..35b8812 --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/user.ts @@ -0,0 +1,27 @@ +import axios from 'axios'; +import type { RouteRecordNormalized } from 'vue-router'; +import { UserState } from '@/store/modules/user/types'; + +export interface LoginData { + username: string; + password: string; +} + +export interface LoginRes { + token: string; +} +export function login(data: LoginData) { + return axios.post('/api/user/login', data); +} + +export function logout() { + return axios.post('/api/user/logout'); +} + +export function getUserInfo() { + return axios.post('/api/user/info'); +} + +export function getMenuList() { + return axios.post('/api/user/menu'); +} diff --git a/admin/arco-design-pro-vite/src/api/visualization.ts b/admin/arco-design-pro-vite/src/api/visualization.ts new file mode 100644 index 0000000..7b74229 --- /dev/null +++ b/admin/arco-design-pro-vite/src/api/visualization.ts @@ -0,0 +1,73 @@ +import axios from 'axios'; +import { GeneralChart } from '@/types/global'; + +export interface ChartDataRecord { + x: string; + y: number; + name: string; +} +export interface DataChainGrowth { + quota: string; +} + +export interface DataChainGrowthRes { + count: number; + growth: number; + chartData: { + xAxis: string[]; + data: { name: string; value: number[] }; + }; +} +export function queryDataChainGrowth(data: DataChainGrowth) { + return axios.post('/api/data-chain-growth', data); +} + +export interface PopularAuthorRes { + list: { + ranking: number; + author: string; + contentCount: number; + clickCount: number; + }[]; +} + +export function queryPopularAuthor() { + return axios.get('/api/popular-author/list'); +} + +export interface ContentPublishRecord { + x: string[]; + y: number[]; + name: string; +} + +export function queryContentPublish() { + return axios.get('/api/content-publish'); +} + +export function queryContentPeriodAnalysis() { + return axios.post('/api/content-period-analysis'); +} + +export interface PublicOpinionAnalysis { + quota: string; +} +export interface PublicOpinionAnalysisRes { + count: number; + growth: number; + chartData: ChartDataRecord[]; +} +export function queryPublicOpinionAnalysis(data: DataChainGrowth) { + return axios.post( + '/api/public-opinion-analysis', + data + ); +} +export interface DataOverviewRes { + xAxis: string[]; + data: Array<{ name: string; value: number[]; count: number }>; +} + +export function queryDataOverview() { + return axios.post('/api/data-overview'); +} diff --git a/admin/arco-design-pro-vite/src/assets/images/login-banner.png b/admin/arco-design-pro-vite/src/assets/images/login-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b377603157d64bacfd184e75b889dd5e24071c GIT binary patch literal 63369 zcmc$F_dk{Y8^7dmY#B-7I5rs}L?|;OGkcXycGj_yW0Sqf2vLZv9D5wuE7^NwuVZh% zH}d{`zkk8^hw9OJ-1q%j*Y&)f*YmnwK}rfQ@Nw?rprN7R%ScP8prPHaMngj%0Am8b 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 u7nCgx_BUj+RXNJ| + + + + + + + + + + + diff --git a/admin/arco-design-pro-vite/src/assets/style/breakpoint.less b/admin/arco-design-pro-vite/src/assets/style/breakpoint.less new file mode 100644 index 0000000..584f21e --- /dev/null +++ b/admin/arco-design-pro-vite/src/assets/style/breakpoint.less @@ -0,0 +1,19 @@ +// ==============breakpoint============ + +// Extra small screen / phone +@screen-xs: 480px; + +// Small screen / tablet +@screen-sm: 576px; + +// Medium screen / desktop +@screen-md: 768px; + +// Large screen / wide desktop +@screen-lg: 992px; + +// Extra large screen / full hd +@screen-xl: 1200px; + +// Extra extra large screen / large desktop +@screen-xxl: 1600px; diff --git a/admin/arco-design-pro-vite/src/assets/style/global.less b/admin/arco-design-pro-vite/src/assets/style/global.less new file mode 100644 index 0000000..f90b206 --- /dev/null +++ b/admin/arco-design-pro-vite/src/assets/style/global.less @@ -0,0 +1,94 @@ +* { + box-sizing: border-box; +} + +html, +body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + font-size: 14px; + background-color: var(--color-bg-1); + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; +} + +.echarts-tooltip-diy { + background: linear-gradient( + 304.17deg, + rgba(253, 254, 255, 0.6) -6.04%, + rgba(244, 247, 252, 0.6) 85.2% + ) !important; + border: none !important; + backdrop-filter: blur(10px) !important; + /* Note: backdrop-filter has minimal browser support */ + + border-radius: 6px !important; + .content-panel { + display: flex; + justify-content: space-between; + padding: 0 9px; + background: rgba(255, 255, 255, 0.8); + width: 164px; + height: 32px; + line-height: 32px; + box-shadow: 6px 0px 20px rgba(34, 87, 188, 0.1); + border-radius: 4px; + margin-bottom: 4px; + } + .tooltip-title { + margin: 0 0 10px 0; + } + p { + margin: 0; + } + .tooltip-title, + .tooltip-value { + font-size: 13px; + line-height: 15px; + display: flex; + align-items: center; + text-align: right; + color: #1d2129; + font-weight: bold; + } + .tooltip-item-icon { + display: inline-block; + margin-right: 8px; + width: 10px; + height: 10px; + border-radius: 50%; + } +} + +.general-card { + border-radius: 4px; + border: none; + & > .arco-card-header { + height: auto; + padding: 20px; + border: none; + } + & > .arco-card-body { + padding: 0 20px 20px 20px; + } +} + +.split-line { + border-color: rgb(var(--gray-2)); +} + +.arco-table-cell { + .circle { + display: inline-block; + margin-right: 4px; + width: 6px; + height: 6px; + border-radius: 50%; + background-color: rgb(var(--blue-6)); + &.pass { + background-color: rgb(var(--green-6)); + } + } +} diff --git a/admin/arco-design-pro-vite/src/assets/world.json b/admin/arco-design-pro-vite/src/assets/world.json new file mode 100644 index 0000000..2d59731 --- /dev/null +++ b/admin/arco-design-pro-vite/src/assets/world.json @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"geometry":{"type":"Polygon","coordinates":[[[61.210817,35.650072],[62.230651,35.270664],[62.984662,35.404041],[63.193538,35.857166],[63.982896,36.007957],[64.546479,36.312073],[64.746105,37.111818],[65.588948,37.305217],[65.745631,37.661164],[66.217385,37.39379],[66.518607,37.362784],[67.075782,37.356144],[67.83,37.144994],[68.135562,37.023115],[68.859446,37.344336],[69.196273,37.151144],[69.518785,37.608997],[70.116578,37.588223],[70.270574,37.735165],[70.376304,38.138396],[70.806821,38.486282],[71.348131,38.258905],[71.239404,37.953265],[71.541918,37.905774],[71.448693,37.065645],[71.844638,36.738171],[72.193041,36.948288],[72.63689,37.047558],[73.260056,37.495257],[73.948696,37.421566],[74.980002,37.41999],[75.158028,37.133031],[74.575893,37.020841],[74.067552,36.836176],[72.920025,36.720007],[71.846292,36.509942],[71.262348,36.074388],[71.498768,35.650563],[71.613076,35.153203],[71.115019,34.733126],[71.156773,34.348911],[70.881803,33.988856],[69.930543,34.02012],[70.323594,33.358533],[69.687147,33.105499],[69.262522,32.501944],[69.317764,31.901412],[68.926677,31.620189],[68.556932,31.71331],[67.792689,31.58293],[67.683394,31.303154],[66.938891,31.304911],[66.381458,30.738899],[66.346473,29.887943],[65.046862,29.472181],[64.350419,29.560031],[64.148002,29.340819],[63.550261,29.468331],[62.549857,29.318572],[60.874248,29.829239],[61.781222,30.73585],[61.699314,31.379506],[60.941945,31.548075],[60.863655,32.18292],[60.536078,32.981269],[60.9637,33.528832],[60.52843,33.676446],[60.803193,34.404102],[61.210817,35.650072]]]},"type":"Feature","id":"AFG","properties":{"name":"Afghanistan","id":"AFG","centroid":[69.11,34.28]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[16.326528,-5.87747],[16.57318,-6.622645],[16.860191,-7.222298],[17.089996,-7.545689],[17.47297,-8.068551],[18.134222,-7.987678],[18.464176,-7.847014],[19.016752,-7.988246],[19.166613,-7.738184],[19.417502,-7.155429],[20.037723,-7.116361],[20.091622,-6.94309],[20.601823,-6.939318],[20.514748,-7.299606],[21.728111,-7.290872],[21.746456,-7.920085],[21.949131,-8.305901],[21.801801,-8.908707],[21.875182,-9.523708],[22.208753,-9.894796],[22.155268,-11.084801],[22.402798,-10.993075],[22.837345,-11.017622],[23.456791,-10.867863],[23.912215,-10.926826],[24.017894,-11.237298],[23.904154,-11.722282],[24.079905,-12.191297],[23.930922,-12.565848],[24.016137,-12.911046],[21.933886,-12.898437],[21.887843,-16.08031],[22.562478,-16.898451],[23.215048,-17.523116],[21.377176,-17.930636],[18.956187,-17.789095],[18.263309,-17.309951],[14.209707,-17.353101],[14.058501,-17.423381],[13.462362,-16.971212],[12.814081,-16.941343],[12.215461,-17.111668],[11.734199,-17.301889],[11.640096,-16.673142],[11.778537,-15.793816],[12.123581,-14.878316],[12.175619,-14.449144],[12.500095,-13.5477],[12.738479,-13.137906],[13.312914,-12.48363],[13.633721,-12.038645],[13.738728,-11.297863],[13.686379,-10.731076],[13.387328,-10.373578],[13.120988,-9.766897],[12.87537,-9.166934],[12.929061,-8.959091],[13.236433,-8.562629],[12.93304,-7.596539],[12.728298,-6.927122],[12.227347,-6.294448],[12.322432,-6.100092],[12.735171,-5.965682],[13.024869,-5.984389],[13.375597,-5.864241],[16.326528,-5.87747]]],[[[12.436688,-5.684304],[12.182337,-5.789931],[11.914963,-5.037987],[12.318608,-4.60623],[12.62076,-4.438023],[12.995517,-4.781103],[12.631612,-4.991271],[12.468004,-5.248362],[12.436688,-5.684304]]]]},"type":"Feature","id":"AGO","properties":{"name":"Angola","id":"AGO","centroid":[13.15,-8.5]}},{"geometry":{"type":"Polygon","coordinates":[[[20.590247,41.855404],[20.463175,41.515089],[20.605182,41.086226],[21.02004,40.842727],[20.99999,40.580004],[20.674997,40.435],[20.615,40.110007],[20.150016,39.624998],[19.98,39.694993],[19.960002,39.915006],[19.406082,40.250773],[19.319059,40.72723],[19.40355,41.409566],[19.540027,41.719986],[19.371769,41.877548],[19.304486,42.195745],[19.738051,42.688247],[19.801613,42.500093],[20.0707,42.58863],[20.283755,42.32026],[20.52295,42.21787],[20.590247,41.855404]]]},"type":"Feature","id":"ALB","properties":{"name":"Albania","id":"ALB","centroid":[19.49,41.18]}},{"geometry":{"type":"Polygon","coordinates":[[[51.579519,24.245497],[51.757441,24.294073],[51.794389,24.019826],[52.577081,24.177439],[53.404007,24.151317],[54.008001,24.121758],[54.693024,24.797892],[55.439025,25.439145],[56.070821,26.055464],[56.261042,25.714606],[56.396847,24.924732],[55.886233,24.920831],[55.804119,24.269604],[55.981214,24.130543],[55.528632,23.933604],[55.525841,23.524869],[55.234489,23.110993],[55.208341,22.70833],[55.006803,22.496948],[52.000733,23.001154],[51.617708,24.014219],[51.579519,24.245497]]]},"type":"Feature","id":"ARE","properties":{"name":"United Arab Emirates","id":"ARE","centroid":[55.18,25.15]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.5,-55.2],[-66.45,-55.25],[-66.95992,-54.89681],[-67.56244,-54.87001],[-68.63335,-54.8695],[-68.63401,-52.63637],[-68.25,-53.1],[-67.75,-53.85],[-66.45,-54.45],[-65.05,-54.7],[-65.5,-55.2]]],[[[-64.964892,-22.075862],[-64.377021,-22.798091],[-63.986838,-21.993644],[-62.846468,-22.034985],[-62.685057,-22.249029],[-60.846565,-23.880713],[-60.028966,-24.032796],[-58.807128,-24.771459],[-57.777217,-25.16234],[-57.63366,-25.603657],[-58.618174,-27.123719],[-57.60976,-27.395899],[-56.486702,-27.548499],[-55.695846,-27.387837],[-54.788795,-26.621786],[-54.625291,-25.739255],[-54.13005,-25.547639],[-53.628349,-26.124865],[-53.648735,-26.923473],[-54.490725,-27.474757],[-55.162286,-27.881915],[-56.2909,-28.852761],[-57.625133,-30.216295],[-57.874937,-31.016556],[-58.14244,-32.044504],[-58.132648,-33.040567],[-58.349611,-33.263189],[-58.427074,-33.909454],[-58.495442,-34.43149],[-57.22583,-35.288027],[-57.362359,-35.97739],[-56.737487,-36.413126],[-56.788285,-36.901572],[-57.749157,-38.183871],[-59.231857,-38.72022],[-61.237445,-38.928425],[-62.335957,-38.827707],[-62.125763,-39.424105],[-62.330531,-40.172586],[-62.145994,-40.676897],[-62.745803,-41.028761],[-63.770495,-41.166789],[-64.73209,-40.802677],[-65.118035,-41.064315],[-64.978561,-42.058001],[-64.303408,-42.359016],[-63.755948,-42.043687],[-63.458059,-42.563138],[-64.378804,-42.873558],[-65.181804,-43.495381],[-65.328823,-44.501366],[-65.565269,-45.036786],[-66.509966,-45.039628],[-67.293794,-45.551896],[-67.580546,-46.301773],[-66.597066,-47.033925],[-65.641027,-47.236135],[-65.985088,-48.133289],[-67.166179,-48.697337],[-67.816088,-49.869669],[-68.728745,-50.264218],[-69.138539,-50.73251],[-68.815561,-51.771104],[-68.149995,-52.349983],[-68.571545,-52.299444],[-69.498362,-52.142761],[-71.914804,-52.009022],[-72.329404,-51.425956],[-72.309974,-50.67701],[-72.975747,-50.74145],[-73.328051,-50.378785],[-73.415436,-49.318436],[-72.648247,-48.878618],[-72.331161,-48.244238],[-72.447355,-47.738533],[-71.917258,-46.884838],[-71.552009,-45.560733],[-71.659316,-44.973689],[-71.222779,-44.784243],[-71.329801,-44.407522],[-71.793623,-44.207172],[-71.464056,-43.787611],[-71.915424,-43.408565],[-72.148898,-42.254888],[-71.746804,-42.051386],[-71.915734,-40.832339],[-71.680761,-39.808164],[-71.413517,-38.916022],[-70.814664,-38.552995],[-71.118625,-37.576827],[-71.121881,-36.658124],[-70.364769,-36.005089],[-70.388049,-35.169688],[-69.817309,-34.193571],[-69.814777,-33.273886],[-70.074399,-33.09121],[-70.535069,-31.36501],[-69.919008,-30.336339],[-70.01355,-29.367923],[-69.65613,-28.459141],[-69.001235,-27.521214],[-68.295542,-26.89934],[-68.5948,-26.506909],[-68.386001,-26.185016],[-68.417653,-24.518555],[-67.328443,-24.025303],[-66.985234,-22.986349],[-67.106674,-22.735925],[-66.273339,-21.83231],[-64.964892,-22.075862]]]]},"type":"Feature","id":"ARG","properties":{"name":"Argentina","id":"ARG","centroid":[-60,-36.3]}},{"geometry":{"type":"Polygon","coordinates":[[[43.582746,41.092143],[44.97248,41.248129],[45.179496,40.985354],[45.560351,40.81229],[45.359175,40.561504],[45.891907,40.218476],[45.610012,39.899994],[46.034534,39.628021],[46.483499,39.464155],[46.50572,38.770605],[46.143623,38.741201],[45.735379,39.319719],[45.739978,39.473999],[45.298145,39.471751],[45.001987,39.740004],[44.79399,39.713003],[44.400009,40.005],[43.656436,40.253564],[43.752658,40.740201],[43.582746,41.092143]]]},"type":"Feature","id":"ARM","properties":{"name":"Armenia","id":"ARM","centroid":[44.31,40.1]}},{"geometry":{"type":"Polygon","coordinates":[[[68.935,-48.625],[69.58,-48.94],[70.525,-49.065],[70.56,-49.255],[70.28,-49.71],[68.745,-49.775],[68.72,-49.2425],[68.8675,-48.83],[68.935,-48.625]]]},"type":"Feature","id":"ATF","properties":{"name":"French Southern and Antarctic Lands","id":"ATF","centroid":null}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[145.397978,-40.792549],[146.364121,-41.137695],[146.908584,-41.000546],[147.689259,-40.808258],[148.289068,-40.875438],[148.359865,-42.062445],[148.017301,-42.407024],[147.914052,-43.211522],[147.564564,-42.937689],[146.870343,-43.634597],[146.663327,-43.580854],[146.048378,-43.549745],[145.43193,-42.693776],[145.29509,-42.03361],[144.718071,-41.162552],[144.743755,-40.703975],[145.397978,-40.792549]]],[[[143.561811,-13.763656],[143.922099,-14.548311],[144.563714,-14.171176],[144.894908,-14.594458],[145.374724,-14.984976],[145.271991,-15.428205],[145.48526,-16.285672],[145.637033,-16.784918],[145.888904,-16.906926],[146.160309,-17.761655],[146.063674,-18.280073],[146.387478,-18.958274],[147.471082,-19.480723],[148.177602,-19.955939],[148.848414,-20.39121],[148.717465,-20.633469],[149.28942,-21.260511],[149.678337,-22.342512],[150.077382,-22.122784],[150.482939,-22.556142],[150.727265,-22.402405],[150.899554,-23.462237],[151.609175,-24.076256],[152.07354,-24.457887],[152.855197,-25.267501],[153.136162,-26.071173],[153.161949,-26.641319],[153.092909,-27.2603],[153.569469,-28.110067],[153.512108,-28.995077],[153.339095,-29.458202],[153.069241,-30.35024],[153.089602,-30.923642],[152.891578,-31.640446],[152.450002,-32.550003],[151.709117,-33.041342],[151.343972,-33.816023],[151.010555,-34.31036],[150.714139,-35.17346],[150.32822,-35.671879],[150.075212,-36.420206],[149.946124,-37.109052],[149.997284,-37.425261],[149.423882,-37.772681],[148.304622,-37.809061],[147.381733,-38.219217],[146.922123,-38.606532],[146.317922,-39.035757],[145.489652,-38.593768],[144.876976,-38.417448],[145.032212,-37.896188],[144.485682,-38.085324],[143.609974,-38.809465],[142.745427,-38.538268],[142.17833,-38.380034],[141.606582,-38.308514],[140.638579,-38.019333],[139.992158,-37.402936],[139.806588,-36.643603],[139.574148,-36.138362],[139.082808,-35.732754],[138.120748,-35.612296],[138.449462,-35.127261],[138.207564,-34.384723],[137.71917,-35.076825],[136.829406,-35.260535],[137.352371,-34.707339],[137.503886,-34.130268],[137.890116,-33.640479],[137.810328,-32.900007],[136.996837,-33.752771],[136.372069,-34.094766],[135.989043,-34.890118],[135.208213,-34.47867],[135.239218,-33.947953],[134.613417,-33.222778],[134.085904,-32.848072],[134.273903,-32.617234],[132.990777,-32.011224],[132.288081,-31.982647],[131.326331,-31.495803],[129.535794,-31.590423],[128.240938,-31.948489],[127.102867,-32.282267],[126.148714,-32.215966],[125.088623,-32.728751],[124.221648,-32.959487],[124.028947,-33.483847],[123.659667,-33.890179],[122.811036,-33.914467],[122.183064,-34.003402],[121.299191,-33.821036],[120.580268,-33.930177],[119.893695,-33.976065],[119.298899,-34.509366],[119.007341,-34.464149],[118.505718,-34.746819],[118.024972,-35.064733],[117.295507,-35.025459],[116.625109,-35.025097],[115.564347,-34.386428],[115.026809,-34.196517],[115.048616,-33.623425],[115.545123,-33.487258],[115.714674,-33.259572],[115.679379,-32.900369],[115.801645,-32.205062],[115.689611,-31.612437],[115.160909,-30.601594],[114.997043,-30.030725],[115.040038,-29.461095],[114.641974,-28.810231],[114.616498,-28.516399],[114.173579,-28.118077],[114.048884,-27.334765],[113.477498,-26.543134],[113.338953,-26.116545],[113.778358,-26.549025],[113.440962,-25.621278],[113.936901,-25.911235],[114.232852,-26.298446],[114.216161,-25.786281],[113.721255,-24.998939],[113.625344,-24.683971],[113.393523,-24.384764],[113.502044,-23.80635],[113.706993,-23.560215],[113.843418,-23.059987],[113.736552,-22.475475],[114.149756,-21.755881],[114.225307,-22.517488],[114.647762,-21.82952],[115.460167,-21.495173],[115.947373,-21.068688],[116.711615,-20.701682],[117.166316,-20.623599],[117.441545,-20.746899],[118.229559,-20.374208],[118.836085,-20.263311],[118.987807,-20.044203],[119.252494,-19.952942],[119.805225,-19.976506],[120.85622,-19.683708],[121.399856,-19.239756],[121.655138,-18.705318],[122.241665,-18.197649],[122.286624,-17.798603],[122.312772,-17.254967],[123.012574,-16.4052],[123.433789,-17.268558],[123.859345,-17.069035],[123.503242,-16.596506],[123.817073,-16.111316],[124.258287,-16.327944],[124.379726,-15.56706],[124.926153,-15.0751],[125.167275,-14.680396],[125.670087,-14.51007],[125.685796,-14.230656],[126.125149,-14.347341],[126.142823,-14.095987],[126.582589,-13.952791],[127.065867,-13.817968],[127.804633,-14.276906],[128.35969,-14.86917],[128.985543,-14.875991],[129.621473,-14.969784],[129.4096,-14.42067],[129.888641,-13.618703],[130.339466,-13.357376],[130.183506,-13.10752],[130.617795,-12.536392],[131.223495,-12.183649],[131.735091,-12.302453],[132.575298,-12.114041],[132.557212,-11.603012],[131.824698,-11.273782],[132.357224,-11.128519],[133.019561,-11.376411],[133.550846,-11.786515],[134.393068,-12.042365],[134.678632,-11.941183],[135.298491,-12.248606],[135.882693,-11.962267],[136.258381,-12.049342],[136.492475,-11.857209],[136.95162,-12.351959],[136.685125,-12.887223],[136.305407,-13.29123],[135.961758,-13.324509],[136.077617,-13.724278],[135.783836,-14.223989],[135.428664,-14.715432],[135.500184,-14.997741],[136.295175,-15.550265],[137.06536,-15.870762],[137.580471,-16.215082],[138.303217,-16.807604],[138.585164,-16.806622],[139.108543,-17.062679],[139.260575,-17.371601],[140.215245,-17.710805],[140.875463,-17.369069],[141.07111,-16.832047],[141.274095,-16.38887],[141.398222,-15.840532],[141.702183,-15.044921],[141.56338,-14.561333],[141.63552,-14.270395],[141.519869,-13.698078],[141.65092,-12.944688],[141.842691,-12.741548],[141.68699,-12.407614],[141.928629,-11.877466],[142.118488,-11.328042],[142.143706,-11.042737],[142.51526,-10.668186],[142.79731,-11.157355],[142.866763,-11.784707],[143.115947,-11.90563],[143.158632,-12.325656],[143.522124,-12.834358],[143.597158,-13.400422],[143.561811,-13.763656]]]]},"type":"Feature","id":"AUS","properties":{"name":"Australia","id":"AUS","centroid":[149.08,-35.15]}},{"geometry":{"type":"Polygon","coordinates":[[[16.979667,48.123497],[16.903754,47.714866],[16.340584,47.712902],[16.534268,47.496171],[16.202298,46.852386],[16.011664,46.683611],[15.137092,46.658703],[14.632472,46.431817],[13.806475,46.509306],[12.376485,46.767559],[12.153088,47.115393],[11.164828,46.941579],[11.048556,46.751359],[10.442701,46.893546],[9.932448,46.920728],[9.47997,47.10281],[9.632932,47.347601],[9.594226,47.525058],[9.896068,47.580197],[10.402084,47.302488],[10.544504,47.566399],[11.426414,47.523766],[12.141357,47.703083],[12.62076,47.672388],[12.932627,47.467646],[13.025851,47.637584],[12.884103,48.289146],[13.243357,48.416115],[13.595946,48.877172],[14.338898,48.555305],[14.901447,48.964402],[15.253416,49.039074],[16.029647,48.733899],[16.499283,48.785808],[16.960288,48.596982],[16.879983,48.470013],[16.979667,48.123497]]]},"type":"Feature","id":"AUT","properties":{"name":"Austria","id":"AUT","centroid":[16.22,48.12]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[45.001987,39.740004],[45.298145,39.471751],[45.739978,39.473999],[45.735379,39.319719],[46.143623,38.741201],[45.457722,38.874139],[44.952688,39.335765],[44.79399,39.713003],[45.001987,39.740004]]],[[[47.373315,41.219732],[47.815666,41.151416],[47.987283,41.405819],[48.584353,41.80887],[49.110264,41.282287],[49.618915,40.572924],[50.08483,40.526157],[50.392821,40.256561],[49.569202,40.176101],[49.395259,39.399482],[49.223228,39.049219],[48.856532,38.815486],[48.883249,38.320245],[48.634375,38.270378],[48.010744,38.794015],[48.355529,39.288765],[48.060095,39.582235],[47.685079,39.508364],[46.50572,38.770605],[46.483499,39.464155],[46.034534,39.628021],[45.610012,39.899994],[45.891907,40.218476],[45.359175,40.561504],[45.560351,40.81229],[45.179496,40.985354],[44.97248,41.248129],[45.217426,41.411452],[45.962601,41.123873],[46.501637,41.064445],[46.637908,41.181673],[46.145432,41.722802],[46.404951,41.860675],[46.686071,41.827137],[47.373315,41.219732]]]]},"type":"Feature","id":"AZE","properties":{"name":"Azerbaijan","id":"AZE","centroid":[49.56,40.29]}},{"geometry":{"type":"Polygon","coordinates":[[[29.339998,-4.499983],[29.276384,-3.293907],[29.024926,-2.839258],[29.632176,-2.917858],[29.938359,-2.348487],[30.469696,-2.413858],[30.527677,-2.807632],[30.743013,-3.034285],[30.752263,-3.35933],[30.50556,-3.568567],[30.116333,-4.090138],[29.753512,-4.452389],[29.339998,-4.499983]]]},"type":"Feature","id":"BDI","properties":{"name":"Burundi","id":"BDI","centroid":[29.18,-3.16]}},{"geometry":{"type":"Polygon","coordinates":[[[3.314971,51.345781],[4.047071,51.267259],[4.973991,51.475024],[5.606976,51.037298],[6.156658,50.803721],[6.043073,50.128052],[5.782417,50.090328],[5.674052,49.529484],[4.799222,49.985373],[4.286023,49.907497],[3.588184,50.378992],[3.123252,50.780363],[2.658422,50.796848],[2.513573,51.148506],[3.314971,51.345781]]]},"type":"Feature","id":"BEL","properties":{"name":"Belgium","id":"BEL","centroid":[4.21,50.51]}},{"geometry":{"type":"Polygon","coordinates":[[[2.691702,6.258817],[1.865241,6.142158],[1.618951,6.832038],[1.664478,9.12859],[1.463043,9.334624],[1.425061,9.825395],[1.077795,10.175607],[0.772336,10.470808],[0.899563,10.997339],[1.24347,11.110511],[1.447178,11.547719],[1.935986,11.64115],[2.154474,11.94015],[2.490164,12.233052],[2.848643,12.235636],[3.61118,11.660167],[3.572216,11.327939],[3.797112,10.734746],[3.60007,10.332186],[3.705438,10.06321],[3.220352,9.444153],[2.912308,9.137608],[2.723793,8.506845],[2.749063,7.870734],[2.691702,6.258817]]]},"type":"Feature","id":"BEN","properties":{"name":"Benin","id":"BEN","centroid":[2.42,6.23]}},{"geometry":{"type":"Polygon","coordinates":[[[-2.827496,9.642461],[-3.511899,9.900326],[-3.980449,9.862344],[-4.330247,9.610835],[-4.779884,9.821985],[-4.954653,10.152714],[-5.404342,10.370737],[-5.470565,10.95127],[-5.197843,11.375146],[-5.220942,11.713859],[-4.427166,12.542646],[-4.280405,13.228444],[-4.006391,13.472485],[-3.522803,13.337662],[-3.103707,13.541267],[-2.967694,13.79815],[-2.191825,14.246418],[-2.001035,14.559008],[-1.066363,14.973815],[-0.515854,15.116158],[-0.266257,14.924309],[0.374892,14.928908],[0.295646,14.444235],[0.429928,13.988733],[0.993046,13.33575],[1.024103,12.851826],[2.177108,12.625018],[2.154474,11.94015],[1.935986,11.64115],[1.447178,11.547719],[1.24347,11.110511],[0.899563,10.997339],[0.023803,11.018682],[-0.438702,11.098341],[-0.761576,10.93693],[-1.203358,11.009819],[-2.940409,10.96269],[-2.963896,10.395335],[-2.827496,9.642461]]]},"type":"Feature","id":"BFA","properties":{"name":"Burkina Faso","id":"BFA","centroid":[-1.3,12.15]}},{"geometry":{"type":"Polygon","coordinates":[[[92.672721,22.041239],[92.652257,21.324048],[92.303234,21.475485],[92.368554,20.670883],[92.082886,21.192195],[92.025215,21.70157],[91.834891,22.182936],[91.417087,22.765019],[90.496006,22.805017],[90.586957,22.392794],[90.272971,21.836368],[89.847467,22.039146],[89.70205,21.857116],[89.418863,21.966179],[89.031961,22.055708],[88.876312,22.879146],[88.52977,23.631142],[88.69994,24.233715],[88.084422,24.501657],[88.306373,24.866079],[88.931554,25.238692],[88.209789,25.768066],[88.563049,26.446526],[89.355094,26.014407],[89.832481,25.965082],[89.920693,25.26975],[90.872211,25.132601],[91.799596,25.147432],[92.376202,24.976693],[91.915093,24.130414],[91.46773,24.072639],[91.158963,23.503527],[91.706475,22.985264],[91.869928,23.624346],[92.146035,23.627499],[92.672721,22.041239]]]},"type":"Feature","id":"BGD","properties":{"name":"Bangladesh","id":"BGD","centroid":[90.23,23.42]}},{"geometry":{"type":"Polygon","coordinates":[[[22.65715,44.234923],[22.944832,43.823785],[23.332302,43.897011],[24.100679,43.741051],[25.569272,43.688445],[26.065159,43.943494],[27.2424,44.175986],[27.970107,43.812468],[28.558081,43.707462],[28.039095,43.293172],[27.673898,42.577892],[27.99672,42.007359],[27.135739,42.141485],[26.117042,41.826905],[26.106138,41.328899],[25.197201,41.234486],[24.492645,41.583896],[23.692074,41.309081],[22.952377,41.337994],[22.881374,41.999297],[22.380526,42.32026],[22.545012,42.461362],[22.436595,42.580321],[22.604801,42.898519],[22.986019,43.211161],[22.500157,43.642814],[22.410446,44.008063],[22.65715,44.234923]]]},"type":"Feature","id":"BGR","properties":{"name":"Bulgaria","id":"BGR","centroid":[23.2,42.45]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-77.53466,23.75975],[-77.78,23.71],[-78.03405,24.28615],[-78.40848,24.57564],[-78.19087,25.2103],[-77.89,25.17],[-77.54,24.34],[-77.53466,23.75975]]],[[[-77.82,26.58],[-78.91,26.42],[-78.98,26.79],[-78.51,26.87],[-77.85,26.84],[-77.82,26.58]]],[[[-77,26.59],[-77.17255,25.87918],[-77.35641,26.00735],[-77.34,26.53],[-77.78802,26.92516],[-77.79,27.04],[-77,26.59]]]]},"type":"Feature","id":"BHS","properties":{"name":"The Bahamas","id":"BHS","centroid":[-77.2,25.05]}},{"geometry":{"type":"Polygon","coordinates":[[[19.005486,44.860234],[19.36803,44.863],[19.11761,44.42307],[19.59976,44.03847],[19.454,43.5681],[19.21852,43.52384],[19.03165,43.43253],[18.70648,43.20011],[18.56,42.65],[17.674922,43.028563],[17.297373,43.446341],[16.916156,43.667722],[16.456443,44.04124],[16.23966,44.351143],[15.750026,44.818712],[15.959367,45.233777],[16.318157,45.004127],[16.534939,45.211608],[17.002146,45.233777],[17.861783,45.06774],[18.553214,45.08159],[19.005486,44.860234]]]},"type":"Feature","id":"BIH","properties":{"name":"Bosnia and Herzegovina","id":"BIH","centroid":[18.25,43.52]}},{"geometry":{"type":"Polygon","coordinates":[[[23.484128,53.912498],[24.450684,53.905702],[25.536354,54.282423],[25.768433,54.846963],[26.588279,55.167176],[26.494331,55.615107],[27.10246,55.783314],[28.176709,56.16913],[29.229513,55.918344],[29.371572,55.670091],[29.896294,55.789463],[30.873909,55.550976],[30.971836,55.081548],[30.757534,54.811771],[31.384472,54.157056],[31.791424,53.974639],[31.731273,53.794029],[32.405599,53.618045],[32.693643,53.351421],[32.304519,53.132726],[31.497644,53.167427],[31.305201,53.073996],[31.540018,52.742052],[31.785998,52.101678],[30.927549,52.042353],[30.619454,51.822806],[30.555117,51.319503],[30.157364,51.416138],[29.254938,51.368234],[28.992835,51.602044],[28.617613,51.427714],[28.241615,51.572227],[27.454066,51.592303],[26.337959,51.832289],[25.327788,51.910656],[24.553106,51.888461],[24.005078,51.617444],[23.527071,51.578454],[23.508002,52.023647],[23.199494,52.486977],[23.799199,52.691099],[23.804935,53.089731],[23.527536,53.470122],[23.484128,53.912498]]]},"type":"Feature","id":"BLR","properties":{"name":"Belarus","id":"BLR","centroid":[27.3,53.52]}},{"geometry":{"type":"Polygon","coordinates":[[[-89.14308,17.808319],[-89.150909,17.955468],[-89.029857,18.001511],[-88.848344,17.883198],[-88.490123,18.486831],[-88.300031,18.499982],[-88.296336,18.353273],[-88.106813,18.348674],[-88.123479,18.076675],[-88.285355,17.644143],[-88.197867,17.489475],[-88.302641,17.131694],[-88.239518,17.036066],[-88.355428,16.530774],[-88.551825,16.265467],[-88.732434,16.233635],[-88.930613,15.887273],[-89.229122,15.886938],[-89.150806,17.015577],[-89.14308,17.808319]]]},"type":"Feature","id":"BLZ","properties":{"name":"Belize","id":"BLZ","centroid":[-88.3,17.18]}},{"geometry":{"type":"Polygon","coordinates":[[[-64.7799734332998,32.3072000581802],[-64.7873319183061,32.3039237143428],[-64.7946942710173,32.3032682700388],[-64.8094297981283,32.3098175728414],[-64.8167896352437,32.3058845718466],[-64.8101968029642,32.3022833180511],[-64.7962291465484,32.2934409732427],[-64.7815086336978,32.2868973114514],[-64.7997025513437,32.2796896417328],[-64.8066707691087,32.2747767569465],[-64.8225587873683,32.2669111289395],[-64.8287548840306,32.2669075473817],[-64.8306732143498,32.2583944840235],[-64.8399924854972,32.254782282336],[-64.8566090462354,32.2547740387514],[-64.8682296789446,32.2616393614322],[-64.8628241459563,32.2724481933959],[-64.8748651338951,32.2757120264753],[-64.8717752856644,32.2819371582026],[-64.8671422127295,32.2930760547989],[-64.8559068764437,32.2960321186471],[-64.8597429072279,32.3015842021933],[-64.8439233486717,32.3140553852543],[-64.8350242329311,32.3242161760006],[-64.8338690593672,32.3294587561557],[-64.8520298651164,32.3110911879954],[-64.8635922932573,32.3048469433363],[-64.8686668994079,32.30910745083],[-64.8721354593415,32.3041908606301],[-64.8779667328485,32.3038632800462],[-64.8780046844321,32.2907757831692],[-64.8849776658292,32.2819261366004],[-64.8783230004629,32.2613001418681],[-64.863194968877,32.2465799485801],[-64.8519819555722,32.2485519134663],[-64.842311980074,32.2492123317296],[-64.8388242605209,32.2475773472534],[-64.8334002575532,32.2462714714698],[-64.8256389530584,32.2472637398594],[-64.8205697556026,32.2531698880328],[-64.8105087275579,32.2561208974156],[-64.7900177727338,32.2659446936992],[-64.7745415970416,32.2718413023427],[-64.7644742436426,32.2855931353214],[-64.7551803442276,32.2908326702531],[-64.7423982971436,32.2996734994024],[-64.7206991797682,32.3137542201258],[-64.7117851247134,32.3176823360806],[-64.6962778813133,32.3275029115532],[-64.6768921127452,32.3324095397555],[-64.6567136927777,32.3451776458469],[-64.6532168823499,32.3494356627941],[-64.6605720384429,32.3589423487763],[-64.65125819471,32.3615600906466],[-64.6462011670816,32.36975169749],[-64.6613227512832,32.3763135008721],[-64.6690666074397,32.388444543924],[-64.6834270548595,32.3854968316788],[-64.6954617672714,32.3763221285869],[-64.70438689565,32.3704254760469],[-64.7117569982798,32.368132600249],[-64.7061764744404,32.3600110593559],[-64.700531552697,32.3590601356818],[-64.6940348033967,32.3640708659835],[-64.6895164826082,32.3633598579866],[-64.6864150099255,32.3547797587266],[-64.6824635995504,32.3540628176846],[-64.6835876652835,32.3626447677968],[-64.6801998697415,32.3631199096979],[-64.6672170444687,32.3597751617473],[-64.6598811264978,32.3497625771755],[-64.6737331235384,32.3390281851635],[-64.6887090648183,32.3342439408053],[-64.706732854446,32.3429010723036],[-64.7149301576112,32.3552188753513],[-64.7185967666669,32.3552239212394],[-64.7214189847314,32.3518830231342],[-64.7270616067222,32.3466461715475],[-64.734962460882,32.3442819830499],[-64.7383521549094,32.3407216514918],[-64.7411729976333,32.3311790864627],[-64.7423019216485,32.323311561213],[-64.7462482354281,32.318538611581],[-64.7566773739613,32.3130509130175],[-64.768738200563,32.3088369816572],[-64.7799734332998,32.3072000581802]]]},"type":"Feature","id":"BMU","properties":{"name":"Bermuda","id":"BMU","centroid":[-64.47,32.18]}},{"geometry":{"type":"Polygon","coordinates":[[[-62.846468,-22.034985],[-63.986838,-21.993644],[-64.377021,-22.798091],[-64.964892,-22.075862],[-66.273339,-21.83231],[-67.106674,-22.735925],[-67.82818,-22.872919],[-68.219913,-21.494347],[-68.757167,-20.372658],[-68.442225,-19.405068],[-68.966818,-18.981683],[-69.100247,-18.260125],[-69.590424,-17.580012],[-68.959635,-16.500698],[-69.389764,-15.660129],[-69.160347,-15.323974],[-69.339535,-14.953195],[-68.948887,-14.453639],[-68.929224,-13.602684],[-68.88008,-12.899729],[-68.66508,-12.5613],[-69.529678,-10.951734],[-68.786158,-11.03638],[-68.271254,-11.014521],[-68.048192,-10.712059],[-67.173801,-10.306812],[-66.646908,-9.931331],[-65.338435,-9.761988],[-65.444837,-10.511451],[-65.321899,-10.895872],[-65.402281,-11.56627],[-64.316353,-12.461978],[-63.196499,-12.627033],[-62.80306,-13.000653],[-62.127081,-13.198781],[-61.713204,-13.489202],[-61.084121,-13.479384],[-60.503304,-13.775955],[-60.459198,-14.354007],[-60.264326,-14.645979],[-60.251149,-15.077219],[-60.542966,-15.09391],[-60.15839,-16.258284],[-58.24122,-16.299573],[-58.388058,-16.877109],[-58.280804,-17.27171],[-57.734558,-17.552468],[-57.498371,-18.174188],[-57.676009,-18.96184],[-57.949997,-19.400004],[-57.853802,-19.969995],[-58.166392,-20.176701],[-58.183471,-19.868399],[-59.115042,-19.356906],[-60.043565,-19.342747],[-61.786326,-19.633737],[-62.265961,-20.513735],[-62.291179,-21.051635],[-62.685057,-22.249029],[-62.846468,-22.034985]]]},"type":"Feature","id":"BOL","properties":{"name":"Bolivia","id":"BOL","centroid":[-68.1,-16.2]}},{"geometry":{"type":"Polygon","coordinates":[[[-57.625133,-30.216295],[-56.2909,-28.852761],[-55.162286,-27.881915],[-54.490725,-27.474757],[-53.648735,-26.923473],[-53.628349,-26.124865],[-54.13005,-25.547639],[-54.625291,-25.739255],[-54.428946,-25.162185],[-54.293476,-24.5708],[-54.29296,-24.021014],[-54.652834,-23.839578],[-55.027902,-24.001274],[-55.400747,-23.956935],[-55.517639,-23.571998],[-55.610683,-22.655619],[-55.797958,-22.35693],[-56.473317,-22.0863],[-56.88151,-22.282154],[-57.937156,-22.090176],[-57.870674,-20.732688],[-58.166392,-20.176701],[-57.853802,-19.969995],[-57.949997,-19.400004],[-57.676009,-18.96184],[-57.498371,-18.174188],[-57.734558,-17.552468],[-58.280804,-17.27171],[-58.388058,-16.877109],[-58.24122,-16.299573],[-60.15839,-16.258284],[-60.542966,-15.09391],[-60.251149,-15.077219],[-60.264326,-14.645979],[-60.459198,-14.354007],[-60.503304,-13.775955],[-61.084121,-13.479384],[-61.713204,-13.489202],[-62.127081,-13.198781],[-62.80306,-13.000653],[-63.196499,-12.627033],[-64.316353,-12.461978],[-65.402281,-11.56627],[-65.321899,-10.895872],[-65.444837,-10.511451],[-65.338435,-9.761988],[-66.646908,-9.931331],[-67.173801,-10.306812],[-68.048192,-10.712059],[-68.271254,-11.014521],[-68.786158,-11.03638],[-69.529678,-10.951734],[-70.093752,-11.123972],[-70.548686,-11.009147],[-70.481894,-9.490118],[-71.302412,-10.079436],[-72.184891,-10.053598],[-72.563033,-9.520194],[-73.226713,-9.462213],[-73.015383,-9.032833],[-73.571059,-8.424447],[-73.987235,-7.52383],[-73.723401,-7.340999],[-73.724487,-6.918595],[-73.120027,-6.629931],[-73.219711,-6.089189],[-72.964507,-5.741251],[-72.891928,-5.274561],[-71.748406,-4.593983],[-70.928843,-4.401591],[-70.794769,-4.251265],[-69.893635,-4.298187],[-69.444102,-1.556287],[-69.420486,-1.122619],[-69.577065,-0.549992],[-70.020656,-0.185156],[-70.015566,0.541414],[-69.452396,0.706159],[-69.252434,0.602651],[-69.218638,0.985677],[-69.804597,1.089081],[-69.816973,1.714805],[-67.868565,1.692455],[-67.53781,2.037163],[-67.259998,1.719999],[-67.065048,1.130112],[-66.876326,1.253361],[-66.325765,0.724452],[-65.548267,0.789254],[-65.354713,1.095282],[-64.611012,1.328731],[-64.199306,1.492855],[-64.083085,1.916369],[-63.368788,2.2009],[-63.422867,2.411068],[-64.269999,2.497006],[-64.408828,3.126786],[-64.368494,3.79721],[-64.816064,4.056445],[-64.628659,4.148481],[-63.888343,4.02053],[-63.093198,3.770571],[-62.804533,4.006965],[-62.08543,4.162124],[-60.966893,4.536468],[-60.601179,4.918098],[-60.733574,5.200277],[-60.213683,5.244486],[-59.980959,5.014061],[-60.111002,4.574967],[-59.767406,4.423503],[-59.53804,3.958803],[-59.815413,3.606499],[-59.974525,2.755233],[-59.718546,2.24963],[-59.646044,1.786894],[-59.030862,1.317698],[-58.540013,1.268088],[-58.429477,1.463942],[-58.11345,1.507195],[-57.660971,1.682585],[-57.335823,1.948538],[-56.782704,1.863711],[-56.539386,1.899523],[-55.995698,1.817667],[-55.9056,2.021996],[-56.073342,2.220795],[-55.973322,2.510364],[-55.569755,2.421506],[-55.097587,2.523748],[-54.524754,2.311849],[-54.088063,2.105557],[-53.778521,2.376703],[-53.554839,2.334897],[-53.418465,2.053389],[-52.939657,2.124858],[-52.556425,2.504705],[-52.249338,3.241094],[-51.657797,4.156232],[-51.317146,4.203491],[-51.069771,3.650398],[-50.508875,1.901564],[-49.974076,1.736483],[-49.947101,1.04619],[-50.699251,0.222984],[-50.388211,-0.078445],[-48.620567,-0.235489],[-48.584497,-1.237805],[-47.824956,-0.581618],[-46.566584,-0.941028],[-44.905703,-1.55174],[-44.417619,-2.13775],[-44.581589,-2.691308],[-43.418791,-2.38311],[-41.472657,-2.912018],[-39.978665,-2.873054],[-38.500383,-3.700652],[-37.223252,-4.820946],[-36.452937,-5.109404],[-35.597796,-5.149504],[-35.235389,-5.464937],[-34.89603,-6.738193],[-34.729993,-7.343221],[-35.128212,-8.996401],[-35.636967,-9.649282],[-37.046519,-11.040721],[-37.683612,-12.171195],[-38.423877,-13.038119],[-38.673887,-13.057652],[-38.953276,-13.79337],[-38.882298,-15.667054],[-39.161092,-17.208407],[-39.267339,-17.867746],[-39.583521,-18.262296],[-39.760823,-19.599113],[-40.774741,-20.904512],[-40.944756,-21.937317],[-41.754164,-22.370676],[-41.988284,-22.97007],[-43.074704,-22.967693],[-44.647812,-23.351959],[-45.352136,-23.796842],[-46.472093,-24.088969],[-47.648972,-24.885199],[-48.495458,-25.877025],[-48.641005,-26.623698],[-48.474736,-27.175912],[-48.66152,-28.186135],[-48.888457,-28.674115],[-49.587329,-29.224469],[-50.696874,-30.984465],[-51.576226,-31.777698],[-52.256081,-32.24537],[-52.7121,-33.196578],[-53.373662,-33.768378],[-53.650544,-33.202004],[-53.209589,-32.727666],[-53.787952,-32.047243],[-54.572452,-31.494511],[-55.60151,-30.853879],[-55.973245,-30.883076],[-56.976026,-30.109686],[-57.625133,-30.216295]]]},"type":"Feature","id":"BRA","properties":{"name":"Brazil","id":"BRA","centroid":[-47.55,-15.47]}},{"geometry":{"type":"Polygon","coordinates":[[[114.204017,4.525874],[114.599961,4.900011],[115.45071,5.44773],[115.4057,4.955228],[115.347461,4.316636],[114.869557,4.348314],[114.659596,4.007637],[114.204017,4.525874]]]},"type":"Feature","id":"BRN","properties":{"name":"Brunei","id":"BRN","centroid":[115,4.52]}},{"geometry":{"type":"Polygon","coordinates":[[[91.696657,27.771742],[92.103712,27.452614],[92.033484,26.83831],[91.217513,26.808648],[90.373275,26.875724],[89.744528,26.719403],[88.835643,27.098966],[88.814248,27.299316],[89.47581,28.042759],[90.015829,28.296439],[90.730514,28.064954],[91.258854,28.040614],[91.696657,27.771742]]]},"type":"Feature","id":"BTN","properties":{"name":"Bhutan","id":"BTN","centroid":[89.45,27.31]}},{"geometry":{"type":"Polygon","coordinates":[[[25.649163,-18.536026],[25.850391,-18.714413],[26.164791,-19.293086],[27.296505,-20.39152],[27.724747,-20.499059],[27.727228,-20.851802],[28.02137,-21.485975],[28.794656,-21.639454],[29.432188,-22.091313],[28.017236,-22.827754],[27.11941,-23.574323],[26.786407,-24.240691],[26.485753,-24.616327],[25.941652,-24.696373],[25.765849,-25.174845],[25.664666,-25.486816],[25.025171,-25.71967],[24.211267,-25.670216],[23.73357,-25.390129],[23.312097,-25.26869],[22.824271,-25.500459],[22.579532,-25.979448],[22.105969,-26.280256],[21.605896,-26.726534],[20.889609,-26.828543],[20.66647,-26.477453],[20.758609,-25.868136],[20.165726,-24.917962],[19.895768,-24.76779],[19.895458,-21.849157],[20.881134,-21.814327],[20.910641,-18.252219],[21.65504,-18.219146],[23.196858,-17.869038],[23.579006,-18.281261],[24.217365,-17.889347],[24.520705,-17.887125],[25.084443,-17.661816],[25.264226,-17.73654],[25.649163,-18.536026]]]},"type":"Feature","id":"BWA","properties":{"name":"Botswana","id":"BWA","centroid":[25.57,-24.45]}},{"geometry":{"type":"Polygon","coordinates":[[[15.27946,7.421925],[16.106232,7.497088],[16.290562,7.754307],[16.456185,7.734774],[16.705988,7.508328],[17.96493,7.890914],[18.389555,8.281304],[18.911022,8.630895],[18.81201,8.982915],[19.094008,9.074847],[20.059685,9.012706],[21.000868,9.475985],[21.723822,10.567056],[22.231129,10.971889],[22.864165,11.142395],[22.977544,10.714463],[23.554304,10.089255],[23.55725,9.681218],[23.394779,9.265068],[23.459013,8.954286],[23.805813,8.666319],[24.567369,8.229188],[25.114932,7.825104],[25.124131,7.500085],[25.796648,6.979316],[26.213418,6.546603],[26.465909,5.946717],[27.213409,5.550953],[27.374226,5.233944],[27.044065,5.127853],[26.402761,5.150875],[25.650455,5.256088],[25.278798,5.170408],[25.128833,4.927245],[24.805029,4.897247],[24.410531,5.108784],[23.297214,4.609693],[22.84148,4.710126],[22.704124,4.633051],[22.405124,4.02916],[21.659123,4.224342],[20.927591,4.322786],[20.290679,4.691678],[19.467784,5.031528],[18.932312,4.709506],[18.542982,4.201785],[18.453065,3.504386],[17.8099,3.560196],[17.133042,3.728197],[16.537058,3.198255],[16.012852,2.26764],[15.907381,2.557389],[15.862732,3.013537],[15.405396,3.335301],[15.03622,3.851367],[14.950953,4.210389],[14.478372,4.732605],[14.558936,5.030598],[14.459407,5.451761],[14.53656,6.226959],[14.776545,6.408498],[15.27946,7.421925]]]},"type":"Feature","id":"CAF","properties":{"name":"Central African Republic","id":"CAF","centroid":[18.33,4.22]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-63.6645,46.55001],[-62.9393,46.41587],[-62.01208,46.44314],[-62.50391,46.03339],[-62.87433,45.96818],[-64.1428,46.39265],[-64.39261,46.72747],[-64.01486,47.03601],[-63.6645,46.55001]]],[[[-61.806305,49.10506],[-62.29318,49.08717],[-63.58926,49.40069],[-64.51912,49.87304],[-64.17322,49.95718],[-62.85829,49.70641],[-61.835585,49.28855],[-61.806305,49.10506]]],[[[-123.510002,48.510011],[-124.012891,48.370846],[-125.655013,48.825005],[-125.954994,49.179996],[-126.850004,49.53],[-127.029993,49.814996],[-128.059336,49.994959],[-128.444584,50.539138],[-128.358414,50.770648],[-127.308581,50.552574],[-126.695001,50.400903],[-125.755007,50.295018],[-125.415002,49.950001],[-124.920768,49.475275],[-123.922509,49.062484],[-123.510002,48.510011]]],[[[-56.134036,50.68701],[-56.795882,49.812309],[-56.143105,50.150117],[-55.471492,49.935815],[-55.822401,49.587129],[-54.935143,49.313011],[-54.473775,49.556691],[-53.476549,49.249139],[-53.786014,48.516781],[-53.086134,48.687804],[-52.958648,48.157164],[-52.648099,47.535548],[-53.069158,46.655499],[-53.521456,46.618292],[-54.178936,46.807066],[-53.961869,47.625207],[-54.240482,47.752279],[-55.400773,46.884994],[-55.997481,46.91972],[-55.291219,47.389562],[-56.250799,47.632545],[-57.325229,47.572807],[-59.266015,47.603348],[-59.419494,47.899454],[-58.796586,48.251525],[-59.231625,48.523188],[-58.391805,49.125581],[-57.35869,50.718274],[-56.73865,51.287438],[-55.870977,51.632094],[-55.406974,51.588273],[-55.600218,51.317075],[-56.134036,50.68701]]],[[[-132.710008,54.040009],[-132.710009,54.040009],[-132.710008,54.040009],[-132.710008,54.040009],[-131.74999,54.120004],[-132.04948,52.984621],[-131.179043,52.180433],[-131.57783,52.182371],[-132.180428,52.639707],[-132.549992,53.100015],[-133.054611,53.411469],[-133.239664,53.85108],[-133.180004,54.169975],[-132.710008,54.040009]]],[[[-79.26582,62.158675],[-79.65752,61.63308],[-80.09956,61.7181],[-80.36215,62.01649],[-80.315395,62.085565],[-79.92939,62.3856],[-79.52002,62.36371],[-79.26582,62.158675]]],[[[-81.89825,62.7108],[-83.06857,62.15922],[-83.77462,62.18231],[-83.99367,62.4528],[-83.25048,62.91409],[-81.87699,62.90458],[-81.89825,62.7108]]],[[[-85.161308,65.657285],[-84.975764,65.217518],[-84.464012,65.371772],[-83.882626,65.109618],[-82.787577,64.766693],[-81.642014,64.455136],[-81.55344,63.979609],[-80.817361,64.057486],[-80.103451,63.725981],[-80.99102,63.411246],[-82.547178,63.651722],[-83.108798,64.101876],[-84.100417,63.569712],[-85.523405,63.052379],[-85.866769,63.637253],[-87.221983,63.541238],[-86.35276,64.035833],[-86.224886,64.822917],[-85.883848,65.738778],[-85.161308,65.657285]]],[[[-75.86588,67.14886],[-76.98687,67.09873],[-77.2364,67.58809],[-76.81166,68.14856],[-75.89521,68.28721],[-75.1145,68.01036],[-75.10333,67.58202],[-75.21597,67.44425],[-75.86588,67.14886]]],[[[-95.647681,69.10769],[-96.269521,68.75704],[-97.617401,69.06003],[-98.431801,68.9507],[-99.797401,69.40003],[-98.917401,69.71003],[-98.218261,70.14354],[-97.157401,69.86003],[-96.557401,69.68003],[-96.257401,69.49003],[-95.647681,69.10769]]],[[[-90.5471,69.49766],[-90.55151,68.47499],[-89.21515,69.25873],[-88.01966,68.61508],[-88.31749,67.87338],[-87.35017,67.19872],[-86.30607,67.92146],[-85.57664,68.78456],[-85.52197,69.88211],[-84.10081,69.80539],[-82.62258,69.65826],[-81.28043,69.16202],[-81.2202,68.66567],[-81.96436,68.13253],[-81.25928,67.59716],[-81.38653,67.11078],[-83.34456,66.41154],[-84.73542,66.2573],[-85.76943,66.55833],[-86.0676,66.05625],[-87.03143,65.21297],[-87.32324,64.77563],[-88.48296,64.09897],[-89.91444,64.03273],[-90.70398,63.61017],[-90.77004,62.96021],[-91.93342,62.83508],[-93.15698,62.02469],[-94.24153,60.89865],[-94.62931,60.11021],[-94.6846,58.94882],[-93.21502,58.78212],[-92.76462,57.84571],[-92.29703,57.08709],[-90.89769,57.28468],[-89.03953,56.85172],[-88.03978,56.47162],[-87.32421,55.99914],[-86.07121,55.72383],[-85.01181,55.3026],[-83.36055,55.24489],[-82.27285,55.14832],[-82.4362,54.28227],[-82.12502,53.27703],[-81.40075,52.15788],[-79.91289,51.20842],[-79.14301,51.53393],[-78.60191,52.56208],[-79.12421,54.14145],[-79.82958,54.66772],[-78.22874,55.13645],[-77.0956,55.83741],[-76.54137,56.53423],[-76.62319,57.20263],[-77.30226,58.05209],[-78.51688,58.80458],[-77.33676,59.85261],[-77.77272,60.75788],[-78.10687,62.31964],[-77.41067,62.55053],[-75.69621,62.2784],[-74.6682,62.18111],[-73.83988,62.4438],[-72.90853,62.10507],[-71.67708,61.52535],[-71.37369,61.13717],[-69.59042,61.06141],[-69.62033,60.22125],[-69.2879,58.95736],[-68.37455,58.80106],[-67.64976,58.21206],[-66.20178,58.76731],[-65.24517,59.87071],[-64.58352,60.33558],[-63.80475,59.4426],[-62.50236,58.16708],[-61.39655,56.96745],[-61.79866,56.33945],[-60.46853,55.77548],[-59.56962,55.20407],[-57.97508,54.94549],[-57.3332,54.6265],[-56.93689,53.78032],[-56.15811,53.64749],[-55.75632,53.27036],[-55.68338,52.14664],[-56.40916,51.7707],[-57.12691,51.41972],[-58.77482,51.0643],[-60.03309,50.24277],[-61.72366,50.08046],[-63.86251,50.29099],[-65.36331,50.2982],[-66.39905,50.22897],[-67.23631,49.51156],[-68.51114,49.06836],[-69.95362,47.74488],[-71.10458,46.82171],[-70.25522,46.98606],[-68.65,48.3],[-66.55243,49.1331],[-65.05626,49.23278],[-64.17099,48.74248],[-65.11545,48.07085],[-64.79854,46.99297],[-64.47219,46.23849],[-63.17329,45.73902],[-61.52072,45.88377],[-60.51815,47.00793],[-60.4486,46.28264],[-59.80287,45.9204],[-61.03988,45.26525],[-63.25471,44.67014],[-64.24656,44.26553],[-65.36406,43.54523],[-66.1234,43.61867],[-66.16173,44.46512],[-64.42549,45.29204],[-66.02605,45.25931],[-67.13741,45.13753],[-67.79134,45.70281],[-67.79046,47.06636],[-68.23444,47.35486],[-68.905,47.185],[-69.237216,47.447781],[-69.99997,46.69307],[-70.305,45.915],[-70.66,45.46],[-71.08482,45.30524],[-71.405,45.255],[-71.50506,45.0082],[-73.34783,45.00738],[-74.867,45.00048],[-75.31821,44.81645],[-76.375,44.09631],[-76.5,44.018459],[-76.820034,43.628784],[-77.737885,43.629056],[-78.72028,43.625089],[-79.171674,43.466339],[-79.01,43.27],[-78.92,42.965],[-78.939362,42.863611],[-80.247448,42.3662],[-81.277747,42.209026],[-82.439278,41.675105],[-82.690089,41.675105],[-83.02981,41.832796],[-83.142,41.975681],[-83.12,42.08],[-82.9,42.43],[-82.43,42.98],[-82.137642,43.571088],[-82.337763,44.44],[-82.550925,45.347517],[-83.592851,45.816894],[-83.469551,45.994686],[-83.616131,46.116927],[-83.890765,46.116927],[-84.091851,46.275419],[-84.14212,46.512226],[-84.3367,46.40877],[-84.6049,46.4396],[-84.543749,46.538684],[-84.779238,46.637102],[-84.87608,46.900083],[-85.652363,47.220219],[-86.461991,47.553338],[-87.439793,47.94],[-88.378114,48.302918],[-89.272917,48.019808],[-89.6,48.01],[-90.83,48.27],[-91.64,48.14],[-92.61,48.45],[-93.63087,48.60926],[-94.32914,48.67074],[-94.64,48.84],[-94.81758,49.38905],[-95.15609,49.38425],[-95.15907,49],[-97.22872,49.0007],[-100.65,49],[-104.04826,48.99986],[-107.05,49],[-110.05,49],[-113,49],[-116.04818,49],[-117.03121,49],[-120,49],[-122.84,49],[-122.97421,49.002538],[-124.91024,49.98456],[-125.62461,50.41656],[-127.43561,50.83061],[-127.99276,51.71583],[-127.85032,52.32961],[-129.12979,52.75538],[-129.30523,53.56159],[-130.51497,54.28757],[-130.53611,54.80278],[-129.98,55.285],[-130.00778,55.91583],[-131.70781,56.55212],[-132.73042,57.69289],[-133.35556,58.41028],[-134.27111,58.86111],[-134.945,59.27056],[-135.47583,59.78778],[-136.47972,59.46389],[-137.4525,58.905],[-138.34089,59.56211],[-139.039,60],[-140.013,60.27682],[-140.99778,60.30639],[-140.9925,66.00003],[-140.986,69.712],[-139.12052,69.47102],[-137.54636,68.99002],[-136.50358,68.89804],[-135.62576,69.31512],[-134.41464,69.62743],[-132.92925,69.50534],[-131.43136,69.94451],[-129.79471,70.19369],[-129.10773,69.77927],[-128.36156,70.01286],[-128.13817,70.48384],[-127.44712,70.37721],[-125.75632,69.48058],[-124.42483,70.1584],[-124.28968,69.39969],[-123.06108,69.56372],[-122.6835,69.85553],[-121.47226,69.79778],[-119.94288,69.37786],[-117.60268,69.01128],[-116.22643,68.84151],[-115.2469,68.90591],[-113.89794,68.3989],[-115.30489,67.90261],[-113.49727,67.68815],[-110.798,67.80612],[-109.94619,67.98104],[-108.8802,67.38144],[-107.79239,67.88736],[-108.81299,68.31164],[-108.16721,68.65392],[-106.95,68.7],[-106.15,68.8],[-105.34282,68.56122],[-104.33791,68.018],[-103.22115,68.09775],[-101.45433,67.64689],[-99.90195,67.80566],[-98.4432,67.78165],[-98.5586,68.40394],[-97.66948,68.57864],[-96.11991,68.23939],[-96.12588,67.29338],[-95.48943,68.0907],[-94.685,68.06383],[-94.23282,69.06903],[-95.30408,69.68571],[-96.47131,70.08976],[-96.39115,71.19482],[-95.2088,71.92053],[-93.88997,71.76015],[-92.87818,71.31869],[-91.51964,70.19129],[-92.40692,69.69997],[-90.5471,69.49766]]],[[[-114.16717,73.12145],[-114.66634,72.65277],[-112.44102,72.9554],[-111.05039,72.4504],[-109.92035,72.96113],[-109.00654,72.63335],[-108.18835,71.65089],[-107.68599,72.06548],[-108.39639,73.08953],[-107.51645,73.23598],[-106.52259,73.07601],[-105.40246,72.67259],[-104.77484,71.6984],[-104.46476,70.99297],[-102.78537,70.49776],[-100.98078,70.02432],[-101.08929,69.58447],[-102.73116,69.50402],[-102.09329,69.11962],[-102.43024,68.75282],[-104.24,68.91],[-105.96,69.18],[-107.12254,69.11922],[-109,68.78],[-111.534149,68.630059],[-113.3132,68.53554],[-113.85496,69.00744],[-115.22,69.28],[-116.10794,69.16821],[-117.34,69.96],[-116.67473,70.06655],[-115.13112,70.2373],[-113.72141,70.19237],[-112.4161,70.36638],[-114.35,70.6],[-116.48684,70.52045],[-117.9048,70.54056],[-118.43238,70.9092],[-116.11311,71.30918],[-117.65568,71.2952],[-119.40199,71.55859],[-118.56267,72.30785],[-117.86642,72.70594],[-115.18909,73.31459],[-114.16717,73.12145]]],[[[-104.5,73.42],[-105.38,72.76],[-106.94,73.46],[-106.6,73.6],[-105.26,73.64],[-104.5,73.42]]],[[[-76.34,73.102685],[-76.251404,72.826385],[-77.314438,72.855545],[-78.39167,72.876656],[-79.486252,72.742203],[-79.775833,72.802902],[-80.876099,73.333183],[-80.833885,73.693184],[-80.353058,73.75972],[-78.064438,73.651932],[-76.34,73.102685]]],[[[-86.562179,73.157447],[-85.774371,72.534126],[-84.850112,73.340278],[-82.31559,73.750951],[-80.600088,72.716544],[-80.748942,72.061907],[-78.770639,72.352173],[-77.824624,72.749617],[-75.605845,72.243678],[-74.228616,71.767144],[-74.099141,71.33084],[-72.242226,71.556925],[-71.200015,70.920013],[-68.786054,70.525024],[-67.91497,70.121948],[-66.969033,69.186087],[-68.805123,68.720198],[-66.449866,68.067163],[-64.862314,67.847539],[-63.424934,66.928473],[-61.851981,66.862121],[-62.163177,66.160251],[-63.918444,64.998669],[-65.14886,65.426033],[-66.721219,66.388041],[-68.015016,66.262726],[-68.141287,65.689789],[-67.089646,65.108455],[-65.73208,64.648406],[-65.320168,64.382737],[-64.669406,63.392927],[-65.013804,62.674185],[-66.275045,62.945099],[-68.783186,63.74567],[-67.369681,62.883966],[-66.328297,62.280075],[-66.165568,61.930897],[-68.877367,62.330149],[-71.023437,62.910708],[-72.235379,63.397836],[-71.886278,63.679989],[-73.378306,64.193963],[-74.834419,64.679076],[-74.818503,64.389093],[-77.70998,64.229542],[-78.555949,64.572906],[-77.897281,65.309192],[-76.018274,65.326969],[-73.959795,65.454765],[-74.293883,65.811771],[-73.944912,66.310578],[-72.651167,67.284576],[-72.92606,67.726926],[-73.311618,68.069437],[-74.843307,68.554627],[-76.869101,68.894736],[-76.228649,69.147769],[-77.28737,69.76954],[-78.168634,69.826488],[-78.957242,70.16688],[-79.492455,69.871808],[-81.305471,69.743185],[-84.944706,69.966634],[-87.060003,70.260001],[-88.681713,70.410741],[-89.51342,70.762038],[-88.467721,71.218186],[-89.888151,71.222552],[-90.20516,72.235074],[-89.436577,73.129464],[-88.408242,73.537889],[-85.826151,73.803816],[-86.562179,73.157447]]],[[[-100.35642,73.84389],[-99.16387,73.63339],[-97.38,73.76],[-97.12,73.47],[-98.05359,72.99052],[-96.54,72.56],[-96.72,71.66],[-98.35966,71.27285],[-99.32286,71.35639],[-100.01482,71.73827],[-102.5,72.51],[-102.48,72.83],[-100.43836,72.70588],[-101.54,73.36],[-100.35642,73.84389]]],[[[-93.196296,72.771992],[-94.269047,72.024596],[-95.409856,72.061881],[-96.033745,72.940277],[-96.018268,73.43743],[-95.495793,73.862417],[-94.503658,74.134907],[-92.420012,74.100025],[-90.509793,73.856732],[-92.003965,72.966244],[-93.196296,72.771992]]],[[[-120.46,71.383602],[-123.09219,70.90164],[-123.62,71.34],[-125.928949,71.868688],[-125.5,72.292261],[-124.80729,73.02256],[-123.94,73.68],[-124.91775,74.29275],[-121.53788,74.44893],[-120.10978,74.24135],[-117.55564,74.18577],[-116.58442,73.89607],[-115.51081,73.47519],[-116.76794,73.22292],[-119.22,72.52],[-120.46,71.82],[-120.46,71.383602]]],[[[-93.612756,74.979997],[-94.156909,74.592347],[-95.608681,74.666864],[-96.820932,74.927623],[-96.288587,75.377828],[-94.85082,75.647218],[-93.977747,75.29649],[-93.612756,74.979997]]],[[[-98.5,76.72],[-97.735585,76.25656],[-97.704415,75.74344],[-98.16,75],[-99.80874,74.89744],[-100.88366,75.05736],[-100.86292,75.64075],[-102.50209,75.5638],[-102.56552,76.3366],[-101.48973,76.30537],[-99.98349,76.64634],[-98.57699,76.58859],[-98.5,76.72]]],[[[-108.21141,76.20168],[-107.81943,75.84552],[-106.92893,76.01282],[-105.881,75.9694],[-105.70498,75.47951],[-106.31347,75.00527],[-109.7,74.85],[-112.22307,74.41696],[-113.74381,74.39427],[-113.87135,74.72029],[-111.79421,75.1625],[-116.31221,75.04343],[-117.7104,75.2222],[-116.34602,76.19903],[-115.40487,76.47887],[-112.59056,76.14134],[-110.81422,75.54919],[-109.0671,75.47321],[-110.49726,76.42982],[-109.5811,76.79417],[-108.54859,76.67832],[-108.21141,76.20168]]],[[[-94.684086,77.097878],[-93.573921,76.776296],[-91.605023,76.778518],[-90.741846,76.449597],[-90.969661,76.074013],[-89.822238,75.847774],[-89.187083,75.610166],[-87.838276,75.566189],[-86.379192,75.482421],[-84.789625,75.699204],[-82.753445,75.784315],[-81.128531,75.713983],[-80.057511,75.336849],[-79.833933,74.923127],[-80.457771,74.657304],[-81.948843,74.442459],[-83.228894,74.564028],[-86.097452,74.410032],[-88.15035,74.392307],[-89.764722,74.515555],[-92.422441,74.837758],[-92.768285,75.38682],[-92.889906,75.882655],[-93.893824,76.319244],[-95.962457,76.441381],[-97.121379,76.751078],[-96.745123,77.161389],[-94.684086,77.097878]]],[[[-116.198587,77.645287],[-116.335813,76.876962],[-117.106051,76.530032],[-118.040412,76.481172],[-119.899318,76.053213],[-121.499995,75.900019],[-122.854924,76.116543],[-122.854925,76.116543],[-121.157535,76.864508],[-119.103939,77.51222],[-117.570131,77.498319],[-116.198587,77.645287]]],[[[-93.840003,77.519997],[-94.295608,77.491343],[-96.169654,77.555111],[-96.436304,77.834629],[-94.422577,77.820005],[-93.720656,77.634331],[-93.840003,77.519997]]],[[[-110.186938,77.697015],[-112.051191,77.409229],[-113.534279,77.732207],[-112.724587,78.05105],[-111.264443,78.152956],[-109.854452,77.996325],[-110.186938,77.697015]]],[[[-109.663146,78.601973],[-110.881314,78.40692],[-112.542091,78.407902],[-112.525891,78.550555],[-111.50001,78.849994],[-110.963661,78.804441],[-109.663146,78.601973]]],[[[-95.830295,78.056941],[-97.309843,77.850597],[-98.124289,78.082857],[-98.552868,78.458105],[-98.631984,78.87193],[-97.337231,78.831984],[-96.754399,78.765813],[-95.559278,78.418315],[-95.830295,78.056941]]],[[[-100.060192,78.324754],[-99.670939,77.907545],[-101.30394,78.018985],[-102.949809,78.343229],[-105.176133,78.380332],[-104.210429,78.67742],[-105.41958,78.918336],[-105.492289,79.301594],[-103.529282,79.165349],[-100.825158,78.800462],[-100.060192,78.324754]]],[[[-87.02,79.66],[-85.81435,79.3369],[-87.18756,79.0393],[-89.03535,78.28723],[-90.80436,78.21533],[-92.87669,78.34333],[-93.95116,78.75099],[-93.93574,79.11373],[-93.14524,79.3801],[-94.974,79.37248],[-96.07614,79.70502],[-96.70972,80.15777],[-96.01644,80.60233],[-95.32345,80.90729],[-94.29843,80.97727],[-94.73542,81.20646],[-92.40984,81.25739],[-91.13289,80.72345],[-89.45,80.509322],[-87.81,80.32],[-87.02,79.66]]],[[[-68.5,83.106322],[-65.82735,83.02801],[-63.68,82.9],[-61.85,82.6286],[-61.89388,82.36165],[-64.334,81.92775],[-66.75342,81.72527],[-67.65755,81.50141],[-65.48031,81.50657],[-67.84,80.9],[-69.4697,80.61683],[-71.18,79.8],[-73.2428,79.63415],[-73.88,79.430162],[-76.90773,79.32309],[-75.52924,79.19766],[-76.22046,79.01907],[-75.39345,78.52581],[-76.34354,78.18296],[-77.88851,77.89991],[-78.36269,77.50859],[-79.75951,77.20968],[-79.61965,76.98336],[-77.91089,77.022045],[-77.88911,76.777955],[-80.56125,76.17812],[-83.17439,76.45403],[-86.11184,76.29901],[-87.6,76.42],[-89.49068,76.47239],[-89.6161,76.95213],[-87.76739,77.17833],[-88.26,77.9],[-87.65,77.970222],[-84.97634,77.53873],[-86.34,78.18],[-87.96192,78.37181],[-87.15198,78.75867],[-85.37868,78.9969],[-85.09495,79.34543],[-86.50734,79.73624],[-86.93179,80.25145],[-84.19844,80.20836],[-83.408696,80.1],[-81.84823,80.46442],[-84.1,80.58],[-87.59895,80.51627],[-89.36663,80.85569],[-90.2,81.26],[-91.36786,81.5531],[-91.58702,81.89429],[-90.1,82.085],[-88.93227,82.11751],[-86.97024,82.27961],[-85.5,82.652273],[-84.260005,82.6],[-83.18,82.32],[-82.42,82.86],[-81.1,83.02],[-79.30664,83.13056],[-76.25,83.172059],[-75.71878,83.06404],[-72.83153,83.23324],[-70.665765,83.169781],[-68.5,83.106322]]]]},"type":"Feature","id":"CAN","properties":{"name":"Canada","id":"CAN","centroid":[-75.42,45.27]}},{"geometry":{"type":"Polygon","coordinates":[[[9.594226,47.525058],[9.632932,47.347601],[9.47997,47.10281],[9.932448,46.920728],[10.442701,46.893546],[10.363378,46.483571],[9.922837,46.314899],[9.182882,46.440215],[8.966306,46.036932],[8.489952,46.005151],[8.31663,46.163642],[7.755992,45.82449],[7.273851,45.776948],[6.843593,45.991147],[6.5001,46.429673],[6.022609,46.27299],[6.037389,46.725779],[6.768714,47.287708],[6.736571,47.541801],[7.192202,47.449766],[7.466759,47.620582],[8.317301,47.61358],[8.522612,47.830828],[9.594226,47.525058]]]},"type":"Feature","id":"CHE","properties":{"name":"Switzerland","id":"CHE","centroid":[7.28,46.57]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.63401,-52.63637],[-68.63335,-54.8695],[-67.56244,-54.87001],[-66.95992,-54.89681],[-67.29103,-55.30124],[-68.14863,-55.61183],[-68.639991,-55.580018],[-69.2321,-55.49906],[-69.95809,-55.19843],[-71.00568,-55.05383],[-72.2639,-54.49514],[-73.2852,-53.95752],[-74.66253,-52.83749],[-73.8381,-53.04743],[-72.43418,-53.7154],[-71.10773,-54.07433],[-70.59178,-53.61583],[-70.26748,-52.93123],[-69.34565,-52.5183],[-68.63401,-52.63637]]],[[[-68.219913,-21.494347],[-67.82818,-22.872919],[-67.106674,-22.735925],[-66.985234,-22.986349],[-67.328443,-24.025303],[-68.417653,-24.518555],[-68.386001,-26.185016],[-68.5948,-26.506909],[-68.295542,-26.89934],[-69.001235,-27.521214],[-69.65613,-28.459141],[-70.01355,-29.367923],[-69.919008,-30.336339],[-70.535069,-31.36501],[-70.074399,-33.09121],[-69.814777,-33.273886],[-69.817309,-34.193571],[-70.388049,-35.169688],[-70.364769,-36.005089],[-71.121881,-36.658124],[-71.118625,-37.576827],[-70.814664,-38.552995],[-71.413517,-38.916022],[-71.680761,-39.808164],[-71.915734,-40.832339],[-71.746804,-42.051386],[-72.148898,-42.254888],[-71.915424,-43.408565],[-71.464056,-43.787611],[-71.793623,-44.207172],[-71.329801,-44.407522],[-71.222779,-44.784243],[-71.659316,-44.973689],[-71.552009,-45.560733],[-71.917258,-46.884838],[-72.447355,-47.738533],[-72.331161,-48.244238],[-72.648247,-48.878618],[-73.415436,-49.318436],[-73.328051,-50.378785],[-72.975747,-50.74145],[-72.309974,-50.67701],[-72.329404,-51.425956],[-71.914804,-52.009022],[-69.498362,-52.142761],[-68.571545,-52.299444],[-69.461284,-52.291951],[-69.94278,-52.537931],[-70.845102,-52.899201],[-71.006332,-53.833252],[-71.429795,-53.856455],[-72.557943,-53.53141],[-73.702757,-52.835069],[-73.702757,-52.83507],[-74.946763,-52.262754],[-75.260026,-51.629355],[-74.976632,-51.043396],[-75.479754,-50.378372],[-75.608015,-48.673773],[-75.18277,-47.711919],[-74.126581,-46.939253],[-75.644395,-46.647643],[-74.692154,-45.763976],[-74.351709,-44.103044],[-73.240356,-44.454961],[-72.717804,-42.383356],[-73.3889,-42.117532],[-73.701336,-43.365776],[-74.331943,-43.224958],[-74.017957,-41.794813],[-73.677099,-39.942213],[-73.217593,-39.258689],[-73.505559,-38.282883],[-73.588061,-37.156285],[-73.166717,-37.12378],[-72.553137,-35.50884],[-71.861732,-33.909093],[-71.43845,-32.418899],[-71.668721,-30.920645],[-71.370083,-30.095682],[-71.489894,-28.861442],[-70.905124,-27.64038],[-70.724954,-25.705924],[-70.403966,-23.628997],[-70.091246,-21.393319],[-70.16442,-19.756468],[-70.372572,-18.347975],[-69.858444,-18.092694],[-69.590424,-17.580012],[-69.100247,-18.260125],[-68.966818,-18.981683],[-68.442225,-19.405068],[-68.757167,-20.372658],[-68.219913,-21.494347]]]]},"type":"Feature","id":"CHL","properties":{"name":"Chile","id":"CHL","centroid":[-70.4,-33.24]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[121.777818,24.394274],[121.175632,22.790857],[120.74708,21.970571],[120.220083,22.814861],[120.106189,23.556263],[120.69468,24.538451],[121.495044,25.295459],[121.951244,24.997596],[121.777818,24.394274]],[[110.339188,18.678395],[109.47521,18.197701],[108.655208,18.507682],[108.626217,19.367888],[109.119056,19.821039],[110.211599,20.101254],[110.786551,20.077534],[111.010051,19.69593],[110.570647,19.255879],[110.339188,18.678395]]],[[[127.657407,49.76027],[129.397818,49.4406],[130.582293,48.729687],[130.987282,47.790132],[132.506672,47.78897],[133.373596,48.183442],[135.026311,48.47823],[134.500814,47.57844],[134.112362,47.212467],[133.769644,46.116927],[133.097127,45.144066],[131.883454,45.321162],[131.025212,44.967953],[131.288555,44.11152],[131.144688,42.92999],[130.633866,42.903015],[130.640016,42.395009],[129.994267,42.985387],[129.596669,42.424982],[128.052215,41.994285],[128.208433,41.466772],[127.343783,41.503152],[126.869083,41.816569],[126.182045,41.107336],[125.079942,40.569824],[124.265625,39.928493],[122.86757,39.637788],[122.131388,39.170452],[121.054554,38.897471],[121.585995,39.360854],[121.376757,39.750261],[122.168595,40.422443],[121.640359,40.94639],[120.768629,40.593388],[119.639602,39.898056],[119.023464,39.252333],[118.042749,39.204274],[117.532702,38.737636],[118.059699,38.061476],[118.87815,37.897325],[118.911636,37.448464],[119.702802,37.156389],[120.823457,37.870428],[121.711259,37.481123],[122.357937,37.454484],[122.519995,36.930614],[121.104164,36.651329],[120.637009,36.11144],[119.664562,35.609791],[119.151208,34.909859],[120.227525,34.360332],[120.620369,33.376723],[121.229014,32.460319],[121.908146,31.692174],[121.891919,30.949352],[121.264257,30.676267],[121.503519,30.142915],[122.092114,29.83252],[121.938428,29.018022],[121.684439,28.225513],[121.125661,28.135673],[120.395473,27.053207],[119.585497,25.740781],[118.656871,24.547391],[117.281606,23.624501],[115.890735,22.782873],[114.763827,22.668074],[114.152547,22.22376],[113.80678,22.54834],[113.241078,22.051367],[111.843592,21.550494],[110.785466,21.397144],[110.444039,20.341033],[109.889861,20.282457],[109.627655,21.008227],[109.864488,21.395051],[108.522813,21.715212],[108.05018,21.55238],[107.04342,21.811899],[106.567273,22.218205],[106.725403,22.794268],[105.811247,22.976892],[105.329209,23.352063],[104.476858,22.81915],[103.504515,22.703757],[102.706992,22.708795],[102.170436,22.464753],[101.652018,22.318199],[101.80312,21.174367],[101.270026,21.201652],[101.180005,21.436573],[101.150033,21.849984],[100.416538,21.558839],[99.983489,21.742937],[99.240899,22.118314],[99.531992,22.949039],[98.898749,23.142722],[98.660262,24.063286],[97.60472,23.897405],[97.724609,25.083637],[98.671838,25.918703],[98.712094,26.743536],[98.68269,27.508812],[98.246231,27.747221],[97.911988,28.335945],[97.327114,28.261583],[97.402561,27.882536],[97.051989,27.699059],[95.767822,28.139816],[94.306641,27.547242],[93.746338,27.108034],[92.033484,26.83831],[92.103712,27.452614],[91.696657,27.771742],[91.258854,28.040614],[90.730514,28.064954],[90.015829,28.296439],[89.47581,28.042759],[88.814248,27.299316],[88.730326,28.086865],[88.120441,27.876542],[86.954517,27.974262],[85.82332,28.203576],[85.011638,28.642774],[84.23458,28.839894],[83.898993,29.320226],[83.337115,29.463732],[82.327513,30.115268],[81.525804,30.422717],[81.111256,30.183481],[79.721367,30.882715],[78.738894,31.515906],[78.458446,32.618164],[79.176129,32.48378],[79.208892,32.994395],[78.811086,33.506198],[78.912269,34.321936],[77.837451,35.49401],[76.192848,35.898403],[75.896897,36.666806],[75.158028,37.133031],[74.980002,37.41999],[74.829986,37.990007],[74.864816,38.378846],[74.257514,38.606507],[73.928852,38.505815],[73.675379,39.431237],[73.960013,39.660008],[73.822244,39.893973],[74.776862,40.366425],[75.467828,40.562072],[76.526368,40.427946],[76.904484,41.066486],[78.187197,41.185316],[78.543661,41.582243],[80.11943,42.123941],[80.25999,42.349999],[80.18015,42.920068],[80.866206,43.180362],[79.966106,44.917517],[81.947071,45.317027],[82.458926,45.53965],[83.180484,47.330031],[85.16429,47.000956],[85.720484,47.452969],[85.768233,48.455751],[86.598776,48.549182],[87.35997,49.214981],[87.751264,49.297198],[88.013832,48.599463],[88.854298,48.069082],[90.280826,47.693549],[90.970809,46.888146],[90.585768,45.719716],[90.94554,45.286073],[92.133891,45.115076],[93.480734,44.975472],[94.688929,44.352332],[95.306875,44.241331],[95.762455,43.319449],[96.349396,42.725635],[97.451757,42.74889],[99.515817,42.524691],[100.845866,42.663804],[101.83304,42.514873],[103.312278,41.907468],[104.522282,41.908347],[104.964994,41.59741],[106.129316,42.134328],[107.744773,42.481516],[109.243596,42.519446],[110.412103,42.871234],[111.129682,43.406834],[111.829588,43.743118],[111.667737,44.073176],[111.348377,44.457442],[111.873306,45.102079],[112.436062,45.011646],[113.463907,44.808893],[114.460332,45.339817],[115.985096,45.727235],[116.717868,46.388202],[117.421701,46.672733],[118.874326,46.805412],[119.66327,46.69268],[119.772824,47.048059],[118.866574,47.74706],[118.064143,48.06673],[117.295507,47.697709],[116.308953,47.85341],[115.742837,47.726545],[115.485282,48.135383],[116.191802,49.134598],[116.678801,49.888531],[117.879244,49.510983],[119.288461,50.142883],[119.279366,50.582908],[120.18205,51.643566],[120.738191,51.964115],[120.725789,52.516226],[120.177089,52.753886],[121.003085,53.251401],[122.245748,53.431726],[123.571507,53.458804],[125.068211,53.161045],[125.946349,52.792799],[126.564399,51.784255],[126.939157,51.353894],[127.287456,50.739797],[127.657407,49.76027]]],[[[122.50662231445312,23.467723846435547],[122.78874206542969,24.572216033935547],[122.50662231445312,23.467723846435547]]],[[[121.17402648925781,20.826547622680664],[121.91168975830078,21.6975154876709],[121.17402648925781,20.826547622680664]]],[[[120.003662109375,19.03096327846469],[119.47631835937499,18.020527657852337],[120.003662109375,19.03096327846469]]],[[[119.06982421874999,16.024695711685315],[119.05883789062501,15.040295996106765],[119.06982421874999,16.024695711685315]]],[[[118.98193359375,11.953349393643416],[118.531494140625,10.908830155722107],[118.98193359375,11.953349393643416]]],[[[116.23535156249999,7.993957436359008],[115.55419921875,7.18810087117902],[116.23535156249999,7.993957436359008]]],[[[112.8515625,3.743671274749731],[111.785888671875,3.4147247646241174],[112.8515625,3.743671274749731]]],[[[108.30322265624999,5.998533174329341],[108.226318359375,7.089990476360545],[108.30322265624999,5.998533174329341]]],[[[110.06103515625,11.26461221250444],[110.31372070312499,12.264863532756566],[110.06103515625,11.26461221250444]]],[[[109.852294921875,15.178180945596376],[109.302978515625,16.214674588248556],[109.852294921875,15.178180945596376]]],[[[124.54185556547829,25.89184586734392],[124.53009788411983,25.91074214095596],[124.51834020276122,25.930898166142125],[124.54101573109565,25.946015185031744],[124.566804,25.941563],[124.584666,25.908731],[124.56873026572663,25.884707275090506],[124.54185556547829,25.89184586734392]]],[[[123.445178,25.726102],[123.43873310372739,25.753273194189074],[123.46896714150662,25.78308731477693],[123.51347836379274,25.768810130270065],[123.51095886064446,25.71464081258226],[123.46854722431526,25.703722965606424],[123.445178,25.726102]]],[[[119.646064,23.550928],[119.609108,23.503738],[119.578927,23.502641],[119.562297,23.530627],[119.566608,23.584937],[119.601717,23.575613],[119.61034,23.604132],[119.678093,23.600294],[119.691028,23.547087],[119.646064,23.550928]]],[[[123.65247095413902,25.910742140955957],[123.67598631685621,25.947274936605876],[123.70580043744403,25.935517255247277],[123.71503861565435,25.912421809721465],[123.69656225923376,25.8788284344112],[123.66968755898553,25.88680686104739],[123.65247095413902,25.910742140955957]]],[[[119.506246,23.625518],[119.52534,23.62497],[119.519181,23.559705],[119.47237,23.556962],[119.506246,23.577259],[119.506246,23.625518]]],[[[119.497623,23.38679],[119.516717,23.349982],[119.495159,23.349982],[119.497623,23.38679]]],[[[119.557369,23.666634],[119.586318,23.675952],[119.615268,23.661153],[119.608492,23.620035],[119.557369,23.666634]]],[[[122.066706,25.6247],[122.092575,25.639268],[122.087032,25.61067],[122.066706,25.6247]]],[[[121.468013,22.67687],[121.514824,22.676318],[121.513592,22.631582],[121.474788,22.643734],[121.468013,22.67687]]],[[[121.510513,22.086972],[121.575802,22.0842],[121.575186,22.037055],[121.604752,22.022631],[121.594281,21.995443],[121.533918,22.022076],[121.507433,22.048704],[121.510513,22.086972]]],[[[122.097503,25.499987],[122.122141,25.495666],[122.110438,25.465952],[122.097503,25.499987]]],[[[119.421247,23.216949],[119.453275,23.216399],[119.436029,23.186146],[119.421247,23.216949]]],[[[120.355011,22.327439],[120.383344,22.355669],[120.395663,22.342385],[120.355011,22.327439]]]]},"type":"Feature","id":"CHN","properties":{"name":"China","id":"CHN","centroid":[116.2,39.55]}},{"geometry":{"type":"Polygon","coordinates":[[[-2.856125,4.994476],[-3.311084,4.984296],[-4.00882,5.179813],[-4.649917,5.168264],[-5.834496,4.993701],[-6.528769,4.705088],[-7.518941,4.338288],[-7.712159,4.364566],[-7.635368,5.188159],[-7.539715,5.313345],[-7.570153,5.707352],[-7.993693,6.12619],[-8.311348,6.193033],[-8.60288,6.467564],[-8.385452,6.911801],[-8.485446,7.395208],[-8.439298,7.686043],[-8.280703,7.68718],[-8.221792,8.123329],[-8.299049,8.316444],[-8.203499,8.455453],[-7.8321,8.575704],[-8.079114,9.376224],[-8.309616,9.789532],[-8.229337,10.12902],[-8.029944,10.206535],[-7.89959,10.297382],[-7.622759,10.147236],[-6.850507,10.138994],[-6.666461,10.430811],[-6.493965,10.411303],[-6.205223,10.524061],[-6.050452,10.096361],[-5.816926,10.222555],[-5.404342,10.370737],[-4.954653,10.152714],[-4.779884,9.821985],[-4.330247,9.610835],[-3.980449,9.862344],[-3.511899,9.900326],[-2.827496,9.642461],[-2.56219,8.219628],[-2.983585,7.379705],[-3.24437,6.250472],[-2.810701,5.389051],[-2.856125,4.994476]]]},"type":"Feature","id":"CIV","properties":{"name":"Ivory Coast","id":"CIV","centroid":[-5.17,6.49]}},{"geometry":{"type":"Polygon","coordinates":[[[13.075822,2.267097],[12.951334,2.321616],[12.35938,2.192812],[11.751665,2.326758],[11.276449,2.261051],[9.649158,2.283866],[9.795196,3.073404],[9.404367,3.734527],[8.948116,3.904129],[8.744924,4.352215],[8.488816,4.495617],[8.500288,4.771983],[8.757533,5.479666],[9.233163,6.444491],[9.522706,6.453482],[10.118277,7.03877],[10.497375,7.055358],[11.058788,6.644427],[11.745774,6.981383],[11.839309,7.397042],[12.063946,7.799808],[12.218872,8.305824],[12.753672,8.717763],[12.955468,9.417772],[13.1676,9.640626],[13.308676,10.160362],[13.57295,10.798566],[14.415379,11.572369],[14.468192,11.904752],[14.577178,12.085361],[14.181336,12.483657],[14.213531,12.802035],[14.495787,12.859396],[14.893386,12.219048],[14.960152,11.555574],[14.923565,10.891325],[15.467873,9.982337],[14.909354,9.992129],[14.627201,9.920919],[14.171466,10.021378],[13.954218,9.549495],[14.544467,8.965861],[14.979996,8.796104],[15.120866,8.38215],[15.436092,7.692812],[15.27946,7.421925],[14.776545,6.408498],[14.53656,6.226959],[14.459407,5.451761],[14.558936,5.030598],[14.478372,4.732605],[14.950953,4.210389],[15.03622,3.851367],[15.405396,3.335301],[15.862732,3.013537],[15.907381,2.557389],[16.012852,2.26764],[15.940919,1.727673],[15.146342,1.964015],[14.337813,2.227875],[13.075822,2.267097]]]},"type":"Feature","id":"CMR","properties":{"name":"Cameroon","id":"CMR","centroid":[11.35,3.5]}},{"geometry":{"type":"Polygon","coordinates":[[[30.83386,3.509166],[30.773347,2.339883],[31.174149,2.204465],[30.85267,1.849396],[30.468508,1.583805],[30.086154,1.062313],[29.875779,0.59738],[29.819503,-0.20531],[29.587838,-0.587406],[29.579466,-1.341313],[29.291887,-1.620056],[29.254835,-2.21511],[29.117479,-2.292211],[29.024926,-2.839258],[29.276384,-3.293907],[29.339998,-4.499983],[29.519987,-5.419979],[29.419993,-5.939999],[29.620032,-6.520015],[30.199997,-7.079981],[30.740015,-8.340007],[30.346086,-8.238257],[29.002912,-8.407032],[28.734867,-8.526559],[28.449871,-9.164918],[28.673682,-9.605925],[28.49607,-10.789884],[28.372253,-11.793647],[28.642417,-11.971569],[29.341548,-12.360744],[29.616001,-12.178895],[29.699614,-13.257227],[28.934286,-13.248958],[28.523562,-12.698604],[28.155109,-12.272481],[27.388799,-12.132747],[27.16442,-11.608748],[26.553088,-11.92444],[25.75231,-11.784965],[25.418118,-11.330936],[24.78317,-11.238694],[24.314516,-11.262826],[24.257155,-10.951993],[23.912215,-10.926826],[23.456791,-10.867863],[22.837345,-11.017622],[22.402798,-10.993075],[22.155268,-11.084801],[22.208753,-9.894796],[21.875182,-9.523708],[21.801801,-8.908707],[21.949131,-8.305901],[21.746456,-7.920085],[21.728111,-7.290872],[20.514748,-7.299606],[20.601823,-6.939318],[20.091622,-6.94309],[20.037723,-7.116361],[19.417502,-7.155429],[19.166613,-7.738184],[19.016752,-7.988246],[18.464176,-7.847014],[18.134222,-7.987678],[17.47297,-8.068551],[17.089996,-7.545689],[16.860191,-7.222298],[16.57318,-6.622645],[16.326528,-5.87747],[13.375597,-5.864241],[13.024869,-5.984389],[12.735171,-5.965682],[12.322432,-6.100092],[12.182337,-5.789931],[12.436688,-5.684304],[12.468004,-5.248362],[12.631612,-4.991271],[12.995517,-4.781103],[13.25824,-4.882957],[13.600235,-4.500138],[14.144956,-4.510009],[14.209035,-4.793092],[14.582604,-4.970239],[15.170992,-4.343507],[15.75354,-3.855165],[16.00629,-3.535133],[15.972803,-2.712392],[16.407092,-1.740927],[16.865307,-1.225816],[17.523716,-0.74383],[17.638645,-0.424832],[17.663553,-0.058084],[17.82654,0.288923],[17.774192,0.855659],[17.898835,1.741832],[18.094276,2.365722],[18.393792,2.900443],[18.453065,3.504386],[18.542982,4.201785],[18.932312,4.709506],[19.467784,5.031528],[20.290679,4.691678],[20.927591,4.322786],[21.659123,4.224342],[22.405124,4.02916],[22.704124,4.633051],[22.84148,4.710126],[23.297214,4.609693],[24.410531,5.108784],[24.805029,4.897247],[25.128833,4.927245],[25.278798,5.170408],[25.650455,5.256088],[26.402761,5.150875],[27.044065,5.127853],[27.374226,5.233944],[27.979977,4.408413],[28.428994,4.287155],[28.696678,4.455077],[29.159078,4.389267],[29.715995,4.600805],[29.9535,4.173699],[30.83386,3.509166]]]},"type":"Feature","id":"COD","properties":{"name":"Democratic Republic of the Congo","id":"COD","centroid":[15.15,-4.2]}},{"geometry":{"type":"Polygon","coordinates":[[[12.995517,-4.781103],[12.62076,-4.438023],[12.318608,-4.60623],[11.914963,-5.037987],[11.093773,-3.978827],[11.855122,-3.426871],[11.478039,-2.765619],[11.820964,-2.514161],[12.495703,-2.391688],[12.575284,-1.948511],[13.109619,-2.42874],[13.992407,-2.470805],[14.29921,-1.998276],[14.425456,-1.333407],[14.316418,-0.552627],[13.843321,0.038758],[14.276266,1.19693],[14.026669,1.395677],[13.282631,1.314184],[13.003114,1.830896],[13.075822,2.267097],[14.337813,2.227875],[15.146342,1.964015],[15.940919,1.727673],[16.012852,2.26764],[16.537058,3.198255],[17.133042,3.728197],[17.8099,3.560196],[18.453065,3.504386],[18.393792,2.900443],[18.094276,2.365722],[17.898835,1.741832],[17.774192,0.855659],[17.82654,0.288923],[17.663553,-0.058084],[17.638645,-0.424832],[17.523716,-0.74383],[16.865307,-1.225816],[16.407092,-1.740927],[15.972803,-2.712392],[16.00629,-3.535133],[15.75354,-3.855165],[15.170992,-4.343507],[14.582604,-4.970239],[14.209035,-4.793092],[14.144956,-4.510009],[13.600235,-4.500138],[13.25824,-4.882957],[12.995517,-4.781103]]]},"type":"Feature","id":"COG","properties":{"name":"Republic of the Congo","id":"COG","centroid":[15.12,-4.09]}},{"geometry":{"type":"Polygon","coordinates":[[[-75.373223,-0.152032],[-75.801466,0.084801],[-76.292314,0.416047],[-76.57638,0.256936],[-77.424984,0.395687],[-77.668613,0.825893],[-77.855061,0.809925],[-78.855259,1.380924],[-78.990935,1.69137],[-78.617831,1.766404],[-78.662118,2.267355],[-78.42761,2.629556],[-77.931543,2.696606],[-77.510431,3.325017],[-77.12769,3.849636],[-77.496272,4.087606],[-77.307601,4.667984],[-77.533221,5.582812],[-77.318815,5.845354],[-77.476661,6.691116],[-77.881571,7.223771],[-77.753414,7.70984],[-77.431108,7.638061],[-77.242566,7.935278],[-77.474723,8.524286],[-77.353361,8.670505],[-76.836674,8.638749],[-76.086384,9.336821],[-75.6746,9.443248],[-75.664704,9.774003],[-75.480426,10.61899],[-74.906895,11.083045],[-74.276753,11.102036],[-74.197223,11.310473],[-73.414764,11.227015],[-72.627835,11.731972],[-72.238195,11.95555],[-71.75409,12.437303],[-71.399822,12.376041],[-71.137461,12.112982],[-71.331584,11.776284],[-71.973922,11.608672],[-72.227575,11.108702],[-72.614658,10.821975],[-72.905286,10.450344],[-73.027604,9.73677],[-73.304952,9.152],[-72.78873,9.085027],[-72.660495,8.625288],[-72.439862,8.405275],[-72.360901,8.002638],[-72.479679,7.632506],[-72.444487,7.423785],[-72.198352,7.340431],[-71.960176,6.991615],[-70.674234,7.087785],[-70.093313,6.960376],[-69.38948,6.099861],[-68.985319,6.206805],[-68.265052,6.153268],[-67.695087,6.267318],[-67.34144,6.095468],[-67.521532,5.55687],[-67.744697,5.221129],[-67.823012,4.503937],[-67.621836,3.839482],[-67.337564,3.542342],[-67.303173,3.318454],[-67.809938,2.820655],[-67.447092,2.600281],[-67.181294,2.250638],[-66.876326,1.253361],[-67.065048,1.130112],[-67.259998,1.719999],[-67.53781,2.037163],[-67.868565,1.692455],[-69.816973,1.714805],[-69.804597,1.089081],[-69.218638,0.985677],[-69.252434,0.602651],[-69.452396,0.706159],[-70.015566,0.541414],[-70.020656,-0.185156],[-69.577065,-0.549992],[-69.420486,-1.122619],[-69.444102,-1.556287],[-69.893635,-4.298187],[-70.394044,-3.766591],[-70.692682,-3.742872],[-70.047709,-2.725156],[-70.813476,-2.256865],[-71.413646,-2.342802],[-71.774761,-2.16979],[-72.325787,-2.434218],[-73.070392,-2.308954],[-73.659504,-1.260491],[-74.122395,-1.002833],[-74.441601,-0.53082],[-75.106625,-0.057205],[-75.373223,-0.152032]]]},"type":"Feature","id":"COL","properties":{"name":"Colombia","id":"COL","centroid":[-74,4.34]}},{"geometry":{"type":"Polygon","coordinates":[[[-82.965783,8.225028],[-83.508437,8.446927],[-83.711474,8.656836],[-83.596313,8.830443],[-83.632642,9.051386],[-83.909886,9.290803],[-84.303402,9.487354],[-84.647644,9.615537],[-84.713351,9.908052],[-84.97566,10.086723],[-84.911375,9.795992],[-85.110923,9.55704],[-85.339488,9.834542],[-85.660787,9.933347],[-85.797445,10.134886],[-85.791709,10.439337],[-85.659314,10.754331],[-85.941725,10.895278],[-85.71254,11.088445],[-85.561852,11.217119],[-84.903003,10.952303],[-84.673069,11.082657],[-84.355931,10.999226],[-84.190179,10.79345],[-83.895054,10.726839],[-83.655612,10.938764],[-83.40232,10.395438],[-83.015677,9.992982],[-82.546196,9.566135],[-82.932891,9.476812],[-82.927155,9.07433],[-82.719183,8.925709],[-82.868657,8.807266],[-82.829771,8.626295],[-82.913176,8.423517],[-82.965783,8.225028]]]},"type":"Feature","id":"CRI","properties":{"name":"Costa Rica","id":"CRI","centroid":[-84.02,9.55]}},{"geometry":{"type":"Polygon","coordinates":[[[-82.268151,23.188611],[-81.404457,23.117271],[-80.618769,23.10598],[-79.679524,22.765303],[-79.281486,22.399202],[-78.347434,22.512166],[-77.993296,22.277194],[-77.146422,21.657851],[-76.523825,21.20682],[-76.19462,21.220565],[-75.598222,21.016624],[-75.67106,20.735091],[-74.933896,20.693905],[-74.178025,20.284628],[-74.296648,20.050379],[-74.961595,19.923435],[-75.63468,19.873774],[-76.323656,19.952891],[-77.755481,19.855481],[-77.085108,20.413354],[-77.492655,20.673105],[-78.137292,20.739949],[-78.482827,21.028613],[-78.719867,21.598114],[-79.285,21.559175],[-80.217475,21.827324],[-80.517535,22.037079],[-81.820943,22.192057],[-82.169992,22.387109],[-81.795002,22.636965],[-82.775898,22.68815],[-83.494459,22.168518],[-83.9088,22.154565],[-84.052151,21.910575],[-84.54703,21.801228],[-84.974911,21.896028],[-84.447062,22.20495],[-84.230357,22.565755],[-83.77824,22.788118],[-83.267548,22.983042],[-82.510436,23.078747],[-82.268151,23.188611]]]},"type":"Feature","id":"CUB","properties":{"name":"Cuba","id":"CUB","centroid":[-82.21,23.08]}},{"geometry":{"type":"Polygon","coordinates":[[[32.73178,35.140026],[32.802474,35.145504],[32.946961,35.386703],[33.667227,35.373216],[34.576474,35.671596],[33.900804,35.245756],[34.004881,34.978098],[32.979827,34.571869],[32.490296,34.701655],[32.256667,35.103232],[32.73178,35.140026]]]},"type":"Feature","id":"CYP","properties":{"name":"Cyprus","id":"CYP","centroid":[33.25,35.1]}},{"geometry":{"type":"Polygon","coordinates":[[[16.960288,48.596982],[16.499283,48.785808],[16.029647,48.733899],[15.253416,49.039074],[14.901447,48.964402],[14.338898,48.555305],[13.595946,48.877172],[13.031329,49.307068],[12.521024,49.547415],[12.415191,49.969121],[12.240111,50.266338],[12.966837,50.484076],[13.338132,50.733234],[14.056228,50.926918],[14.307013,51.117268],[14.570718,51.002339],[15.016996,51.106674],[15.490972,50.78473],[16.238627,50.697733],[16.176253,50.422607],[16.719476,50.215747],[16.868769,50.473974],[17.554567,50.362146],[17.649445,50.049038],[18.392914,49.988629],[18.853144,49.49623],[18.554971,49.495015],[18.399994,49.315001],[18.170498,49.271515],[18.104973,49.043983],[17.913512,48.996493],[17.886485,48.903475],[17.545007,48.800019],[17.101985,48.816969],[16.960288,48.596982]]]},"type":"Feature","id":"CZE","properties":{"name":"Czech Republic","id":"CZE","centroid":[14.26,50.05]}},{"geometry":{"type":"Polygon","coordinates":[[[9.921906,54.983104],[9.93958,54.596642],[10.950112,54.363607],[10.939467,54.008693],[11.956252,54.196486],[12.51844,54.470371],[13.647467,54.075511],[14.119686,53.757029],[14.353315,53.248171],[14.074521,52.981263],[14.4376,52.62485],[14.685026,52.089947],[14.607098,51.745188],[15.016996,51.106674],[14.570718,51.002339],[14.307013,51.117268],[14.056228,50.926918],[13.338132,50.733234],[12.966837,50.484076],[12.240111,50.266338],[12.415191,49.969121],[12.521024,49.547415],[13.031329,49.307068],[13.595946,48.877172],[13.243357,48.416115],[12.884103,48.289146],[13.025851,47.637584],[12.932627,47.467646],[12.62076,47.672388],[12.141357,47.703083],[11.426414,47.523766],[10.544504,47.566399],[10.402084,47.302488],[9.896068,47.580197],[9.594226,47.525058],[8.522612,47.830828],[8.317301,47.61358],[7.466759,47.620582],[7.593676,48.333019],[8.099279,49.017784],[6.65823,49.201958],[6.18632,49.463803],[6.242751,49.902226],[6.043073,50.128052],[6.156658,50.803721],[5.988658,51.851616],[6.589397,51.852029],[6.84287,52.22844],[7.092053,53.144043],[6.90514,53.482162],[7.100425,53.693932],[7.936239,53.748296],[8.121706,53.527792],[8.800734,54.020786],[8.572118,54.395646],[8.526229,54.962744],[9.282049,54.830865],[9.921906,54.983104]]]},"type":"Feature","id":"DEU","properties":{"name":"Germany","id":"DEU","centroid":[13.25,52.3]}},{"geometry":{"type":"Polygon","coordinates":[[[43.081226,12.699639],[43.317852,12.390148],[43.286381,11.974928],[42.715874,11.735641],[43.145305,11.46204],[42.776852,10.926879],[42.55493,11.10511],[42.31414,11.0342],[41.75557,11.05091],[41.73959,11.35511],[41.66176,11.6312],[42,12.1],[42.35156,12.54223],[42.779642,12.455416],[43.081226,12.699639]]]},"type":"Feature","id":"DJI","properties":{"name":"Djibouti","id":"DJI","centroid":[42.2,11.08]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[12.690006,55.609991],[12.089991,54.800015],[11.043543,55.364864],[10.903914,55.779955],[12.370904,56.111407],[12.690006,55.609991]]],[[[10.912182,56.458621],[10.667804,56.081383],[10.369993,56.190007],[9.649985,55.469999],[9.921906,54.983104],[9.282049,54.830865],[8.526229,54.962744],[8.120311,55.517723],[8.089977,56.540012],[8.256582,56.809969],[8.543438,57.110003],[9.424469,57.172066],[9.775559,57.447941],[10.580006,57.730017],[10.546106,57.215733],[10.25,56.890016],[10.369993,56.609982],[10.912182,56.458621]]]]},"type":"Feature","id":"DNK","properties":{"name":"Denmark","id":"DNK","centroid":[12.34,55.41]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.712361,19.714456],[-71.587304,19.884911],[-70.806706,19.880286],[-70.214365,19.622885],[-69.950815,19.648],[-69.76925,19.293267],[-69.222126,19.313214],[-69.254346,19.015196],[-68.809412,18.979074],[-68.317943,18.612198],[-68.689316,18.205142],[-69.164946,18.422648],[-69.623988,18.380713],[-69.952934,18.428307],[-70.133233,18.245915],[-70.517137,18.184291],[-70.669298,18.426886],[-70.99995,18.283329],[-71.40021,17.598564],[-71.657662,17.757573],[-71.708305,18.044997],[-71.687738,18.31666],[-71.945112,18.6169],[-71.701303,18.785417],[-71.624873,19.169838],[-71.712361,19.714456]]]},"type":"Feature","id":"DOM","properties":{"name":"Dominican Republic","id":"DOM","centroid":[-61.24,15.2]}},{"geometry":{"type":"Polygon","coordinates":[[[11.999506,23.471668],[8.572893,21.565661],[5.677566,19.601207],[4.267419,19.155265],[3.158133,19.057364],[3.146661,19.693579],[2.683588,19.85623],[2.060991,20.142233],[1.823228,20.610809],[-1.550055,22.792666],[-4.923337,24.974574],[-8.6844,27.395744],[-8.665124,27.589479],[-8.66559,27.656426],[-8.674116,28.841289],[-7.059228,29.579228],[-6.060632,29.7317],[-5.242129,30.000443],[-4.859646,30.501188],[-3.690441,30.896952],[-3.647498,31.637294],[-3.06898,31.724498],[-2.616605,32.094346],[-1.307899,32.262889],[-1.124551,32.651522],[-1.388049,32.864015],[-1.733455,33.919713],[-1.792986,34.527919],[-2.169914,35.168396],[-1.208603,35.714849],[-0.127454,35.888662],[0.503877,36.301273],[1.466919,36.605647],[3.161699,36.783905],[4.815758,36.865037],[5.32012,36.716519],[6.26182,37.110655],[7.330385,37.118381],[7.737078,36.885708],[8.420964,36.946427],[8.217824,36.433177],[8.376368,35.479876],[8.140981,34.655146],[7.524482,34.097376],[7.612642,33.344115],[8.430473,32.748337],[8.439103,32.506285],[9.055603,32.102692],[9.48214,30.307556],[9.805634,29.424638],[9.859998,28.95999],[9.683885,28.144174],[9.756128,27.688259],[9.629056,27.140953],[9.716286,26.512206],[9.319411,26.094325],[9.910693,25.365455],[9.948261,24.936954],[10.303847,24.379313],[10.771364,24.562532],[11.560669,24.097909],[11.999506,23.471668]]]},"type":"Feature","id":"DZA","properties":{"name":"Algeria","id":"DZA","centroid":[3.08,36.42]}},{"geometry":{"type":"Polygon","coordinates":[[[-80.302561,-3.404856],[-79.770293,-2.657512],[-79.986559,-2.220794],[-80.368784,-2.685159],[-80.967765,-2.246943],[-80.764806,-1.965048],[-80.933659,-1.057455],[-80.58337,-0.906663],[-80.399325,-0.283703],[-80.020898,0.36034],[-80.09061,0.768429],[-79.542762,0.982938],[-78.855259,1.380924],[-77.855061,0.809925],[-77.668613,0.825893],[-77.424984,0.395687],[-76.57638,0.256936],[-76.292314,0.416047],[-75.801466,0.084801],[-75.373223,-0.152032],[-75.233723,-0.911417],[-75.544996,-1.56161],[-76.635394,-2.608678],[-77.837905,-3.003021],[-78.450684,-3.873097],[-78.639897,-4.547784],[-79.205289,-4.959129],[-79.624979,-4.454198],[-80.028908,-4.346091],[-80.442242,-4.425724],[-80.469295,-4.059287],[-80.184015,-3.821162],[-80.302561,-3.404856]]]},"type":"Feature","id":"ECU","properties":{"name":"Ecuador","id":"ECU","centroid":[-78.35,-0.15]}},{"geometry":{"type":"Polygon","coordinates":[[[34.9226,29.50133],[34.64174,29.09942],[34.42655,28.34399],[34.15451,27.8233],[33.92136,27.6487],[33.58811,27.97136],[33.13676,28.41765],[32.42323,29.85108],[32.32046,29.76043],[32.73482,28.70523],[33.34876,27.69989],[34.10455,26.14227],[34.47387,25.59856],[34.79507,25.03375],[35.69241,23.92671],[35.49372,23.75237],[35.52598,23.10244],[36.69069,22.20485],[36.86623,22],[32.9,22],[29.02,22],[25,22],[25,25.6825],[25,29.238655],[24.70007,30.04419],[24.95762,30.6616],[24.80287,31.08929],[25.16482,31.56915],[26.49533,31.58568],[27.45762,31.32126],[28.45048,31.02577],[28.91353,30.87005],[29.68342,31.18686],[30.09503,31.4734],[30.97693,31.55586],[31.68796,31.4296],[31.96041,30.9336],[32.19247,31.26034],[32.99392,31.02407],[33.7734,30.96746],[34.26544,31.21936],[34.9226,29.50133]]]},"type":"Feature","id":"EGY","properties":{"name":"Egypt","id":"EGY","centroid":[31.14,30.01]}},{"geometry":{"type":"Polygon","coordinates":[[[42.35156,12.54223],[42.00975,12.86582],[41.59856,13.45209],[41.155194,13.77332],[40.8966,14.11864],[40.026219,14.519579],[39.34061,14.53155],[39.0994,14.74064],[38.51295,14.50547],[37.90607,14.95943],[37.59377,14.2131],[36.42951,14.42211],[36.323189,14.822481],[36.75386,16.291874],[36.85253,16.95655],[37.16747,17.26314],[37.904,17.42754],[38.41009,17.998307],[38.990623,16.840626],[39.26611,15.922723],[39.814294,15.435647],[41.179275,14.49108],[41.734952,13.921037],[42.276831,13.343992],[42.589576,13.000421],[43.081226,12.699639],[42.779642,12.455416],[42.35156,12.54223]]]},"type":"Feature","id":"ERI","properties":{"name":"Eritrea","id":"ERI","centroid":[38.55,15.19]}},{"geometry":{"type":"Polygon","coordinates":[[[-9.034818,41.880571],[-8.984433,42.592775],[-9.392884,43.026625],[-7.97819,43.748338],[-6.754492,43.567909],[-5.411886,43.57424],[-4.347843,43.403449],[-3.517532,43.455901],[-1.901351,43.422802],[-1.502771,43.034014],[0.338047,42.579546],[0.701591,42.795734],[1.826793,42.343385],[2.985999,42.473015],[3.039484,41.89212],[2.091842,41.226089],[0.810525,41.014732],[0.721331,40.678318],[0.106692,40.123934],[-0.278711,39.309978],[0.111291,38.738514],[-0.467124,38.292366],[-0.683389,37.642354],[-1.438382,37.443064],[-2.146453,36.674144],[-3.415781,36.6589],[-4.368901,36.677839],[-4.995219,36.324708],[-5.37716,35.94685],[-5.866432,36.029817],[-6.236694,36.367677],[-6.520191,36.942913],[-7.453726,37.097788],[-7.537105,37.428904],[-7.166508,37.803894],[-7.029281,38.075764],[-7.374092,38.373059],[-7.098037,39.030073],[-7.498632,39.629571],[-7.066592,39.711892],[-7.026413,40.184524],[-6.86402,40.330872],[-6.851127,41.111083],[-6.389088,41.381815],[-6.668606,41.883387],[-7.251309,41.918346],[-7.422513,41.792075],[-8.013175,41.790886],[-8.263857,42.280469],[-8.671946,42.134689],[-9.034818,41.880571]]]},"type":"Feature","id":"ESP","properties":{"name":"Spain","id":"ESP","centroid":[-3.45,40.25]}},{"geometry":{"type":"Polygon","coordinates":[[[24.312863,57.793424],[24.428928,58.383413],[24.061198,58.257375],[23.42656,58.612753],[23.339795,59.18724],[24.604214,59.465854],[25.864189,59.61109],[26.949136,59.445803],[27.981114,59.475388],[28.131699,59.300825],[27.420166,58.724581],[27.716686,57.791899],[27.288185,57.474528],[26.463532,57.476389],[25.60281,57.847529],[25.164594,57.970157],[24.312863,57.793424]]]},"type":"Feature","id":"EST","properties":{"name":"Estonia","id":"EST","centroid":[24.48,59.22]}},{"geometry":{"type":"Polygon","coordinates":[[[37.90607,14.95943],[38.51295,14.50547],[39.0994,14.74064],[39.34061,14.53155],[40.02625,14.51959],[40.8966,14.11864],[41.1552,13.77333],[41.59856,13.45209],[42.00975,12.86582],[42.35156,12.54223],[42,12.1],[41.66176,11.6312],[41.73959,11.35511],[41.75557,11.05091],[42.31414,11.0342],[42.55493,11.10511],[42.776852,10.926879],[42.55876,10.57258],[42.92812,10.02194],[43.29699,9.54048],[43.67875,9.18358],[46.94834,7.99688],[47.78942,8.003],[44.9636,5.00162],[43.66087,4.95755],[42.76967,4.25259],[42.12861,4.23413],[41.855083,3.918912],[41.1718,3.91909],[40.76848,4.25702],[39.85494,3.83879],[39.559384,3.42206],[38.89251,3.50074],[38.67114,3.61607],[38.43697,3.58851],[38.120915,3.598605],[36.855093,4.447864],[36.159079,4.447864],[35.817448,4.776966],[35.817448,5.338232],[35.298007,5.506],[34.70702,6.59422],[34.25032,6.82607],[34.0751,7.22595],[33.56829,7.71334],[32.95418,7.78497],[33.2948,8.35458],[33.8255,8.37916],[33.97498,8.68456],[33.96162,9.58358],[34.25745,10.63009],[34.73115,10.91017],[34.83163,11.31896],[35.26049,12.08286],[35.86363,12.57828],[36.27022,13.56333],[36.42951,14.42211],[37.59377,14.2131],[37.90607,14.95943]]]},"type":"Feature","id":"ETH","properties":{"name":"Ethiopia","id":"ETH","centroid":[38.42,9.02]}},{"geometry":{"type":"Polygon","coordinates":[[[28.59193,69.064777],[28.445944,68.364613],[29.977426,67.698297],[29.054589,66.944286],[30.21765,65.80598],[29.54443,64.948672],[30.444685,64.204453],[30.035872,63.552814],[31.516092,62.867687],[31.139991,62.357693],[30.211107,61.780028],[28.069998,60.503517],[26.255173,60.423961],[24.496624,60.057316],[22.869695,59.846373],[22.290764,60.391921],[21.322244,60.72017],[21.544866,61.705329],[21.059211,62.607393],[21.536029,63.189735],[22.442744,63.81781],[24.730512,64.902344],[25.398068,65.111427],[25.294043,65.534346],[23.903379,66.006927],[23.56588,66.396051],[23.539473,67.936009],[21.978535,68.616846],[20.645593,69.106247],[21.244936,69.370443],[22.356238,68.841741],[23.66205,68.891247],[24.735679,68.649557],[25.689213,69.092114],[26.179622,69.825299],[27.732292,70.164193],[29.015573,69.766491],[28.59193,69.064777]]]},"type":"Feature","id":"FIN","properties":{"name":"Finland","id":"FIN","centroid":[25.03,60.15]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[178.3736,-17.33992],[178.71806,-17.62846],[178.55271,-18.15059],[177.93266,-18.28799],[177.38146,-18.16432],[177.28504,-17.72465],[177.67087,-17.38114],[178.12557,-17.50481],[178.3736,-17.33992]]],[[[179.364143,-16.801354],[178.725059,-17.012042],[178.596839,-16.63915],[179.096609,-16.433984],[179.413509,-16.379054],[180,-16.067133],[180,-16.555217],[179.364143,-16.801354]]],[[[-179.917369,-16.501783],[-180,-16.555217],[-180,-16.067133],[-179.79332,-16.020882],[-179.917369,-16.501783]]]]},"type":"Feature","id":"FJI","properties":{"name":"Fiji","id":"FJI","centroid":[178.3,-18.06]}},{"geometry":{"type":"Polygon","coordinates":[[[-61.2,-51.85],[-60,-51.25],[-59.15,-51.5],[-58.55,-51.1],[-57.75,-51.55],[-58.05,-51.9],[-59.4,-52.2],[-59.85,-51.85],[-60.7,-52.3],[-61.2,-51.85]]]},"type":"Feature","id":"FLK","properties":{"name":"Falkland Islands","id":"FLK","centroid":null}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[9.560016,42.152492],[9.229752,41.380007],[8.775723,41.583612],[8.544213,42.256517],[8.746009,42.628122],[9.390001,43.009985],[9.560016,42.152492]]],[[[3.588184,50.378992],[4.286023,49.907497],[4.799222,49.985373],[5.674052,49.529484],[5.897759,49.442667],[6.18632,49.463803],[6.65823,49.201958],[8.099279,49.017784],[7.593676,48.333019],[7.466759,47.620582],[7.192202,47.449766],[6.736571,47.541801],[6.768714,47.287708],[6.037389,46.725779],[6.022609,46.27299],[6.5001,46.429673],[6.843593,45.991147],[6.802355,45.70858],[7.096652,45.333099],[6.749955,45.028518],[7.007562,44.254767],[7.549596,44.127901],[7.435185,43.693845],[6.529245,43.128892],[4.556963,43.399651],[3.100411,43.075201],[2.985999,42.473015],[1.826793,42.343385],[0.701591,42.795734],[0.338047,42.579546],[-1.502771,43.034014],[-1.901351,43.422802],[-1.384225,44.02261],[-1.193798,46.014918],[-2.225724,47.064363],[-2.963276,47.570327],[-4.491555,47.954954],[-4.59235,48.68416],[-3.295814,48.901692],[-1.616511,48.644421],[-1.933494,49.776342],[-0.989469,49.347376],[1.338761,50.127173],[1.639001,50.946606],[2.513573,51.148506],[2.658422,50.796848],[3.123252,50.780363],[3.588184,50.378992]]]]},"type":"Feature","id":"FRA","properties":{"name":"France","id":"FRA","centroid":[2.2,48.5]}},{"geometry":{"type":"Polygon","coordinates":[[[11.093773,-3.978827],[10.066135,-2.969483],[9.405245,-2.144313],[8.797996,-1.111301],[8.830087,-0.779074],[9.04842,-0.459351],[9.291351,0.268666],[9.492889,1.01012],[9.830284,1.067894],[11.285079,1.057662],[11.276449,2.261051],[11.751665,2.326758],[12.35938,2.192812],[12.951334,2.321616],[13.075822,2.267097],[13.003114,1.830896],[13.282631,1.314184],[14.026669,1.395677],[14.276266,1.19693],[13.843321,0.038758],[14.316418,-0.552627],[14.425456,-1.333407],[14.29921,-1.998276],[13.992407,-2.470805],[13.109619,-2.42874],[12.575284,-1.948511],[12.495703,-2.391688],[11.820964,-2.514161],[11.478039,-2.765619],[11.855122,-3.426871],[11.093773,-3.978827]]]},"type":"Feature","id":"GAB","properties":{"name":"Gabon","id":"GAB","centroid":[9.26,0.25]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-5.661949,54.554603],[-6.197885,53.867565],[-6.95373,54.073702],[-7.572168,54.059956],[-7.366031,54.595841],[-7.572168,55.131622],[-6.733847,55.17286],[-5.661949,54.554603]]],[[[-3.005005,58.635],[-4.073828,57.553025],[-3.055002,57.690019],[-1.959281,57.6848],[-2.219988,56.870017],[-3.119003,55.973793],[-2.085009,55.909998],[-2.005676,55.804903],[-1.114991,54.624986],[-0.430485,54.464376],[0.184981,53.325014],[0.469977,52.929999],[1.681531,52.73952],[1.559988,52.099998],[1.050562,51.806761],[1.449865,51.289428],[0.550334,50.765739],[-0.787517,50.774989],[-2.489998,50.500019],[-2.956274,50.69688],[-3.617448,50.228356],[-4.542508,50.341837],[-5.245023,49.96],[-5.776567,50.159678],[-4.30999,51.210001],[-3.414851,51.426009],[-3.422719,51.426848],[-4.984367,51.593466],[-5.267296,51.9914],[-4.222347,52.301356],[-4.770013,52.840005],[-4.579999,53.495004],[-3.093831,53.404547],[-3.09208,53.404441],[-2.945009,53.985],[-3.614701,54.600937],[-3.630005,54.615013],[-4.844169,54.790971],[-5.082527,55.061601],[-4.719112,55.508473],[-5.047981,55.783986],[-5.586398,55.311146],[-5.644999,56.275015],[-6.149981,56.78501],[-5.786825,57.818848],[-5.009999,58.630013],[-4.211495,58.550845],[-3.005005,58.635]]]]},"type":"Feature","id":"GBR","properties":{"name":"United Kingdom","id":"GBR","centroid":[-0.05,51.36]}},{"geometry":{"type":"Polygon","coordinates":[[[41.554084,41.535656],[41.703171,41.962943],[41.45347,42.645123],[40.875469,43.013628],[40.321394,43.128634],[39.955009,43.434998],[40.076965,43.553104],[40.922185,43.382159],[42.394395,43.220308],[43.756017,42.740828],[43.9312,42.554974],[44.537623,42.711993],[45.470279,42.502781],[45.77641,42.092444],[46.404951,41.860675],[46.145432,41.722802],[46.637908,41.181673],[46.501637,41.064445],[45.962601,41.123873],[45.217426,41.411452],[44.97248,41.248129],[43.582746,41.092143],[42.619549,41.583173],[41.554084,41.535656]]]},"type":"Feature","id":"GEO","properties":{"name":"Georgia","id":"GEO","centroid":[44.5,41.43]}},{"geometry":{"type":"Polygon","coordinates":[[[1.060122,5.928837],[-0.507638,5.343473],[-1.063625,5.000548],[-1.964707,4.710462],[-2.856125,4.994476],[-2.810701,5.389051],[-3.24437,6.250472],[-2.983585,7.379705],[-2.56219,8.219628],[-2.827496,9.642461],[-2.963896,10.395335],[-2.940409,10.96269],[-1.203358,11.009819],[-0.761576,10.93693],[-0.438702,11.098341],[0.023803,11.018682],[-0.049785,10.706918],[0.36758,10.191213],[0.365901,9.465004],[0.461192,8.677223],[0.712029,8.312465],[0.490957,7.411744],[0.570384,6.914359],[0.836931,6.279979],[1.060122,5.928837]]]},"type":"Feature","id":"GHA","properties":{"name":"Ghana","id":"GHA","centroid":[-0.06,5.35]}},{"geometry":{"type":"Polygon","coordinates":[[[-8.439298,7.686043],[-8.722124,7.711674],[-8.926065,7.309037],[-9.208786,7.313921],[-9.403348,7.526905],[-9.33728,7.928534],[-9.755342,8.541055],[-10.016567,8.428504],[-10.230094,8.406206],[-10.505477,8.348896],[-10.494315,8.715541],[-10.65477,8.977178],[-10.622395,9.26791],[-10.839152,9.688246],[-11.117481,10.045873],[-11.917277,10.046984],[-12.150338,9.858572],[-12.425929,9.835834],[-12.596719,9.620188],[-12.711958,9.342712],[-13.24655,8.903049],[-13.685154,9.494744],[-14.074045,9.886167],[-14.330076,10.01572],[-14.579699,10.214467],[-14.693232,10.656301],[-14.839554,10.876572],[-15.130311,11.040412],[-14.685687,11.527824],[-14.382192,11.509272],[-14.121406,11.677117],[-13.9008,11.678719],[-13.743161,11.811269],[-13.828272,12.142644],[-13.718744,12.247186],[-13.700476,12.586183],[-13.217818,12.575874],[-12.499051,12.33209],[-12.278599,12.35444],[-12.203565,12.465648],[-11.658301,12.386583],[-11.513943,12.442988],[-11.456169,12.076834],[-11.297574,12.077971],[-11.036556,12.211245],[-10.87083,12.177887],[-10.593224,11.923975],[-10.165214,11.844084],[-9.890993,12.060479],[-9.567912,12.194243],[-9.327616,12.334286],[-9.127474,12.30806],[-8.905265,12.088358],[-8.786099,11.812561],[-8.376305,11.393646],[-8.581305,11.136246],[-8.620321,10.810891],[-8.407311,10.909257],[-8.282357,10.792597],[-8.335377,10.494812],[-8.029944,10.206535],[-8.229337,10.12902],[-8.309616,9.789532],[-8.079114,9.376224],[-7.8321,8.575704],[-8.203499,8.455453],[-8.299049,8.316444],[-8.221792,8.123329],[-8.280703,7.68718],[-8.439298,7.686043]]]},"type":"Feature","id":"GIN","properties":{"name":"Guinea","id":"GIN","centroid":[-13.49,9.29]}},{"geometry":{"type":"Polygon","coordinates":[[[-16.841525,13.151394],[-16.713729,13.594959],[-15.624596,13.623587],[-15.39877,13.860369],[-15.081735,13.876492],[-14.687031,13.630357],[-14.376714,13.62568],[-14.046992,13.794068],[-13.844963,13.505042],[-14.277702,13.280585],[-14.712197,13.298207],[-15.141163,13.509512],[-15.511813,13.27857],[-15.691001,13.270353],[-15.931296,13.130284],[-16.841525,13.151394]]]},"type":"Feature","id":"GMB","properties":{"name":"Gambia","id":"GMB","centroid":[-16.4,13.28]}},{"geometry":{"type":"Polygon","coordinates":[[[-15.130311,11.040412],[-15.66418,11.458474],[-16.085214,11.524594],[-16.314787,11.806515],[-16.308947,11.958702],[-16.613838,12.170911],[-16.677452,12.384852],[-16.147717,12.547762],[-15.816574,12.515567],[-15.548477,12.62817],[-13.700476,12.586183],[-13.718744,12.247186],[-13.828272,12.142644],[-13.743161,11.811269],[-13.9008,11.678719],[-14.121406,11.677117],[-14.382192,11.509272],[-14.685687,11.527824],[-15.130311,11.040412]]]},"type":"Feature","id":"GNB","properties":{"name":"Guinea Bissau","id":"GNB","centroid":[-15.45,11.45]}},{"geometry":{"type":"Polygon","coordinates":[[[9.492889,1.01012],[9.305613,1.160911],[9.649158,2.283866],[11.276449,2.261051],[11.285079,1.057662],[9.830284,1.067894],[9.492889,1.01012]]]},"type":"Feature","id":"GNQ","properties":{"name":"Equatorial Guinea","id":"GNQ","centroid":[8.5,3.45]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[23.69998,35.705004],[24.246665,35.368022],[25.025015,35.424996],[25.769208,35.354018],[25.745023,35.179998],[26.290003,35.29999],[26.164998,35.004995],[24.724982,34.919988],[24.735007,35.084991],[23.514978,35.279992],[23.69998,35.705004]]],[[[26.604196,41.562115],[26.294602,40.936261],[26.056942,40.824123],[25.447677,40.852545],[24.925848,40.947062],[23.714811,40.687129],[24.407999,40.124993],[23.899968,39.962006],[23.342999,39.960998],[22.813988,40.476005],[22.626299,40.256561],[22.849748,39.659311],[23.350027,39.190011],[22.973099,38.970903],[23.530016,38.510001],[24.025025,38.219993],[24.040011,37.655015],[23.115003,37.920011],[23.409972,37.409991],[22.774972,37.30501],[23.154225,36.422506],[22.490028,36.41],[21.670026,36.844986],[21.295011,37.644989],[21.120034,38.310323],[20.730032,38.769985],[20.217712,39.340235],[20.150016,39.624998],[20.615,40.110007],[20.674997,40.435],[20.99999,40.580004],[21.02004,40.842727],[21.674161,40.931275],[22.055378,41.149866],[22.597308,41.130487],[22.76177,41.3048],[22.952377,41.337994],[23.692074,41.309081],[24.492645,41.583896],[25.197201,41.234486],[26.106138,41.328899],[26.117042,41.826905],[26.604196,41.562115]]]]},"type":"Feature","id":"GRC","properties":{"name":"Greece","id":"GRC","centroid":[23.46,37.58]}},{"geometry":{"type":"Polygon","coordinates":[[[-46.76379,82.62796],[-43.40644,83.22516],[-39.89753,83.18018],[-38.62214,83.54905],[-35.08787,83.64513],[-27.10046,83.51966],[-20.84539,82.72669],[-22.69182,82.34165],[-26.51753,82.29765],[-31.9,82.2],[-31.39646,82.02154],[-27.85666,82.13178],[-24.84448,81.78697],[-22.90328,82.09317],[-22.07175,81.73449],[-23.16961,81.15271],[-20.62363,81.52462],[-15.76818,81.91245],[-12.77018,81.71885],[-12.20855,81.29154],[-16.28533,80.58004],[-16.85,80.35],[-20.04624,80.17708],[-17.73035,80.12912],[-18.9,79.4],[-19.70499,78.75128],[-19.67353,77.63859],[-18.47285,76.98565],[-20.03503,76.94434],[-21.67944,76.62795],[-19.83407,76.09808],[-19.59896,75.24838],[-20.66818,75.15585],[-19.37281,74.29561],[-21.59422,74.22382],[-20.43454,73.81713],[-20.76234,73.46436],[-22.17221,73.30955],[-23.56593,73.30663],[-22.31311,72.62928],[-22.29954,72.18409],[-24.27834,72.59788],[-24.79296,72.3302],[-23.44296,72.08016],[-22.13281,71.46898],[-21.75356,70.66369],[-23.53603,70.471],[-24.30702,70.85649],[-25.54341,71.43094],[-25.20135,70.75226],[-26.36276,70.22646],[-23.72742,70.18401],[-22.34902,70.12946],[-25.02927,69.2588],[-27.74737,68.47046],[-30.67371,68.12503],[-31.77665,68.12078],[-32.81105,67.73547],[-34.20196,66.67974],[-36.35284,65.9789],[-37.04378,65.93768],[-38.37505,65.69213],[-39.81222,65.45848],[-40.66899,64.83997],[-40.68281,64.13902],[-41.1887,63.48246],[-42.81938,62.68233],[-42.41666,61.90093],[-42.86619,61.07404],[-43.3784,60.09772],[-44.7875,60.03676],[-46.26364,60.85328],[-48.26294,60.85843],[-49.23308,61.40681],[-49.90039,62.38336],[-51.63325,63.62691],[-52.14014,64.27842],[-52.27659,65.1767],[-53.66166,66.09957],[-53.30161,66.8365],[-53.96911,67.18899],[-52.9804,68.35759],[-51.47536,68.72958],[-51.08041,69.14781],[-50.87122,69.9291],[-52.013585,69.574925],[-52.55792,69.42616],[-53.45629,69.283625],[-54.68336,69.61003],[-54.75001,70.28932],[-54.35884,70.821315],[-53.431315,70.835755],[-51.39014,70.56978],[-53.10937,71.20485],[-54.00422,71.54719],[-55,71.406537],[-55.83468,71.65444],[-54.71819,72.58625],[-55.32634,72.95861],[-56.12003,73.64977],[-57.32363,74.71026],[-58.59679,75.09861],[-58.58516,75.51727],[-61.26861,76.10238],[-63.39165,76.1752],[-66.06427,76.13486],[-68.50438,76.06141],[-69.66485,76.37975],[-71.40257,77.00857],[-68.77671,77.32312],[-66.76397,77.37595],[-71.04293,77.63595],[-73.297,78.04419],[-73.15938,78.43271],[-69.37345,78.91388],[-65.7107,79.39436],[-65.3239,79.75814],[-68.02298,80.11721],[-67.15129,80.51582],[-63.68925,81.21396],[-62.23444,81.3211],[-62.65116,81.77042],[-60.28249,82.03363],[-57.20744,82.19074],[-54.13442,82.19962],[-53.04328,81.88833],[-50.39061,82.43883],[-48.00386,82.06481],[-46.59984,81.985945],[-44.523,81.6607],[-46.9007,82.19979],[-46.76379,82.62796]]]},"type":"Feature","id":"GRL","properties":{"name":"Greenland","id":"GRL","centroid":null}},{"geometry":{"type":"Polygon","coordinates":[[[-90.095555,13.735338],[-90.608624,13.909771],[-91.23241,13.927832],[-91.689747,14.126218],[-92.22775,14.538829],[-92.20323,14.830103],[-92.087216,15.064585],[-92.229249,15.251447],[-91.74796,16.066565],[-90.464473,16.069562],[-90.438867,16.41011],[-90.600847,16.470778],[-90.711822,16.687483],[-91.08167,16.918477],[-91.453921,17.252177],[-91.002269,17.254658],[-91.00152,17.817595],[-90.067934,17.819326],[-89.14308,17.808319],[-89.150806,17.015577],[-89.229122,15.886938],[-88.930613,15.887273],[-88.604586,15.70638],[-88.518364,15.855389],[-88.225023,15.727722],[-88.68068,15.346247],[-89.154811,15.066419],[-89.22522,14.874286],[-89.145535,14.678019],[-89.353326,14.424133],[-89.587343,14.362586],[-89.534219,14.244816],[-89.721934,14.134228],[-90.064678,13.88197],[-90.095555,13.735338]]]},"type":"Feature","id":"GTM","properties":{"name":"Guatemala","id":"GTM","centroid":[-90.22,14.4]}},{"geometry":{"type":"Polygon","coordinates":[[[-52.556425,2.504705],[-52.939657,2.124858],[-53.418465,2.053389],[-53.554839,2.334897],[-53.778521,2.376703],[-54.088063,2.105557],[-54.524754,2.311849],[-54.27123,2.738748],[-54.184284,3.194172],[-54.011504,3.62257],[-54.399542,4.212611],[-54.478633,4.896756],[-53.958045,5.756548],[-53.618453,5.646529],[-52.882141,5.409851],[-51.823343,4.565768],[-51.657797,4.156232],[-52.249338,3.241094],[-52.556425,2.504705]]]},"type":"Feature","id":"GUF","properties":{"name":"French Guiana","id":"GUF","centroid":[-52.18,5.05]}},{"geometry":{"type":"Polygon","coordinates":[[[-59.758285,8.367035],[-59.101684,7.999202],[-58.482962,7.347691],[-58.454876,6.832787],[-58.078103,6.809094],[-57.542219,6.321268],[-57.147436,5.97315],[-57.307246,5.073567],[-57.914289,4.812626],[-57.86021,4.576801],[-58.044694,4.060864],[-57.601569,3.334655],[-57.281433,3.333492],[-57.150098,2.768927],[-56.539386,1.899523],[-56.782704,1.863711],[-57.335823,1.948538],[-57.660971,1.682585],[-58.11345,1.507195],[-58.429477,1.463942],[-58.540013,1.268088],[-59.030862,1.317698],[-59.646044,1.786894],[-59.718546,2.24963],[-59.974525,2.755233],[-59.815413,3.606499],[-59.53804,3.958803],[-59.767406,4.423503],[-60.111002,4.574967],[-59.980959,5.014061],[-60.213683,5.244486],[-60.733574,5.200277],[-61.410303,5.959068],[-61.139415,6.234297],[-61.159336,6.696077],[-60.543999,6.856584],[-60.295668,7.043911],[-60.637973,7.415],[-60.550588,7.779603],[-59.758285,8.367035]]]},"type":"Feature","id":"GUY","properties":{"name":"Guyana","id":"GUY","centroid":[-58.12,6.5]}},{"geometry":{"type":"Polygon","coordinates":[[[-87.316654,12.984686],[-87.489409,13.297535],[-87.793111,13.38448],[-87.723503,13.78505],[-87.859515,13.893312],[-88.065343,13.964626],[-88.503998,13.845486],[-88.541231,13.980155],[-88.843073,14.140507],[-89.058512,14.340029],[-89.353326,14.424133],[-89.145535,14.678019],[-89.22522,14.874286],[-89.154811,15.066419],[-88.68068,15.346247],[-88.225023,15.727722],[-88.121153,15.688655],[-87.901813,15.864458],[-87.61568,15.878799],[-87.522921,15.797279],[-87.367762,15.84694],[-86.903191,15.756713],[-86.440946,15.782835],[-86.119234,15.893449],[-86.001954,16.005406],[-85.683317,15.953652],[-85.444004,15.885749],[-85.182444,15.909158],[-84.983722,15.995923],[-84.52698,15.857224],[-84.368256,15.835158],[-84.063055,15.648244],[-83.773977,15.424072],[-83.410381,15.270903],[-83.147219,14.995829],[-83.489989,15.016267],[-83.628585,14.880074],[-83.975721,14.749436],[-84.228342,14.748764],[-84.449336,14.621614],[-84.649582,14.666805],[-84.820037,14.819587],[-84.924501,14.790493],[-85.052787,14.551541],[-85.148751,14.560197],[-85.165365,14.35437],[-85.514413,14.079012],[-85.698665,13.960078],[-85.801295,13.836055],[-86.096264,14.038187],[-86.312142,13.771356],[-86.520708,13.778487],[-86.755087,13.754845],[-86.733822,13.263093],[-86.880557,13.254204],[-87.005769,13.025794],[-87.316654,12.984686]]]},"type":"Feature","id":"HND","properties":{"name":"Honduras","id":"HND","centroid":[-87.14,14.05]}},{"geometry":{"type":"Polygon","coordinates":[[[18.829838,45.908878],[19.072769,45.521511],[19.390476,45.236516],[19.005486,44.860234],[18.553214,45.08159],[17.861783,45.06774],[17.002146,45.233777],[16.534939,45.211608],[16.318157,45.004127],[15.959367,45.233777],[15.750026,44.818712],[16.23966,44.351143],[16.456443,44.04124],[16.916156,43.667722],[17.297373,43.446341],[17.674922,43.028563],[18.56,42.65],[18.450016,42.479991],[17.50997,42.849995],[16.930006,43.209998],[16.015385,43.507215],[15.174454,44.243191],[15.37625,44.317915],[14.920309,44.738484],[14.901602,45.07606],[14.258748,45.233777],[13.952255,44.802124],[13.656976,45.136935],[13.679403,45.484149],[13.71506,45.500324],[14.411968,45.466166],[14.595109,45.634941],[14.935244,45.471695],[15.327675,45.452316],[15.323954,45.731783],[15.67153,45.834154],[15.768733,46.238108],[16.564808,46.503751],[16.882515,46.380632],[17.630066,45.951769],[18.456062,45.759481],[18.829838,45.908878]]]},"type":"Feature","id":"HRV","properties":{"name":"Croatia","id":"HRV","centroid":[15.58,45.5]}},{"geometry":{"type":"Polygon","coordinates":[[[-73.189791,19.915684],[-72.579673,19.871501],[-71.712361,19.714456],[-71.624873,19.169838],[-71.701303,18.785417],[-71.945112,18.6169],[-71.687738,18.31666],[-71.708305,18.044997],[-72.372476,18.214961],[-72.844411,18.145611],[-73.454555,18.217906],[-73.922433,18.030993],[-74.458034,18.34255],[-74.369925,18.664908],[-73.449542,18.526053],[-72.694937,18.445799],[-72.334882,18.668422],[-72.79165,19.101625],[-72.784105,19.483591],[-73.415022,19.639551],[-73.189791,19.915684]]]},"type":"Feature","id":"HTI","properties":{"name":"Haiti","id":"HTI","centroid":[-72.2,18.4]}},{"geometry":{"type":"Polygon","coordinates":[[[16.202298,46.852386],[16.534268,47.496171],[16.340584,47.712902],[16.903754,47.714866],[16.979667,48.123497],[17.488473,47.867466],[17.857133,47.758429],[18.696513,47.880954],[18.777025,48.081768],[19.174365,48.111379],[19.661364,48.266615],[19.769471,48.202691],[20.239054,48.327567],[20.473562,48.56285],[20.801294,48.623854],[21.872236,48.319971],[22.085608,48.422264],[22.64082,48.15024],[22.710531,47.882194],[22.099768,47.672439],[21.626515,46.994238],[21.021952,46.316088],[20.220192,46.127469],[19.596045,46.17173],[18.829838,45.908878],[18.456062,45.759481],[17.630066,45.951769],[16.882515,46.380632],[16.564808,46.503751],[16.370505,46.841327],[16.202298,46.852386]]]},"type":"Feature","id":"HUN","properties":{"name":"Hungary","id":"HUN","centroid":[19.05,47.29]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[120.715609,-10.239581],[120.295014,-10.25865],[118.967808,-9.557969],[119.90031,-9.36134],[120.425756,-9.665921],[120.775502,-9.969675],[120.715609,-10.239581]]],[[[124.43595,-10.140001],[123.579982,-10.359987],[123.459989,-10.239995],[123.550009,-9.900016],[123.980009,-9.290027],[124.968682,-8.89279],[125.07002,-9.089987],[125.08852,-9.393173],[124.43595,-10.140001]]],[[[117.900018,-8.095681],[118.260616,-8.362383],[118.87846,-8.280683],[119.126507,-8.705825],[117.970402,-8.906639],[117.277731,-9.040895],[116.740141,-9.032937],[117.083737,-8.457158],[117.632024,-8.449303],[117.900018,-8.095681]]],[[[122.903537,-8.094234],[122.756983,-8.649808],[121.254491,-8.933666],[119.924391,-8.810418],[119.920929,-8.444859],[120.715092,-8.236965],[121.341669,-8.53674],[122.007365,-8.46062],[122.903537,-8.094234]]],[[[108.623479,-6.777674],[110.539227,-6.877358],[110.759576,-6.465186],[112.614811,-6.946036],[112.978768,-7.594213],[114.478935,-7.776528],[115.705527,-8.370807],[114.564511,-8.751817],[113.464734,-8.348947],[112.559672,-8.376181],[111.522061,-8.302129],[110.58615,-8.122605],[109.427667,-7.740664],[108.693655,-7.6416],[108.277763,-7.766657],[106.454102,-7.3549],[106.280624,-6.9249],[105.365486,-6.851416],[106.051646,-5.895919],[107.265009,-5.954985],[108.072091,-6.345762],[108.486846,-6.421985],[108.623479,-6.777674]]],[[[134.724624,-6.214401],[134.210134,-6.895238],[134.112776,-6.142467],[134.290336,-5.783058],[134.499625,-5.445042],[134.727002,-5.737582],[134.724624,-6.214401]]],[[[127.249215,-3.459065],[126.874923,-3.790983],[126.183802,-3.607376],[125.989034,-3.177273],[127.000651,-3.129318],[127.249215,-3.459065]]],[[[130.471344,-3.093764],[130.834836,-3.858472],[129.990547,-3.446301],[129.155249,-3.362637],[128.590684,-3.428679],[127.898891,-3.393436],[128.135879,-2.84365],[129.370998,-2.802154],[130.471344,-3.093764]]],[[[134.143368,-1.151867],[134.422627,-2.769185],[135.457603,-3.367753],[136.293314,-2.307042],[137.440738,-1.703513],[138.329727,-1.702686],[139.184921,-2.051296],[139.926684,-2.409052],[141.00021,-2.600151],[141.017057,-5.859022],[141.033852,-9.117893],[140.143415,-8.297168],[139.127767,-8.096043],[138.881477,-8.380935],[137.614474,-8.411683],[138.039099,-7.597882],[138.668621,-7.320225],[138.407914,-6.232849],[137.92784,-5.393366],[135.98925,-4.546544],[135.164598,-4.462931],[133.66288,-3.538853],[133.367705,-4.024819],[132.983956,-4.112979],[132.756941,-3.746283],[132.753789,-3.311787],[131.989804,-2.820551],[133.066845,-2.460418],[133.780031,-2.479848],[133.696212,-2.214542],[132.232373,-2.212526],[131.836222,-1.617162],[130.94284,-1.432522],[130.519558,-0.93772],[131.867538,-0.695461],[132.380116,-0.369538],[133.985548,-0.78021],[134.143368,-1.151867]]],[[[125.240501,1.419836],[124.437035,0.427881],[123.685505,0.235593],[122.723083,0.431137],[121.056725,0.381217],[120.183083,0.237247],[120.04087,-0.519658],[120.935905,-1.408906],[121.475821,-0.955962],[123.340565,-0.615673],[123.258399,-1.076213],[122.822715,-0.930951],[122.38853,-1.516858],[121.508274,-1.904483],[122.454572,-3.186058],[122.271896,-3.5295],[123.170963,-4.683693],[123.162333,-5.340604],[122.628515,-5.634591],[122.236394,-5.282933],[122.719569,-4.464172],[121.738234,-4.851331],[121.489463,-4.574553],[121.619171,-4.188478],[120.898182,-3.602105],[120.972389,-2.627643],[120.305453,-2.931604],[120.390047,-4.097579],[120.430717,-5.528241],[119.796543,-5.6734],[119.366906,-5.379878],[119.653606,-4.459417],[119.498835,-3.494412],[119.078344,-3.487022],[118.767769,-2.801999],[119.180974,-2.147104],[119.323394,-1.353147],[119.825999,0.154254],[120.035702,0.566477],[120.885779,1.309223],[121.666817,1.013944],[122.927567,0.875192],[124.077522,0.917102],[125.065989,1.643259],[125.240501,1.419836]]],[[[128.688249,1.132386],[128.635952,0.258486],[128.12017,0.356413],[127.968034,-0.252077],[128.379999,-0.780004],[128.100016,-0.899996],[127.696475,-0.266598],[127.39949,1.011722],[127.600512,1.810691],[127.932378,2.174596],[128.004156,1.628531],[128.594559,1.540811],[128.688249,1.132386]]],[[[117.875627,1.827641],[118.996747,0.902219],[117.811858,0.784242],[117.478339,0.102475],[117.521644,-0.803723],[116.560048,-1.487661],[116.533797,-2.483517],[116.148084,-4.012726],[116.000858,-3.657037],[114.864803,-4.106984],[114.468652,-3.495704],[113.755672,-3.43917],[113.256994,-3.118776],[112.068126,-3.478392],[111.703291,-2.994442],[111.04824,-3.049426],[110.223846,-2.934032],[110.070936,-1.592874],[109.571948,-1.314907],[109.091874,-0.459507],[108.952658,0.415375],[109.069136,1.341934],[109.66326,2.006467],[109.830227,1.338136],[110.514061,0.773131],[111.159138,0.976478],[111.797548,0.904441],[112.380252,1.410121],[112.859809,1.49779],[113.80585,1.217549],[114.621355,1.430688],[115.134037,2.821482],[115.519078,3.169238],[115.865517,4.306559],[117.015214,4.306094],[117.882035,4.137551],[117.313232,3.234428],[118.04833,2.28769],[117.875627,1.827641]]],[[[105.817655,-5.852356],[104.710384,-5.873285],[103.868213,-5.037315],[102.584261,-4.220259],[102.156173,-3.614146],[101.399113,-2.799777],[100.902503,-2.050262],[100.141981,-0.650348],[99.26374,0.183142],[98.970011,1.042882],[98.601351,1.823507],[97.699598,2.453184],[97.176942,3.308791],[96.424017,3.86886],[95.380876,4.970782],[95.293026,5.479821],[95.936863,5.439513],[97.484882,5.246321],[98.369169,4.26837],[99.142559,3.59035],[99.693998,3.174329],[100.641434,2.099381],[101.658012,2.083697],[102.498271,1.3987],[103.07684,0.561361],[103.838396,0.104542],[103.437645,-0.711946],[104.010789,-1.059212],[104.369991,-1.084843],[104.53949,-1.782372],[104.887893,-2.340425],[105.622111,-2.428844],[106.108593,-3.061777],[105.857446,-4.305525],[105.817655,-5.852356]]]]},"type":"Feature","id":"IDN","properties":{"name":"Indonesia","id":"IDN","centroid":[106.49,-6.09]}},{"geometry":{"type":"Polygon","coordinates":[[[77.837451,35.49401],[78.912269,34.321936],[78.811086,33.506198],[79.208892,32.994395],[79.176129,32.48378],[78.458446,32.618164],[78.738894,31.515906],[79.721367,30.882715],[81.111256,30.183481],[80.476721,29.729865],[80.088425,28.79447],[81.057203,28.416095],[81.999987,27.925479],[83.304249,27.364506],[84.675018,27.234901],[85.251779,26.726198],[86.024393,26.630985],[87.227472,26.397898],[88.060238,26.414615],[88.174804,26.810405],[88.043133,27.445819],[88.120441,27.876542],[88.730326,28.086865],[88.814248,27.299316],[88.835643,27.098966],[89.744528,26.719403],[90.373275,26.875724],[91.217513,26.808648],[92.033484,26.83831],[93.746338,27.108034],[94.306641,27.547242],[95.767822,28.139816],[97.051989,27.699059],[97.133999,27.083774],[96.419366,27.264589],[95.124768,26.573572],[95.155153,26.001307],[94.603249,25.162495],[94.552658,24.675238],[94.106742,23.850741],[93.325188,24.078556],[93.286327,23.043658],[93.060294,22.703111],[93.166128,22.27846],[92.672721,22.041239],[92.146035,23.627499],[91.869928,23.624346],[91.706475,22.985264],[91.158963,23.503527],[91.46773,24.072639],[91.915093,24.130414],[92.376202,24.976693],[91.799596,25.147432],[90.872211,25.132601],[89.920693,25.26975],[89.832481,25.965082],[89.355094,26.014407],[88.563049,26.446526],[88.209789,25.768066],[88.931554,25.238692],[88.306373,24.866079],[88.084422,24.501657],[88.69994,24.233715],[88.52977,23.631142],[88.876312,22.879146],[89.031961,22.055708],[88.888766,21.690588],[88.208497,21.703172],[86.975704,21.495562],[87.033169,20.743308],[86.499351,20.151638],[85.060266,19.478579],[83.941006,18.30201],[83.189217,17.671221],[82.192792,17.016636],[82.191242,16.556664],[81.692719,16.310219],[80.791999,15.951972],[80.324896,15.899185],[80.025069,15.136415],[80.233274,13.835771],[80.286294,13.006261],[79.862547,12.056215],[79.857999,10.357275],[79.340512,10.308854],[78.885345,9.546136],[79.18972,9.216544],[78.277941,8.933047],[77.941165,8.252959],[77.539898,7.965535],[76.592979,8.899276],[76.130061,10.29963],[75.746467,11.308251],[75.396101,11.781245],[74.864816,12.741936],[74.616717,13.992583],[74.443859,14.617222],[73.534199,15.990652],[73.119909,17.92857],[72.820909,19.208234],[72.824475,20.419503],[72.630533,21.356009],[71.175273,20.757441],[70.470459,20.877331],[69.16413,22.089298],[69.644928,22.450775],[69.349597,22.84318],[68.176645,23.691965],[68.842599,24.359134],[71.04324,24.356524],[70.844699,25.215102],[70.282873,25.722229],[70.168927,26.491872],[69.514393,26.940966],[70.616496,27.989196],[71.777666,27.91318],[72.823752,28.961592],[73.450638,29.976413],[74.42138,30.979815],[74.405929,31.692639],[75.258642,32.271105],[74.451559,32.7649],[74.104294,33.441473],[73.749948,34.317699],[74.240203,34.748887],[75.757061,34.504923],[76.871722,34.653544],[77.837451,35.49401]]]},"type":"Feature","id":"IND","properties":{"name":"India","id":"IND","centroid":[77.13,28.37]}},{"geometry":{"type":"Polygon","coordinates":[[[-6.197885,53.867565],[-6.032985,53.153164],[-6.788857,52.260118],[-8.561617,51.669301],[-9.977086,51.820455],[-9.166283,52.864629],[-9.688525,53.881363],[-8.327987,54.664519],[-7.572168,55.131622],[-7.366031,54.595841],[-7.572168,54.059956],[-6.95373,54.073702],[-6.197885,53.867565]]]},"type":"Feature","id":"IRL","properties":{"name":"Ireland","id":"IRL","centroid":[-6.15,53.21]}},{"geometry":{"type":"Polygon","coordinates":[[[53.921598,37.198918],[54.800304,37.392421],[55.511578,37.964117],[56.180375,37.935127],[56.619366,38.121394],[57.330434,38.029229],[58.436154,37.522309],[59.234762,37.412988],[60.377638,36.527383],[61.123071,36.491597],[61.210817,35.650072],[60.803193,34.404102],[60.52843,33.676446],[60.9637,33.528832],[60.536078,32.981269],[60.863655,32.18292],[60.941945,31.548075],[61.699314,31.379506],[61.781222,30.73585],[60.874248,29.829239],[61.369309,29.303276],[61.771868,28.699334],[62.72783,28.259645],[62.755426,27.378923],[63.233898,27.217047],[63.316632,26.756532],[61.874187,26.239975],[61.497363,25.078237],[59.616134,25.380157],[58.525761,25.609962],[57.397251,25.739902],[56.970766,26.966106],[56.492139,27.143305],[55.72371,26.964633],[54.71509,26.480658],[53.493097,26.812369],[52.483598,27.580849],[51.520763,27.86569],[50.852948,28.814521],[50.115009,30.147773],[49.57685,29.985715],[48.941333,30.31709],[48.567971,29.926778],[48.014568,30.452457],[48.004698,30.985137],[47.685286,30.984853],[47.849204,31.709176],[47.334661,32.469155],[46.109362,33.017287],[45.416691,33.967798],[45.64846,34.748138],[46.151788,35.093259],[46.07634,35.677383],[45.420618,35.977546],[44.77267,37.17045],[44.225756,37.971584],[44.421403,38.281281],[44.109225,39.428136],[44.79399,39.713003],[44.952688,39.335765],[45.457722,38.874139],[46.143623,38.741201],[46.50572,38.770605],[47.685079,39.508364],[48.060095,39.582235],[48.355529,39.288765],[48.010744,38.794015],[48.634375,38.270378],[48.883249,38.320245],[49.199612,37.582874],[50.147771,37.374567],[50.842354,36.872814],[52.264025,36.700422],[53.82579,36.965031],[53.921598,37.198918]]]},"type":"Feature","id":"IRN","properties":{"name":"Iran","id":"IRN","centroid":[51.25,35.42]}},{"geometry":{"type":"Polygon","coordinates":[[[45.420618,35.977546],[46.07634,35.677383],[46.151788,35.093259],[45.64846,34.748138],[45.416691,33.967798],[46.109362,33.017287],[47.334661,32.469155],[47.849204,31.709176],[47.685286,30.984853],[48.004698,30.985137],[48.014568,30.452457],[48.567971,29.926778],[47.974519,29.975819],[47.302622,30.05907],[46.568713,29.099025],[44.709499,29.178891],[41.889981,31.190009],[40.399994,31.889992],[39.195468,32.161009],[38.792341,33.378686],[41.006159,34.419372],[41.383965,35.628317],[41.289707,36.358815],[41.837064,36.605854],[42.349591,37.229873],[42.779126,37.385264],[43.942259,37.256228],[44.293452,37.001514],[44.772699,37.170445],[45.420618,35.977546]]]},"type":"Feature","id":"IRQ","properties":{"name":"Iraq","id":"IRQ","centroid":[44.3,33.2]}},{"geometry":{"type":"Polygon","coordinates":[[[-14.508695,66.455892],[-14.739637,65.808748],[-13.609732,65.126671],[-14.909834,64.364082],[-17.794438,63.678749],[-18.656246,63.496383],[-19.972755,63.643635],[-22.762972,63.960179],[-21.778484,64.402116],[-23.955044,64.89113],[-22.184403,65.084968],[-22.227423,65.378594],[-24.326184,65.611189],[-23.650515,66.262519],[-22.134922,66.410469],[-20.576284,65.732112],[-19.056842,66.276601],[-17.798624,65.993853],[-16.167819,66.526792],[-14.508695,66.455892]]]},"type":"Feature","id":"ISL","properties":{"name":"Iceland","id":"ISL","centroid":[-21.57,64.1]}},{"geometry":{"type":"Polygon","coordinates":[[[35.719918,32.709192],[35.545665,32.393992],[35.18393,32.532511],[34.974641,31.866582],[35.225892,31.754341],[34.970507,31.616778],[34.927408,31.353435],[35.397561,31.489086],[35.420918,31.100066],[34.922603,29.501326],[34.265433,31.219361],[34.556372,31.548824],[34.488107,31.605539],[34.752587,32.072926],[34.955417,32.827376],[35.098457,33.080539],[35.126053,33.0909],[35.460709,33.08904],[35.552797,33.264275],[35.821101,33.277426],[35.836397,32.868123],[35.700798,32.716014],[35.719918,32.709192]]]},"type":"Feature","id":"ISR","properties":{"name":"Israel","id":"ISR","centroid":[35.12,31.47]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[15.520376,38.231155],[15.160243,37.444046],[15.309898,37.134219],[15.099988,36.619987],[14.335229,36.996631],[13.826733,37.104531],[12.431004,37.61295],[12.570944,38.126381],[13.741156,38.034966],[14.761249,38.143874],[15.520376,38.231155]]],[[[9.210012,41.209991],[9.809975,40.500009],[9.669519,39.177376],[9.214818,39.240473],[8.806936,38.906618],[8.428302,39.171847],[8.388253,40.378311],[8.159998,40.950007],[8.709991,40.899984],[9.210012,41.209991]]],[[[12.376485,46.767559],[13.806475,46.509306],[13.69811,46.016778],[13.93763,45.591016],[13.141606,45.736692],[12.328581,45.381778],[12.383875,44.885374],[12.261453,44.600482],[12.589237,44.091366],[13.526906,43.587727],[14.029821,42.761008],[15.14257,41.95514],[15.926191,41.961315],[16.169897,41.740295],[15.889346,41.541082],[16.785002,41.179606],[17.519169,40.877143],[18.376687,40.355625],[18.480247,40.168866],[18.293385,39.810774],[17.73838,40.277671],[16.869596,40.442235],[16.448743,39.795401],[17.17149,39.4247],[17.052841,38.902871],[16.635088,38.843572],[16.100961,37.985899],[15.684087,37.908849],[15.687963,38.214593],[15.891981,38.750942],[16.109332,38.964547],[15.718814,39.544072],[15.413613,40.048357],[14.998496,40.172949],[14.703268,40.60455],[14.060672,40.786348],[13.627985,41.188287],[12.888082,41.25309],[12.106683,41.704535],[11.191906,42.355425],[10.511948,42.931463],[10.200029,43.920007],[9.702488,44.036279],[8.888946,44.366336],[8.428561,44.231228],[7.850767,43.767148],[7.435185,43.693845],[7.549596,44.127901],[7.007562,44.254767],[6.749955,45.028518],[7.096652,45.333099],[6.802355,45.70858],[6.843593,45.991147],[7.273851,45.776948],[7.755992,45.82449],[8.31663,46.163642],[8.489952,46.005151],[8.966306,46.036932],[9.182882,46.440215],[9.922837,46.314899],[10.363378,46.483571],[10.442701,46.893546],[11.048556,46.751359],[11.164828,46.941579],[12.153088,47.115393],[12.376485,46.767559]]]]},"type":"Feature","id":"ITA","properties":{"name":"Italy","id":"ITA","centroid":[12.29,41.54]}},{"geometry":{"type":"Polygon","coordinates":[[[-77.569601,18.490525],[-76.896619,18.400867],[-76.365359,18.160701],[-76.199659,17.886867],[-76.902561,17.868238],[-77.206341,17.701116],[-77.766023,17.861597],[-78.337719,18.225968],[-78.217727,18.454533],[-77.797365,18.524218],[-77.569601,18.490525]]]},"type":"Feature","id":"JAM","properties":{"name":"Jamaica","id":"JAM","centroid":[-76.5,18]}},{"geometry":{"type":"Polygon","coordinates":[[[35.545665,32.393992],[35.719918,32.709192],[36.834062,32.312938],[38.792341,33.378686],[39.195468,32.161009],[39.004886,32.010217],[37.002166,31.508413],[37.998849,30.5085],[37.66812,30.338665],[37.503582,30.003776],[36.740528,29.865283],[36.501214,29.505254],[36.068941,29.197495],[34.956037,29.356555],[34.922603,29.501326],[35.420918,31.100066],[35.397561,31.489086],[35.545252,31.782505],[35.545665,32.393992]]]},"type":"Feature","id":"JOR","properties":{"name":"Jordan","id":"JOR","centroid":[35.52,31.57]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[134.638428,34.149234],[134.766379,33.806335],[134.203416,33.201178],[133.79295,33.521985],[133.280268,33.28957],[133.014858,32.704567],[132.363115,32.989382],[132.371176,33.463642],[132.924373,34.060299],[133.492968,33.944621],[133.904106,34.364931],[134.638428,34.149234]]],[[[140.976388,37.142074],[140.59977,36.343983],[140.774074,35.842877],[140.253279,35.138114],[138.975528,34.6676],[137.217599,34.606286],[135.792983,33.464805],[135.120983,33.849071],[135.079435,34.596545],[133.340316,34.375938],[132.156771,33.904933],[130.986145,33.885761],[132.000036,33.149992],[131.33279,31.450355],[130.686318,31.029579],[130.20242,31.418238],[130.447676,32.319475],[129.814692,32.61031],[129.408463,33.296056],[130.353935,33.604151],[130.878451,34.232743],[131.884229,34.749714],[132.617673,35.433393],[134.608301,35.731618],[135.677538,35.527134],[136.723831,37.304984],[137.390612,36.827391],[138.857602,37.827485],[139.426405,38.215962],[140.05479,39.438807],[139.883379,40.563312],[140.305783,41.195005],[141.368973,41.37856],[141.914263,39.991616],[141.884601,39.180865],[140.959489,38.174001],[140.976388,37.142074]]],[[[143.910162,44.1741],[144.613427,43.960883],[145.320825,44.384733],[145.543137,43.262088],[144.059662,42.988358],[143.18385,41.995215],[141.611491,42.678791],[141.067286,41.584594],[139.955106,41.569556],[139.817544,42.563759],[140.312087,43.333273],[141.380549,43.388825],[141.671952,44.772125],[141.967645,45.551483],[143.14287,44.510358],[143.910162,44.1741]]]]},"type":"Feature","id":"JPN","properties":{"name":"Japan","id":"JPN","centroid":[139.41,35.41]}},{"geometry":{"type":"Polygon","coordinates":[[[70.962315,42.266154],[70.388965,42.081308],[69.070027,41.384244],[68.632483,40.668681],[68.259896,40.662325],[67.985856,41.135991],[66.714047,41.168444],[66.510649,41.987644],[66.023392,41.994646],[66.098012,42.99766],[64.900824,43.728081],[63.185787,43.650075],[62.0133,43.504477],[61.05832,44.405817],[60.239972,44.784037],[58.689989,45.500014],[58.503127,45.586804],[55.928917,44.995858],[55.968191,41.308642],[55.455251,41.259859],[54.755345,42.043971],[54.079418,42.324109],[52.944293,42.116034],[52.50246,41.783316],[52.446339,42.027151],[52.692112,42.443895],[52.501426,42.792298],[51.342427,43.132975],[50.891292,44.031034],[50.339129,44.284016],[50.305643,44.609836],[51.278503,44.514854],[51.316899,45.245998],[52.16739,45.408391],[53.040876,45.259047],[53.220866,46.234646],[53.042737,46.853006],[52.042023,46.804637],[51.191945,47.048705],[50.034083,46.60899],[49.10116,46.39933],[48.593241,46.561034],[48.694734,47.075628],[48.057253,47.743753],[47.315231,47.715847],[46.466446,48.394152],[47.043672,49.152039],[46.751596,49.356006],[47.54948,50.454698],[48.577841,49.87476],[48.702382,50.605128],[50.766648,51.692762],[52.328724,51.718652],[54.532878,51.02624],[55.716941,50.621717],[56.777961,51.043551],[58.363291,51.063653],[59.642282,50.545442],[59.932807,50.842194],[61.337424,50.79907],[61.588003,51.272659],[59.967534,51.96042],[60.927269,52.447548],[60.739993,52.719986],[61.699986,52.979996],[60.978066,53.664993],[61.436591,54.006265],[65.178534,54.354228],[65.666876,54.601267],[68.1691,54.970392],[69.068167,55.38525],[70.865267,55.169734],[71.180131,54.133285],[72.22415,54.376655],[73.508516,54.035617],[73.425679,53.48981],[74.384845,53.546861],[76.8911,54.490524],[76.525179,54.177003],[77.800916,53.404415],[80.03556,50.864751],[80.568447,51.388336],[81.945986,50.812196],[83.383004,51.069183],[83.935115,50.889246],[84.416377,50.3114],[85.11556,50.117303],[85.54127,49.692859],[86.829357,49.826675],[87.35997,49.214981],[86.598776,48.549182],[85.768233,48.455751],[85.720484,47.452969],[85.16429,47.000956],[83.180484,47.330031],[82.458926,45.53965],[81.947071,45.317027],[79.966106,44.917517],[80.866206,43.180362],[80.18015,42.920068],[80.25999,42.349999],[79.643645,42.496683],[79.142177,42.856092],[77.658392,42.960686],[76.000354,42.988022],[75.636965,42.8779],[74.212866,43.298339],[73.645304,43.091272],[73.489758,42.500894],[71.844638,42.845395],[71.186281,42.704293],[70.962315,42.266154]]]},"type":"Feature","id":"KAZ","properties":{"name":"Kazakhstan","id":"KAZ","centroid":[71.3,51.1]}},{"geometry":{"type":"Polygon","coordinates":[[[40.993,-0.85829],[41.58513,-1.68325],[40.88477,-2.08255],[40.63785,-2.49979],[40.26304,-2.57309],[40.12119,-3.27768],[39.80006,-3.68116],[39.60489,-4.34653],[39.20222,-4.67677],[37.7669,-3.67712],[37.69869,-3.09699],[34.07262,-1.05982],[33.903711,-0.95],[33.893569,0.109814],[34.18,0.515],[34.6721,1.17694],[35.03599,1.90584],[34.59607,3.05374],[34.47913,3.5556],[34.005,4.249885],[34.620196,4.847123],[35.298007,5.506],[35.817448,5.338232],[35.817448,4.776966],[36.159079,4.447864],[36.855093,4.447864],[38.120915,3.598605],[38.43697,3.58851],[38.67114,3.61607],[38.89251,3.50074],[39.559384,3.42206],[39.85494,3.83879],[40.76848,4.25702],[41.1718,3.91909],[41.855083,3.918912],[40.98105,2.78452],[40.993,-0.85829]]]},"type":"Feature","id":"KEN","properties":{"name":"Kenya","id":"KEN","centroid":[36.48,-1.17]}},{"geometry":{"type":"Polygon","coordinates":[[[70.962315,42.266154],[71.186281,42.704293],[71.844638,42.845395],[73.489758,42.500894],[73.645304,43.091272],[74.212866,43.298339],[75.636965,42.8779],[76.000354,42.988022],[77.658392,42.960686],[79.142177,42.856092],[79.643645,42.496683],[80.25999,42.349999],[80.11943,42.123941],[78.543661,41.582243],[78.187197,41.185316],[76.904484,41.066486],[76.526368,40.427946],[75.467828,40.562072],[74.776862,40.366425],[73.822244,39.893973],[73.960013,39.660008],[73.675379,39.431237],[71.784694,39.279463],[70.549162,39.604198],[69.464887,39.526683],[69.55961,40.103211],[70.648019,39.935754],[71.014198,40.244366],[71.774875,40.145844],[73.055417,40.866033],[71.870115,41.3929],[71.157859,41.143587],[70.420022,41.519998],[71.259248,42.167711],[70.962315,42.266154]]]},"type":"Feature","id":"KGZ","properties":{"name":"Kyrgyzstan","id":"KGZ","centroid":[74.46,42.54]}},{"geometry":{"type":"Polygon","coordinates":[[[103.49728,10.632555],[103.09069,11.153661],[102.584932,12.186595],[102.348099,13.394247],[102.988422,14.225721],[104.281418,14.416743],[105.218777,14.273212],[106.043946,13.881091],[106.496373,14.570584],[107.382727,14.202441],[107.614548,13.535531],[107.491403,12.337206],[105.810524,11.567615],[106.24967,10.961812],[105.199915,10.88931],[104.334335,10.486544],[103.49728,10.632555]]]},"type":"Feature","id":"KHM","properties":{"name":"Cambodia","id":"KHM","centroid":[104.55,11.33]}},{"geometry":{"type":"Polygon","coordinates":[[[128.349716,38.612243],[129.21292,37.432392],[129.46045,36.784189],[129.468304,35.632141],[129.091377,35.082484],[128.18585,34.890377],[127.386519,34.475674],[126.485748,34.390046],[126.37392,34.93456],[126.559231,35.684541],[126.117398,36.725485],[126.860143,36.893924],[126.174759,37.749686],[126.237339,37.840378],[126.68372,37.804773],[127.073309,38.256115],[127.780035,38.304536],[128.205746,38.370397],[128.349716,38.612243]]]},"type":"Feature","id":"KOR","properties":{"name":"South Korea","id":"KOR","centroid":[126.58,37.31]}},{"geometry":{"type":"Polygon","coordinates":[[[47.974519,29.975819],[48.183189,29.534477],[48.093943,29.306299],[48.416094,28.552004],[47.708851,28.526063],[47.459822,29.002519],[46.568713,29.099025],[47.302622,30.05907],[47.974519,29.975819]]]},"type":"Feature","id":"KWT","properties":{"name":"Kuwait","id":"KWT","centroid":[48,29.3]}},{"geometry":{"type":"Polygon","coordinates":[[[105.218777,14.273212],[105.544338,14.723934],[105.589039,15.570316],[104.779321,16.441865],[104.716947,17.428859],[103.956477,18.240954],[103.200192,18.309632],[102.998706,17.961695],[102.413005,17.932782],[102.113592,18.109102],[101.059548,17.512497],[101.035931,18.408928],[101.282015,19.462585],[100.606294,19.508344],[100.548881,20.109238],[100.115988,20.41785],[100.329101,20.786122],[101.180005,21.436573],[101.270026,21.201652],[101.80312,21.174367],[101.652018,22.318199],[102.170436,22.464753],[102.754896,21.675137],[103.203861,20.766562],[104.435,20.758733],[104.822574,19.886642],[104.183388,19.624668],[103.896532,19.265181],[105.094598,18.666975],[105.925762,17.485315],[106.556008,16.604284],[107.312706,15.908538],[107.564525,15.202173],[107.382727,14.202441],[106.496373,14.570584],[106.043946,13.881091],[105.218777,14.273212]]]},"type":"Feature","id":"LAO","properties":{"name":"Laos","id":"LAO","centroid":[102.36,17.58]}},{"geometry":{"type":"Polygon","coordinates":[[[35.821101,33.277426],[35.552797,33.264275],[35.460709,33.08904],[35.126053,33.0909],[35.482207,33.90545],[35.979592,34.610058],[35.998403,34.644914],[36.448194,34.593935],[36.61175,34.201789],[36.06646,33.824912],[35.821101,33.277426]]]},"type":"Feature","id":"LBN","properties":{"name":"Lebanon","id":"LBN","centroid":[35.31,33.53]}},{"geometry":{"type":"Polygon","coordinates":[[[-7.712159,4.364566],[-7.974107,4.355755],[-9.004794,4.832419],[-9.91342,5.593561],[-10.765384,6.140711],[-11.438779,6.785917],[-11.199802,7.105846],[-11.146704,7.396706],[-10.695595,7.939464],[-10.230094,8.406206],[-10.016567,8.428504],[-9.755342,8.541055],[-9.33728,7.928534],[-9.403348,7.526905],[-9.208786,7.313921],[-8.926065,7.309037],[-8.722124,7.711674],[-8.439298,7.686043],[-8.485446,7.395208],[-8.385452,6.911801],[-8.60288,6.467564],[-8.311348,6.193033],[-7.993693,6.12619],[-7.570153,5.707352],[-7.539715,5.313345],[-7.635368,5.188159],[-7.712159,4.364566]]]},"type":"Feature","id":"LBR","properties":{"name":"Liberia","id":"LBR","centroid":[-10.47,6.18]}},{"geometry":{"type":"Polygon","coordinates":[[[14.8513,22.86295],[14.143871,22.491289],[13.581425,23.040506],[11.999506,23.471668],[11.560669,24.097909],[10.771364,24.562532],[10.303847,24.379313],[9.948261,24.936954],[9.910693,25.365455],[9.319411,26.094325],[9.716286,26.512206],[9.629056,27.140953],[9.756128,27.688259],[9.683885,28.144174],[9.859998,28.95999],[9.805634,29.424638],[9.48214,30.307556],[9.970017,30.539325],[10.056575,30.961831],[9.950225,31.37607],[10.636901,31.761421],[10.94479,32.081815],[11.432253,32.368903],[11.488787,33.136996],[12.66331,32.79278],[13.08326,32.87882],[13.91868,32.71196],[15.24563,32.26508],[15.71394,31.37626],[16.61162,31.18218],[18.02109,30.76357],[19.08641,30.26639],[19.57404,30.52582],[20.05335,30.98576],[19.82033,31.75179],[20.13397,32.2382],[20.85452,32.7068],[21.54298,32.8432],[22.89576,32.63858],[23.2368,32.19149],[23.60913,32.18726],[23.9275,32.01667],[24.92114,31.89936],[25.16482,31.56915],[24.80287,31.08929],[24.95762,30.6616],[24.70007,30.04419],[25,29.238655],[25,25.6825],[25,22],[25,20.00304],[23.85,20],[23.83766,19.58047],[19.84926,21.49509],[15.86085,23.40972],[14.8513,22.86295]]]},"type":"Feature","id":"LBY","properties":{"name":"Libya","id":"LBY","centroid":[13.11,32.52]}},{"geometry":{"type":"Polygon","coordinates":[[[81.787959,7.523055],[81.637322,6.481775],[81.21802,6.197141],[80.348357,5.96837],[79.872469,6.763463],[79.695167,8.200843],[80.147801,9.824078],[80.838818,9.268427],[81.304319,8.564206],[81.787959,7.523055]]]},"type":"Feature","id":"LKA","properties":{"name":"Sri Lanka","id":"LKA","centroid":[79.54,6.54]}},{"geometry":{"type":"Polygon","coordinates":[[[28.978263,-28.955597],[29.325166,-29.257387],[29.018415,-29.743766],[28.8484,-30.070051],[28.291069,-30.226217],[28.107205,-30.545732],[27.749397,-30.645106],[26.999262,-29.875954],[27.532511,-29.242711],[28.074338,-28.851469],[28.5417,-28.647502],[28.978263,-28.955597]]]},"type":"Feature","id":"LSO","properties":{"name":"Lesotho","id":"LSO","centroid":[27.3,-29.18]}},{"geometry":{"type":"Polygon","coordinates":[[[22.731099,54.327537],[22.651052,54.582741],[22.757764,54.856574],[22.315724,55.015299],[21.268449,55.190482],[21.0558,56.031076],[22.201157,56.337802],[23.878264,56.273671],[24.860684,56.372528],[25.000934,56.164531],[25.533047,56.100297],[26.494331,55.615107],[26.588279,55.167176],[25.768433,54.846963],[25.536354,54.282423],[24.450684,53.905702],[23.484128,53.912498],[23.243987,54.220567],[22.731099,54.327537]]]},"type":"Feature","id":"LTU","properties":{"name":"Lithuania","id":"LTU","centroid":[25.19,54.38]}},{"geometry":{"type":"Polygon","coordinates":[[[6.043073,50.128052],[6.242751,49.902226],[6.18632,49.463803],[5.897759,49.442667],[5.674052,49.529484],[5.782417,50.090328],[6.043073,50.128052]]]},"type":"Feature","id":"LUX","properties":{"name":"Luxembourg","id":"LUX","centroid":[6.09,49.37]}},{"geometry":{"type":"Polygon","coordinates":[[[21.0558,56.031076],[21.090424,56.783873],[21.581866,57.411871],[22.524341,57.753374],[23.318453,57.006236],[24.12073,57.025693],[24.312863,57.793424],[25.164594,57.970157],[25.60281,57.847529],[26.463532,57.476389],[27.288185,57.474528],[27.770016,57.244258],[27.855282,56.759326],[28.176709,56.16913],[27.10246,55.783314],[26.494331,55.615107],[25.533047,56.100297],[25.000934,56.164531],[24.860684,56.372528],[23.878264,56.273671],[22.201157,56.337802],[21.0558,56.031076]]]},"type":"Feature","id":"LVA","properties":{"name":"Latvia","id":"LVA","centroid":[24.08,56.53]}},{"geometry":{"type":"Polygon","coordinates":[[[-5.193863,35.755182],[-4.591006,35.330712],[-3.640057,35.399855],[-2.604306,35.179093],[-2.169914,35.168396],[-1.792986,34.527919],[-1.733455,33.919713],[-1.388049,32.864015],[-1.124551,32.651522],[-1.307899,32.262889],[-2.616605,32.094346],[-3.06898,31.724498],[-3.647498,31.637294],[-3.690441,30.896952],[-4.859646,30.501188],[-5.242129,30.000443],[-6.060632,29.7317],[-7.059228,29.579228],[-8.674116,28.841289],[-8.66559,27.656426],[-8.817809,27.656426],[-8.817828,27.656426],[-8.794884,27.120696],[-9.413037,27.088476],[-9.735343,26.860945],[-10.189424,26.860945],[-10.551263,26.990808],[-11.392555,26.883424],[-11.71822,26.104092],[-12.030759,26.030866],[-12.500963,24.770116],[-13.89111,23.691009],[-14.221168,22.310163],[-14.630833,21.86094],[-14.750955,21.5006],[-17.002962,21.420734],[-17.020428,21.42231],[-16.973248,21.885745],[-16.589137,22.158234],[-16.261922,22.67934],[-16.326414,23.017768],[-15.982611,23.723358],[-15.426004,24.359134],[-15.089332,24.520261],[-14.824645,25.103533],[-14.800926,25.636265],[-14.43994,26.254418],[-13.773805,26.618892],[-13.139942,27.640148],[-13.121613,27.654148],[-12.618837,28.038186],[-11.688919,28.148644],[-10.900957,28.832142],[-10.399592,29.098586],[-9.564811,29.933574],[-9.814718,31.177736],[-9.434793,32.038096],[-9.300693,32.564679],[-8.657476,33.240245],[-7.654178,33.697065],[-6.912544,34.110476],[-6.244342,35.145865],[-5.929994,35.759988],[-5.193863,35.755182]]]},"type":"Feature","id":"MAR","properties":{"name":"Morocco","id":"MAR","centroid":[-6.5,34.01]}},{"geometry":{"type":"Polygon","coordinates":[[[26.619337,48.220726],[26.857824,48.368211],[27.522537,48.467119],[28.259547,48.155562],[28.670891,48.118149],[29.122698,47.849095],[29.050868,47.510227],[29.415135,47.346645],[29.559674,46.928583],[29.908852,46.674361],[29.83821,46.525326],[30.024659,46.423937],[29.759972,46.349988],[29.170654,46.379262],[29.072107,46.517678],[28.862972,46.437889],[28.933717,46.25883],[28.659987,45.939987],[28.485269,45.596907],[28.233554,45.488283],[28.054443,45.944586],[28.160018,46.371563],[28.12803,46.810476],[27.551166,47.405117],[27.233873,47.826771],[26.924176,48.123264],[26.619337,48.220726]]]},"type":"Feature","id":"MDA","properties":{"name":"Moldova","id":"MDA","centroid":[28.51,47]}},{"geometry":{"type":"Polygon","coordinates":[[[49.543519,-12.469833],[49.808981,-12.895285],[50.056511,-13.555761],[50.217431,-14.758789],[50.476537,-15.226512],[50.377111,-15.706069],[50.200275,-16.000263],[49.860606,-15.414253],[49.672607,-15.710204],[49.863344,-16.451037],[49.774564,-16.875042],[49.498612,-17.106036],[49.435619,-17.953064],[49.041792,-19.118781],[48.548541,-20.496888],[47.930749,-22.391501],[47.547723,-23.781959],[47.095761,-24.94163],[46.282478,-25.178463],[45.409508,-25.601434],[44.833574,-25.346101],[44.03972,-24.988345],[43.763768,-24.460677],[43.697778,-23.574116],[43.345654,-22.776904],[43.254187,-22.057413],[43.433298,-21.336475],[43.893683,-21.163307],[43.89637,-20.830459],[44.374325,-20.072366],[44.464397,-19.435454],[44.232422,-18.961995],[44.042976,-18.331387],[43.963084,-17.409945],[44.312469,-16.850496],[44.446517,-16.216219],[44.944937,-16.179374],[45.502732,-15.974373],[45.872994,-15.793454],[46.312243,-15.780018],[46.882183,-15.210182],[47.70513,-14.594303],[48.005215,-14.091233],[47.869047,-13.663869],[48.293828,-13.784068],[48.84506,-13.089175],[48.863509,-12.487868],[49.194651,-12.040557],[49.543519,-12.469833]]]},"type":"Feature","id":"MDG","properties":{"name":"Madagascar","id":"MDG","centroid":[47.31,-18.55]}},{"geometry":{"type":"Polygon","coordinates":[[[-97.140008,25.869997],[-97.528072,24.992144],[-97.702946,24.272343],[-97.776042,22.93258],[-97.872367,22.444212],[-97.699044,21.898689],[-97.38896,21.411019],[-97.189333,20.635433],[-96.525576,19.890931],[-96.292127,19.320371],[-95.900885,18.828024],[-94.839063,18.562717],[-94.42573,18.144371],[-93.548651,18.423837],[-92.786114,18.524839],[-92.037348,18.704569],[-91.407903,18.876083],[-90.77187,19.28412],[-90.53359,19.867418],[-90.451476,20.707522],[-90.278618,20.999855],[-89.601321,21.261726],[-88.543866,21.493675],[-87.658417,21.458846],[-87.05189,21.543543],[-86.811982,21.331515],[-86.845908,20.849865],[-87.383291,20.255405],[-87.621054,19.646553],[-87.43675,19.472403],[-87.58656,19.04013],[-87.837191,18.259816],[-88.090664,18.516648],[-88.300031,18.499982],[-88.490123,18.486831],[-88.848344,17.883198],[-89.029857,18.001511],[-89.150909,17.955468],[-89.14308,17.808319],[-90.067934,17.819326],[-91.00152,17.817595],[-91.002269,17.254658],[-91.453921,17.252177],[-91.08167,16.918477],[-90.711822,16.687483],[-90.600847,16.470778],[-90.438867,16.41011],[-90.464473,16.069562],[-91.74796,16.066565],[-92.229249,15.251447],[-92.087216,15.064585],[-92.20323,14.830103],[-92.22775,14.538829],[-93.359464,15.61543],[-93.875169,15.940164],[-94.691656,16.200975],[-95.250227,16.128318],[-96.053382,15.752088],[-96.557434,15.653515],[-97.263592,15.917065],[-98.01303,16.107312],[-98.947676,16.566043],[-99.697397,16.706164],[-100.829499,17.171071],[-101.666089,17.649026],[-101.918528,17.91609],[-102.478132,17.975751],[-103.50099,18.292295],[-103.917527,18.748572],[-104.99201,19.316134],[-105.493038,19.946767],[-105.731396,20.434102],[-105.397773,20.531719],[-105.500661,20.816895],[-105.270752,21.076285],[-105.265817,21.422104],[-105.603161,21.871146],[-105.693414,22.26908],[-106.028716,22.773752],[-106.90998,23.767774],[-107.915449,24.548915],[-108.401905,25.172314],[-109.260199,25.580609],[-109.444089,25.824884],[-109.291644,26.442934],[-109.801458,26.676176],[-110.391732,27.162115],[-110.641019,27.859876],[-111.178919,27.941241],[-111.759607,28.467953],[-112.228235,28.954409],[-112.271824,29.266844],[-112.809594,30.021114],[-113.163811,30.786881],[-113.148669,31.170966],[-113.871881,31.567608],[-114.205737,31.524045],[-114.776451,31.799532],[-114.9367,31.393485],[-114.771232,30.913617],[-114.673899,30.162681],[-114.330974,29.750432],[-113.588875,29.061611],[-113.424053,28.826174],[-113.271969,28.754783],[-113.140039,28.411289],[-112.962298,28.42519],[-112.761587,27.780217],[-112.457911,27.525814],[-112.244952,27.171727],[-111.616489,26.662817],[-111.284675,25.73259],[-110.987819,25.294606],[-110.710007,24.826004],[-110.655049,24.298595],[-110.172856,24.265548],[-109.771847,23.811183],[-109.409104,23.364672],[-109.433392,23.185588],[-109.854219,22.818272],[-110.031392,22.823078],[-110.295071,23.430973],[-110.949501,24.000964],[-111.670568,24.484423],[-112.182036,24.738413],[-112.148989,25.470125],[-112.300711,26.012004],[-112.777297,26.32196],[-113.464671,26.768186],[-113.59673,26.63946],[-113.848937,26.900064],[-114.465747,27.14209],[-115.055142,27.722727],[-114.982253,27.7982],[-114.570366,27.741485],[-114.199329,28.115003],[-114.162018,28.566112],[-114.931842,29.279479],[-115.518654,29.556362],[-115.887365,30.180794],[-116.25835,30.836464],[-116.721526,31.635744],[-117.12776,32.53534],[-115.99135,32.61239],[-114.72139,32.72083],[-114.815,32.52528],[-113.30498,32.03914],[-111.02361,31.33472],[-109.035,31.34194],[-108.24194,31.34222],[-108.24,31.754854],[-106.50759,31.75452],[-106.1429,31.39995],[-105.63159,31.08383],[-105.03737,30.64402],[-104.70575,30.12173],[-104.45697,29.57196],[-103.94,29.27],[-103.11,28.97],[-102.48,29.76],[-101.6624,29.7793],[-100.9576,29.38071],[-100.45584,28.69612],[-100.11,28.11],[-99.52,27.54],[-99.3,26.84],[-99.02,26.37],[-98.24,26.06],[-97.53,25.84],[-97.140008,25.869997]]]},"type":"Feature","id":"MEX","properties":{"name":"Mexico","id":"MEX","centroid":[-99.1,19.2]}},{"geometry":{"type":"Polygon","coordinates":[[[20.59023,41.85541],[20.71731,41.84711],[20.76216,42.05186],[21.3527,42.2068],[21.576636,42.245224],[21.91708,42.30364],[22.380526,42.32026],[22.881374,41.999297],[22.952377,41.337994],[22.76177,41.3048],[22.597308,41.130487],[22.055378,41.149866],[21.674161,40.931275],[21.02004,40.842727],[20.60518,41.08622],[20.46315,41.51509],[20.59023,41.85541]]]},"type":"Feature","id":"MKD","properties":{"name":"Macedonia","id":"MKD","centroid":null}},{"geometry":{"type":"Polygon","coordinates":[[[-12.17075,14.616834],[-11.834208,14.799097],[-11.666078,15.388208],[-11.349095,15.411256],[-10.650791,15.132746],[-10.086846,15.330486],[-9.700255,15.264107],[-9.550238,15.486497],[-5.537744,15.50169],[-5.315277,16.201854],[-5.488523,16.325102],[-5.971129,20.640833],[-6.453787,24.956591],[-4.923337,24.974574],[-1.550055,22.792666],[1.823228,20.610809],[2.060991,20.142233],[2.683588,19.85623],[3.146661,19.693579],[3.158133,19.057364],[4.267419,19.155265],[4.27021,16.852227],[3.723422,16.184284],[3.638259,15.56812],[2.749993,15.409525],[1.385528,15.323561],[1.015783,14.968182],[0.374892,14.928908],[-0.266257,14.924309],[-0.515854,15.116158],[-1.066363,14.973815],[-2.001035,14.559008],[-2.191825,14.246418],[-2.967694,13.79815],[-3.103707,13.541267],[-3.522803,13.337662],[-4.006391,13.472485],[-4.280405,13.228444],[-4.427166,12.542646],[-5.220942,11.713859],[-5.197843,11.375146],[-5.470565,10.95127],[-5.404342,10.370737],[-5.816926,10.222555],[-6.050452,10.096361],[-6.205223,10.524061],[-6.493965,10.411303],[-6.666461,10.430811],[-6.850507,10.138994],[-7.622759,10.147236],[-7.89959,10.297382],[-8.029944,10.206535],[-8.335377,10.494812],[-8.282357,10.792597],[-8.407311,10.909257],[-8.620321,10.810891],[-8.581305,11.136246],[-8.376305,11.393646],[-8.786099,11.812561],[-8.905265,12.088358],[-9.127474,12.30806],[-9.327616,12.334286],[-9.567912,12.194243],[-9.890993,12.060479],[-10.165214,11.844084],[-10.593224,11.923975],[-10.87083,12.177887],[-11.036556,12.211245],[-11.297574,12.077971],[-11.456169,12.076834],[-11.513943,12.442988],[-11.467899,12.754519],[-11.553398,13.141214],[-11.927716,13.422075],[-12.124887,13.994727],[-12.17075,14.616834]]]},"type":"Feature","id":"MLI","properties":{"name":"Mali","id":"MLI","centroid":[-7.55,12.34]}},{"geometry":{"type":"Polygon","coordinates":[[[99.543309,20.186598],[98.959676,19.752981],[98.253724,19.708203],[97.797783,18.62708],[97.375896,18.445438],[97.859123,17.567946],[98.493761,16.837836],[98.903348,16.177824],[98.537376,15.308497],[98.192074,15.123703],[98.430819,14.622028],[99.097755,13.827503],[99.212012,13.269294],[99.196354,12.804748],[99.587286,11.892763],[99.038121,10.960546],[98.553551,9.93296],[98.457174,10.675266],[98.764546,11.441292],[98.428339,12.032987],[98.509574,13.122378],[98.103604,13.64046],[97.777732,14.837286],[97.597072,16.100568],[97.16454,16.928734],[96.505769,16.427241],[95.369352,15.71439],[94.808405,15.803454],[94.188804,16.037936],[94.533486,17.27724],[94.324817,18.213514],[93.540988,19.366493],[93.663255,19.726962],[93.078278,19.855145],[92.368554,20.670883],[92.303234,21.475485],[92.652257,21.324048],[92.672721,22.041239],[93.166128,22.27846],[93.060294,22.703111],[93.286327,23.043658],[93.325188,24.078556],[94.106742,23.850741],[94.552658,24.675238],[94.603249,25.162495],[95.155153,26.001307],[95.124768,26.573572],[96.419366,27.264589],[97.133999,27.083774],[97.051989,27.699059],[97.402561,27.882536],[97.327114,28.261583],[97.911988,28.335945],[98.246231,27.747221],[98.68269,27.508812],[98.712094,26.743536],[98.671838,25.918703],[97.724609,25.083637],[97.60472,23.897405],[98.660262,24.063286],[98.898749,23.142722],[99.531992,22.949039],[99.240899,22.118314],[99.983489,21.742937],[100.416538,21.558839],[101.150033,21.849984],[101.180005,21.436573],[100.329101,20.786122],[100.115988,20.41785],[99.543309,20.186598]]]},"type":"Feature","id":"MMR","properties":{"name":"Myanmar","id":"MMR","centroid":[96.2,16.45]}},{"geometry":{"type":"Polygon","coordinates":[[[19.801613,42.500093],[19.738051,42.688247],[19.30449,42.19574],[19.37177,41.87755],[19.16246,41.95502],[18.88214,42.28151],[18.45,42.48],[18.56,42.65],[18.70648,43.20011],[19.03165,43.43253],[19.21852,43.52384],[19.48389,43.35229],[19.63,43.21378],[19.95857,43.10604],[20.3398,42.89852],[20.25758,42.81275],[20.0707,42.58863],[19.801613,42.500093]]]},"type":"Feature","id":"MNE","properties":{"name":"Montenegro","id":"MNE","centroid":[19.28,42.47]}},{"geometry":{"type":"Polygon","coordinates":[[[87.751264,49.297198],[88.805567,49.470521],[90.713667,50.331812],[92.234712,50.802171],[93.104219,50.49529],[94.147566,50.480537],[94.815949,50.013433],[95.814028,49.977467],[97.259728,49.726061],[98.231762,50.422401],[97.82574,51.010995],[98.861491,52.047366],[99.981732,51.634006],[100.88948,51.516856],[102.065223,51.259921],[102.255909,50.510561],[103.676545,50.089966],[104.621552,50.275329],[105.886591,50.406019],[106.888804,50.274296],[107.868176,49.793705],[108.475167,49.282548],[109.402449,49.292961],[110.662011,49.130128],[111.581231,49.377968],[112.89774,49.543565],[114.362456,50.248303],[114.96211,50.140247],[115.485695,49.805177],[116.678801,49.888531],[116.191802,49.134598],[115.485282,48.135383],[115.742837,47.726545],[116.308953,47.85341],[117.295507,47.697709],[118.064143,48.06673],[118.866574,47.74706],[119.772824,47.048059],[119.66327,46.69268],[118.874326,46.805412],[117.421701,46.672733],[116.717868,46.388202],[115.985096,45.727235],[114.460332,45.339817],[113.463907,44.808893],[112.436062,45.011646],[111.873306,45.102079],[111.348377,44.457442],[111.667737,44.073176],[111.829588,43.743118],[111.129682,43.406834],[110.412103,42.871234],[109.243596,42.519446],[107.744773,42.481516],[106.129316,42.134328],[104.964994,41.59741],[104.522282,41.908347],[103.312278,41.907468],[101.83304,42.514873],[100.845866,42.663804],[99.515817,42.524691],[97.451757,42.74889],[96.349396,42.725635],[95.762455,43.319449],[95.306875,44.241331],[94.688929,44.352332],[93.480734,44.975472],[92.133891,45.115076],[90.94554,45.286073],[90.585768,45.719716],[90.970809,46.888146],[90.280826,47.693549],[88.854298,48.069082],[88.013832,48.599463],[87.751264,49.297198]]]},"type":"Feature","id":"MNG","properties":{"name":"Mongolia","id":"MNG","centroid":[106.55,47.55]}},{"geometry":{"type":"Polygon","coordinates":[[[34.559989,-11.52002],[35.312398,-11.439146],[36.514082,-11.720938],[36.775151,-11.594537],[37.471284,-11.568751],[37.827645,-11.268769],[38.427557,-11.285202],[39.52103,-10.896854],[40.316589,-10.317096],[40.478387,-10.765441],[40.437253,-11.761711],[40.560811,-12.639177],[40.59962,-14.201975],[40.775475,-14.691764],[40.477251,-15.406294],[40.089264,-16.100774],[39.452559,-16.720891],[38.538351,-17.101023],[37.411133,-17.586368],[36.281279,-18.659688],[35.896497,-18.84226],[35.1984,-19.552811],[34.786383,-19.784012],[34.701893,-20.497043],[35.176127,-21.254361],[35.373428,-21.840837],[35.385848,-22.14],[35.562546,-22.09],[35.533935,-23.070788],[35.371774,-23.535359],[35.60747,-23.706563],[35.458746,-24.12261],[35.040735,-24.478351],[34.215824,-24.816314],[33.01321,-25.357573],[32.574632,-25.727318],[32.660363,-26.148584],[32.915955,-26.215867],[32.83012,-26.742192],[32.071665,-26.73382],[31.985779,-26.29178],[31.837778,-25.843332],[31.752408,-25.484284],[31.930589,-24.369417],[31.670398,-23.658969],[31.191409,-22.25151],[32.244988,-21.116489],[32.508693,-20.395292],[32.659743,-20.30429],[32.772708,-19.715592],[32.611994,-19.419383],[32.654886,-18.67209],[32.849861,-17.979057],[32.847639,-16.713398],[32.328239,-16.392074],[31.852041,-16.319417],[31.636498,-16.07199],[31.173064,-15.860944],[30.338955,-15.880839],[30.274256,-15.507787],[30.179481,-14.796099],[33.214025,-13.97186],[33.7897,-14.451831],[34.064825,-14.35995],[34.459633,-14.61301],[34.517666,-15.013709],[34.307291,-15.478641],[34.381292,-16.18356],[35.03381,-16.8013],[35.339063,-16.10744],[35.771905,-15.896859],[35.686845,-14.611046],[35.267956,-13.887834],[34.907151,-13.565425],[34.559989,-13.579998],[34.280006,-12.280025],[34.559989,-11.52002]]]},"type":"Feature","id":"MOZ","properties":{"name":"Mozambique","id":"MOZ","centroid":[32.32,-25.58]}},{"geometry":{"type":"Polygon","coordinates":[[[-12.17075,14.616834],[-12.830658,15.303692],[-13.435738,16.039383],[-14.099521,16.304302],[-14.577348,16.598264],[-15.135737,16.587282],[-15.623666,16.369337],[-16.12069,16.455663],[-16.463098,16.135036],[-16.549708,16.673892],[-16.270552,17.166963],[-16.146347,18.108482],[-16.256883,19.096716],[-16.377651,19.593817],[-16.277838,20.092521],[-16.536324,20.567866],[-17.063423,20.999752],[-16.845194,21.333323],[-12.929102,21.327071],[-13.118754,22.77122],[-12.874222,23.284832],[-11.937224,23.374594],[-11.969419,25.933353],[-8.687294,25.881056],[-8.6844,27.395744],[-4.923337,24.974574],[-6.453787,24.956591],[-5.971129,20.640833],[-5.488523,16.325102],[-5.315277,16.201854],[-5.537744,15.50169],[-9.550238,15.486497],[-9.700255,15.264107],[-10.086846,15.330486],[-10.650791,15.132746],[-11.349095,15.411256],[-11.666078,15.388208],[-11.834208,14.799097],[-12.17075,14.616834]]]},"type":"Feature","id":"MRT","properties":{"name":"Mauritania","id":"MRT","centroid":[-15.58,18.04]}},{"geometry":{"type":"Polygon","coordinates":[[[34.559989,-11.52002],[34.280006,-12.280025],[34.559989,-13.579998],[34.907151,-13.565425],[35.267956,-13.887834],[35.686845,-14.611046],[35.771905,-15.896859],[35.339063,-16.10744],[35.03381,-16.8013],[34.381292,-16.18356],[34.307291,-15.478641],[34.517666,-15.013709],[34.459633,-14.61301],[34.064825,-14.35995],[33.7897,-14.451831],[33.214025,-13.97186],[32.688165,-13.712858],[32.991764,-12.783871],[33.306422,-12.435778],[33.114289,-11.607198],[33.31531,-10.79655],[33.485688,-10.525559],[33.231388,-9.676722],[32.759375,-9.230599],[33.739729,-9.417151],[33.940838,-9.693674],[34.280006,-10.16],[34.559989,-11.52002]]]},"type":"Feature","id":"MWI","properties":{"name":"Malawi","id":"MWI","centroid":[33.48,-14]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[111.38925781250006,2.415332031250031],[111.31152343749997,2.437597656250034],[111.33349609374997,2.768310546875],[111.38925781250006,2.415332031250031]]],[[[104.22158203125,2.731738281250003],[104.1291015625001,2.767236328125037],[104.18476562500004,2.871728515625009],[104.22158203125,2.731738281250003]]],[[[117.88476562499997,4.186132812500006],[117.64902343750012,4.168994140624974],[117.70800781249997,4.262402343749997],[117.88476562499997,4.186132812500006]]],[[[100.28896484375005,5.294726562499989],[100.19101562500006,5.28286132812498],[100.2455078125,5.467773437499986],[100.33886718749997,5.410058593750037],[100.28896484375005,5.294726562499989]]],[[[99.848046875,6.465722656249994],[99.9186523437501,6.358593750000011],[99.74375,6.263281249999963],[99.64628906250002,6.418359375000023],[99.848046875,6.465722656249994]]],[[[102.10107421874997,6.242236328125031],[102.34013671875002,6.172021484375023],[102.534375,5.862548828125028],[103.09707031250005,5.408447265624986],[103.41582031250007,4.85029296875004],[103.43945312499997,2.93310546875],[103.8122070312501,2.58046875],[104.21855468750002,1.722851562499997],[104.25009765625012,1.388574218750009],[104.11494140625004,1.412255859375037],[103.98144531250003,1.623632812500034],[103.99150390625002,1.454785156249997],[103.6945312500001,1.449658203125026],[103.48027343750007,1.329492187499966],[103.35683593750005,1.546142578125057],[102.72714843750012,1.855566406250034],[101.29550781250012,2.885205078125011],[101.29990234375012,3.253271484375034],[100.71542968750006,3.966210937499966],[100.79550781250012,4.023388671874983],[100.61455078125002,4.3734375],[100.34326171874997,5.984179687500031],[100.11914062499997,6.441992187500048],[100.26142578125004,6.682714843749963],[100.3454101562501,6.549902343750006],[100.75449218750012,6.460058593749991],[100.87392578125,6.24541015624996],[101.05351562500002,6.242578125],[100.98164062500004,5.771044921875045],[101.1139648437501,5.636767578125045],[101.5560546875,5.907763671875003],[101.67841796875004,5.778808593750028],[101.87363281250012,5.825292968749991],[102.10107421874997,6.242236328125031]]],[[[117.5744140625001,4.17060546875004],[117.10058593750003,4.337060546875023],[116.51474609375006,4.370800781249969],[115.86074218750005,4.348046875000037],[115.67880859375006,4.193017578124994],[115.45439453125002,3.034326171875009],[115.24697265625005,3.025927734374989],[115.117578125,2.89487304687502],[115.08076171875004,2.63422851562504],[115.1791015625,2.523193359374972],[114.78642578125002,2.250488281250014],[114.83056640625003,1.980029296874989],[114.5125,1.452001953124963],[113.90234375000003,1.434277343749997],[113.6222656250001,1.2359375],[113.00654296875004,1.433886718750003],[112.94296875000006,1.566992187500034],[112.47617187500006,1.559082031250028],[112.1857421875001,1.4390625],[112.078515625,1.143359374999974],[111.80898437500005,1.011669921874969],[111.10136718750002,1.050537109374986],[110.50576171875005,0.861962890625023],[109.65400390625004,1.614892578125023],[109.53896484375,1.89619140625004],[109.62890625000003,2.027539062499983],[109.86484375000012,1.764453125000031],[110.34921875000012,1.719726562499972],[111.22324218750012,1.395849609374991],[111.0287109375,1.557812500000026],[111.26816406250012,2.13974609375002],[111.20859375000012,2.379638671875043],[111.44384765625003,2.381542968749983],[111.5125,2.743017578124991],[112.98789062500006,3.161914062499974],[113.92392578125006,4.243212890625003],[114.0638671875,4.592675781249966],[114.65410156250007,4.037646484375045],[114.84023437500005,4.393212890625009],[114.74667968750006,4.718066406250017],[115.02675781250005,4.899707031249989],[115.10703125000006,4.390429687499974],[115.290625,4.352587890624989],[115.1400390625,4.899755859374991],[115.37490234375,4.932763671874966],[115.55449218750007,5.093554687500045],[115.41904296875012,5.413183593749963],[115.60390625,5.603417968749994],[115.74082031250012,5.533007812500045],[115.8771484375001,5.613525390625014],[116.74980468750007,6.977099609374989],[116.8498046875001,6.826708984374989],[116.78808593749997,6.606103515624994],[117.12851562500012,6.968896484375009],[117.2298828125,6.939990234374974],[117.29404296875006,6.676904296875023],[117.60966796875002,6.512646484375054],[117.69375,6.35],[117.64453124999997,6.001855468749994],[117.5011718750001,5.884667968750009],[118.00380859375,6.053320312499991],[118.11582031250006,5.8625],[117.93476562500004,5.7875],[117.97363281249997,5.70625],[118.35312500000012,5.80605468749998],[118.59482421875006,5.592089843750003],[119.22343750000007,5.412646484375031],[119.2663085937501,5.308105468750057],[119.21962890625,5.159814453125037],[118.9125,5.02290039062504],[118.26054687500007,4.988867187500034],[118.18535156250002,4.828515625000051],[118.5625,4.502148437499997],[118.54833984375003,4.379248046875006],[118.008203125,4.250244140625014],[117.6964843750001,4.342822265625045],[117.5744140625001,4.17060546875004]]],[[[117.14160156250003,7.168212890625028],[117.08066406250006,7.115283203124989],[117.06425781250007,7.26069335937504],[117.2640625,7.351660156250006],[117.26679687500004,7.220800781249991],[117.14160156250003,7.168212890625028]]]]},"type":"Feature","id":"MYS","properties":{"name":"Malaysia","id":"MYS","centroid":[101.41,3.09]}},{"geometry":{"type":"Polygon","coordinates":[[[16.344977,-28.576705],[15.601818,-27.821247],[15.210472,-27.090956],[14.989711,-26.117372],[14.743214,-25.39292],[14.408144,-23.853014],[14.385717,-22.656653],[14.257714,-22.111208],[13.868642,-21.699037],[13.352498,-20.872834],[12.826845,-19.673166],[12.608564,-19.045349],[11.794919,-18.069129],[11.734199,-17.301889],[12.215461,-17.111668],[12.814081,-16.941343],[13.462362,-16.971212],[14.058501,-17.423381],[14.209707,-17.353101],[18.263309,-17.309951],[18.956187,-17.789095],[21.377176,-17.930636],[23.215048,-17.523116],[24.033862,-17.295843],[24.682349,-17.353411],[25.07695,-17.578823],[25.084443,-17.661816],[24.520705,-17.887125],[24.217365,-17.889347],[23.579006,-18.281261],[23.196858,-17.869038],[21.65504,-18.219146],[20.910641,-18.252219],[20.881134,-21.814327],[19.895458,-21.849157],[19.895768,-24.76779],[19.894734,-28.461105],[19.002127,-28.972443],[18.464899,-29.045462],[17.836152,-28.856378],[17.387497,-28.783514],[17.218929,-28.355943],[16.824017,-28.082162],[16.344977,-28.576705]]]},"type":"Feature","id":"NAM","properties":{"name":"Namibia","id":"NAM","centroid":[17.04,-22.35]}},{"geometry":{"type":"Polygon","coordinates":[[[165.77999,-21.080005],[166.599991,-21.700019],[167.120011,-22.159991],[166.740035,-22.399976],[166.189732,-22.129708],[165.474375,-21.679607],[164.829815,-21.14982],[164.167995,-20.444747],[164.029606,-20.105646],[164.459967,-20.120012],[165.020036,-20.459991],[165.460009,-20.800022],[165.77999,-21.080005]]]},"type":"Feature","id":"NCL","properties":{"name":"New Caledonia","id":"NCL","centroid":[166.3,-22.17]}},{"geometry":{"type":"Polygon","coordinates":[[[2.154474,11.94015],[2.177108,12.625018],[1.024103,12.851826],[0.993046,13.33575],[0.429928,13.988733],[0.295646,14.444235],[0.374892,14.928908],[1.015783,14.968182],[1.385528,15.323561],[2.749993,15.409525],[3.638259,15.56812],[3.723422,16.184284],[4.27021,16.852227],[4.267419,19.155265],[5.677566,19.601207],[8.572893,21.565661],[11.999506,23.471668],[13.581425,23.040506],[14.143871,22.491289],[14.8513,22.86295],[15.096888,21.308519],[15.471077,21.048457],[15.487148,20.730415],[15.903247,20.387619],[15.685741,19.95718],[15.300441,17.92795],[15.247731,16.627306],[13.972202,15.684366],[13.540394,14.367134],[13.956699,13.996691],[13.954477,13.353449],[14.595781,13.330427],[14.495787,12.859396],[14.213531,12.802035],[14.181336,12.483657],[13.995353,12.461565],[13.318702,13.556356],[13.083987,13.596147],[12.302071,13.037189],[11.527803,13.32898],[10.989593,13.387323],[10.701032,13.246918],[10.114814,13.277252],[9.524928,12.851102],[9.014933,12.826659],[7.804671,13.343527],[7.330747,13.098038],[6.820442,13.115091],[6.445426,13.492768],[5.443058,13.865924],[4.368344,13.747482],[4.107946,13.531216],[3.967283,12.956109],[3.680634,12.552903],[3.61118,11.660167],[2.848643,12.235636],[2.490164,12.233052],[2.154474,11.94015]]]},"type":"Feature","id":"NER","properties":{"name":"Niger","id":"NER","centroid":[2.06,13.27]}},{"geometry":{"type":"Polygon","coordinates":[[[8.500288,4.771983],[7.462108,4.412108],[7.082596,4.464689],[6.698072,4.240594],[5.898173,4.262453],[5.362805,4.887971],[5.033574,5.611802],[4.325607,6.270651],[3.57418,6.2583],[2.691702,6.258817],[2.749063,7.870734],[2.723793,8.506845],[2.912308,9.137608],[3.220352,9.444153],[3.705438,10.06321],[3.60007,10.332186],[3.797112,10.734746],[3.572216,11.327939],[3.61118,11.660167],[3.680634,12.552903],[3.967283,12.956109],[4.107946,13.531216],[4.368344,13.747482],[5.443058,13.865924],[6.445426,13.492768],[6.820442,13.115091],[7.330747,13.098038],[7.804671,13.343527],[9.014933,12.826659],[9.524928,12.851102],[10.114814,13.277252],[10.701032,13.246918],[10.989593,13.387323],[11.527803,13.32898],[12.302071,13.037189],[13.083987,13.596147],[13.318702,13.556356],[13.995353,12.461565],[14.181336,12.483657],[14.577178,12.085361],[14.468192,11.904752],[14.415379,11.572369],[13.57295,10.798566],[13.308676,10.160362],[13.1676,9.640626],[12.955468,9.417772],[12.753672,8.717763],[12.218872,8.305824],[12.063946,7.799808],[11.839309,7.397042],[11.745774,6.981383],[11.058788,6.644427],[10.497375,7.055358],[10.118277,7.03877],[9.522706,6.453482],[9.233163,6.444491],[8.757533,5.479666],[8.500288,4.771983]]]},"type":"Feature","id":"NGA","properties":{"name":"Nigeria","id":"NGA","centroid":[7.32,9.05]}},{"geometry":{"type":"Polygon","coordinates":[[[-85.71254,11.088445],[-86.058488,11.403439],[-86.52585,11.806877],[-86.745992,12.143962],[-87.167516,12.458258],[-87.668493,12.90991],[-87.557467,13.064552],[-87.392386,12.914018],[-87.316654,12.984686],[-87.005769,13.025794],[-86.880557,13.254204],[-86.733822,13.263093],[-86.755087,13.754845],[-86.520708,13.778487],[-86.312142,13.771356],[-86.096264,14.038187],[-85.801295,13.836055],[-85.698665,13.960078],[-85.514413,14.079012],[-85.165365,14.35437],[-85.148751,14.560197],[-85.052787,14.551541],[-84.924501,14.790493],[-84.820037,14.819587],[-84.649582,14.666805],[-84.449336,14.621614],[-84.228342,14.748764],[-83.975721,14.749436],[-83.628585,14.880074],[-83.489989,15.016267],[-83.147219,14.995829],[-83.233234,14.899866],[-83.284162,14.676624],[-83.182126,14.310703],[-83.4125,13.970078],[-83.519832,13.567699],[-83.552207,13.127054],[-83.498515,12.869292],[-83.473323,12.419087],[-83.626104,12.32085],[-83.719613,11.893124],[-83.650858,11.629032],[-83.85547,11.373311],[-83.808936,11.103044],[-83.655612,10.938764],[-83.895054,10.726839],[-84.190179,10.79345],[-84.355931,10.999226],[-84.673069,11.082657],[-84.903003,10.952303],[-85.561852,11.217119],[-85.71254,11.088445]]]},"type":"Feature","id":"NIC","properties":{"name":"Nicaragua","id":"NIC","centroid":[-86.2,12.06]}},{"geometry":{"type":"Polygon","coordinates":[[[6.074183,53.510403],[6.90514,53.482162],[7.092053,53.144043],[6.84287,52.22844],[6.589397,51.852029],[5.988658,51.851616],[6.156658,50.803721],[5.606976,51.037298],[4.973991,51.475024],[4.047071,51.267259],[3.314971,51.345755],[3.830289,51.620545],[4.705997,53.091798],[6.074183,53.510403]]]},"type":"Feature","id":"NLD","properties":{"name":"Netherlands","id":"NLD","centroid":[4.54,52.23]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[28.165547,71.185474],[31.293418,70.453788],[30.005435,70.186259],[31.101079,69.55808],[29.399581,69.156916],[28.59193,69.064777],[29.015573,69.766491],[27.732292,70.164193],[26.179622,69.825299],[25.689213,69.092114],[24.735679,68.649557],[23.66205,68.891247],[22.356238,68.841741],[21.244936,69.370443],[20.645593,69.106247],[20.025269,69.065139],[19.87856,68.407194],[17.993868,68.567391],[17.729182,68.010552],[16.768879,68.013937],[16.108712,67.302456],[15.108411,66.193867],[13.55569,64.787028],[13.919905,64.445421],[13.571916,64.049114],[12.579935,64.066219],[11.930569,63.128318],[11.992064,61.800362],[12.631147,61.293572],[12.300366,60.117933],[11.468272,59.432393],[11.027369,58.856149],[10.356557,59.469807],[8.382,58.313288],[7.048748,58.078884],[5.665835,58.588155],[5.308234,59.663232],[4.992078,61.970998],[5.9129,62.614473],[8.553411,63.454008],[10.527709,64.486038],[12.358347,65.879726],[14.761146,67.810642],[16.435927,68.563205],[19.184028,69.817444],[21.378416,70.255169],[23.023742,70.202072],[24.546543,71.030497],[26.37005,70.986262],[28.165547,71.185474]]],[[[24.72412,77.85385],[22.49032,77.44493],[20.72601,77.67704],[21.41611,77.93504],[20.8119,78.25463],[22.88426,78.45494],[23.28134,78.07954],[24.72412,77.85385]]],[[[18.25183,79.70175],[21.54383,78.95611],[19.02737,78.5626],[18.47172,77.82669],[17.59441,77.63796],[17.1182,76.80941],[15.91315,76.77045],[13.76259,77.38035],[14.66956,77.73565],[13.1706,78.02493],[11.22231,78.8693],[10.44453,79.65239],[13.17077,80.01046],[13.71852,79.66039],[15.14282,79.67431],[15.52255,80.01608],[16.99085,80.05086],[18.25183,79.70175]]],[[[25.447625,80.40734],[27.407506,80.056406],[25.924651,79.517834],[23.024466,79.400012],[20.075188,79.566823],[19.897266,79.842362],[18.462264,79.85988],[17.368015,80.318896],[20.455992,80.598156],[21.907945,80.357679],[22.919253,80.657144],[25.447625,80.40734]]]]},"type":"Feature","id":"NOR","properties":{"name":"Norway","id":"NOR","centroid":[10.45,59.55]}},{"geometry":{"type":"Polygon","coordinates":[[[88.120441,27.876542],[88.043133,27.445819],[88.174804,26.810405],[88.060238,26.414615],[87.227472,26.397898],[86.024393,26.630985],[85.251779,26.726198],[84.675018,27.234901],[83.304249,27.364506],[81.999987,27.925479],[81.057203,28.416095],[80.088425,28.79447],[80.476721,29.729865],[81.111256,30.183481],[81.525804,30.422717],[82.327513,30.115268],[83.337115,29.463732],[83.898993,29.320226],[84.23458,28.839894],[85.011638,28.642774],[85.82332,28.203576],[86.954517,27.974262],[88.120441,27.876542]]]},"type":"Feature","id":"NPL","properties":{"name":"Nepal","id":"NPL","centroid":[85.2,27.45]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[173.020375,-40.919052],[173.247234,-41.331999],[173.958405,-40.926701],[174.247587,-41.349155],[174.248517,-41.770008],[173.876447,-42.233184],[173.22274,-42.970038],[172.711246,-43.372288],[173.080113,-43.853344],[172.308584,-43.865694],[171.452925,-44.242519],[171.185138,-44.897104],[170.616697,-45.908929],[169.831422,-46.355775],[169.332331,-46.641235],[168.411354,-46.619945],[167.763745,-46.290197],[166.676886,-46.219917],[166.509144,-45.852705],[167.046424,-45.110941],[168.303763,-44.123973],[168.949409,-43.935819],[169.667815,-43.555326],[170.52492,-43.031688],[171.12509,-42.512754],[171.569714,-41.767424],[171.948709,-41.514417],[172.097227,-40.956104],[172.79858,-40.493962],[173.020375,-40.919052]]],[[[174.612009,-36.156397],[175.336616,-37.209098],[175.357596,-36.526194],[175.808887,-36.798942],[175.95849,-37.555382],[176.763195,-37.881253],[177.438813,-37.961248],[178.010354,-37.579825],[178.517094,-37.695373],[178.274731,-38.582813],[177.97046,-39.166343],[177.206993,-39.145776],[176.939981,-39.449736],[177.032946,-39.879943],[176.885824,-40.065978],[176.508017,-40.604808],[176.01244,-41.289624],[175.239567,-41.688308],[175.067898,-41.425895],[174.650973,-41.281821],[175.22763,-40.459236],[174.900157,-39.908933],[173.824047,-39.508854],[173.852262,-39.146602],[174.574802,-38.797683],[174.743474,-38.027808],[174.697017,-37.381129],[174.292028,-36.711092],[174.319004,-36.534824],[173.840997,-36.121981],[173.054171,-35.237125],[172.636005,-34.529107],[173.007042,-34.450662],[173.551298,-35.006183],[174.32939,-35.265496],[174.612009,-36.156397]]]]},"type":"Feature","id":"NZL","properties":{"name":"New Zealand","id":"NZL","centroid":[174.46,-41.19]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[58.861141,21.114035],[58.487986,20.428986],[58.034318,20.481437],[57.826373,20.243002],[57.665762,19.736005],[57.7887,19.06757],[57.694391,18.94471],[57.234264,18.947991],[56.609651,18.574267],[56.512189,18.087113],[56.283521,17.876067],[55.661492,17.884128],[55.269939,17.632309],[55.2749,17.228354],[54.791002,16.950697],[54.239253,17.044981],[53.570508,16.707663],[53.108573,16.651051],[52.782184,17.349742],[52.00001,19.000003],[54.999982,19.999994],[55.666659,22.000001],[55.208341,22.70833],[55.234489,23.110993],[55.525841,23.524869],[55.528632,23.933604],[55.981214,24.130543],[55.804119,24.269604],[55.886233,24.920831],[56.396847,24.924732],[56.84514,24.241673],[57.403453,23.878594],[58.136948,23.747931],[58.729211,23.565668],[59.180502,22.992395],[59.450098,22.660271],[59.80806,22.533612],[59.806148,22.310525],[59.442191,21.714541],[59.282408,21.433886],[58.861141,21.114035]]],[[[56.391421,25.895991],[56.261042,25.714606],[56.070821,26.055464],[56.362017,26.395934],[56.485679,26.309118],[56.391421,25.895991]]]]},"type":"Feature","id":"OMN","properties":{"name":"Oman","id":"OMN","centroid":[58.36,23.37]}},{"geometry":{"type":"Polygon","coordinates":[[[75.158028,37.133031],[75.896897,36.666806],[76.192848,35.898403],[77.837451,35.49401],[76.871722,34.653544],[75.757061,34.504923],[74.240203,34.748887],[73.749948,34.317699],[74.104294,33.441473],[74.451559,32.7649],[75.258642,32.271105],[74.405929,31.692639],[74.42138,30.979815],[73.450638,29.976413],[72.823752,28.961592],[71.777666,27.91318],[70.616496,27.989196],[69.514393,26.940966],[70.168927,26.491872],[70.282873,25.722229],[70.844699,25.215102],[71.04324,24.356524],[68.842599,24.359134],[68.176645,23.691965],[67.443667,23.944844],[67.145442,24.663611],[66.372828,25.425141],[64.530408,25.237039],[62.905701,25.218409],[61.497363,25.078237],[61.874187,26.239975],[63.316632,26.756532],[63.233898,27.217047],[62.755426,27.378923],[62.72783,28.259645],[61.771868,28.699334],[61.369309,29.303276],[60.874248,29.829239],[62.549857,29.318572],[63.550261,29.468331],[64.148002,29.340819],[64.350419,29.560031],[65.046862,29.472181],[66.346473,29.887943],[66.381458,30.738899],[66.938891,31.304911],[67.683394,31.303154],[67.792689,31.58293],[68.556932,31.71331],[68.926677,31.620189],[69.317764,31.901412],[69.262522,32.501944],[69.687147,33.105499],[70.323594,33.358533],[69.930543,34.02012],[70.881803,33.988856],[71.156773,34.348911],[71.115019,34.733126],[71.613076,35.153203],[71.498768,35.650563],[71.262348,36.074388],[71.846292,36.509942],[72.920025,36.720007],[74.067552,36.836176],[74.575893,37.020841],[75.158028,37.133031]]]},"type":"Feature","id":"PAK","properties":{"name":"Pakistan","id":"PAK","centroid":[73.1,33.4]}},{"geometry":{"type":"Polygon","coordinates":[[[-77.881571,7.223771],[-78.214936,7.512255],[-78.429161,8.052041],[-78.182096,8.319182],[-78.435465,8.387705],[-78.622121,8.718124],[-79.120307,8.996092],[-79.557877,8.932375],[-79.760578,8.584515],[-80.164481,8.333316],[-80.382659,8.298409],[-80.480689,8.090308],[-80.00369,7.547524],[-80.276671,7.419754],[-80.421158,7.271572],[-80.886401,7.220541],[-81.059543,7.817921],[-81.189716,7.647906],[-81.519515,7.70661],[-81.721311,8.108963],[-82.131441,8.175393],[-82.390934,8.292362],[-82.820081,8.290864],[-82.850958,8.073823],[-82.965783,8.225028],[-82.913176,8.423517],[-82.829771,8.626295],[-82.868657,8.807266],[-82.719183,8.925709],[-82.927155,9.07433],[-82.932891,9.476812],[-82.546196,9.566135],[-82.187123,9.207449],[-82.207586,8.995575],[-81.808567,8.950617],[-81.714154,9.031955],[-81.439287,8.786234],[-80.947302,8.858504],[-80.521901,9.111072],[-79.9146,9.312765],[-79.573303,9.61161],[-79.021192,9.552931],[-79.05845,9.454565],[-78.500888,9.420459],[-78.055928,9.24773],[-77.729514,8.946844],[-77.353361,8.670505],[-77.474723,8.524286],[-77.242566,7.935278],[-77.431108,7.638061],[-77.753414,7.70984],[-77.881571,7.223771]]]},"type":"Feature","id":"PAN","properties":{"name":"Panama","id":"PAN","centroid":[-79.25,9]}},{"geometry":{"type":"Polygon","coordinates":[[[-69.590424,-17.580012],[-69.858444,-18.092694],[-70.372572,-18.347975],[-71.37525,-17.773799],[-71.462041,-17.363488],[-73.44453,-16.359363],[-75.237883,-15.265683],[-76.009205,-14.649286],[-76.423469,-13.823187],[-76.259242,-13.535039],[-77.106192,-12.222716],[-78.092153,-10.377712],[-79.036953,-8.386568],[-79.44592,-7.930833],[-79.760578,-7.194341],[-80.537482,-6.541668],[-81.249996,-6.136834],[-80.926347,-5.690557],[-81.410943,-4.736765],[-81.09967,-4.036394],[-80.302561,-3.404856],[-80.184015,-3.821162],[-80.469295,-4.059287],[-80.442242,-4.425724],[-80.028908,-4.346091],[-79.624979,-4.454198],[-79.205289,-4.959129],[-78.639897,-4.547784],[-78.450684,-3.873097],[-77.837905,-3.003021],[-76.635394,-2.608678],[-75.544996,-1.56161],[-75.233723,-0.911417],[-75.373223,-0.152032],[-75.106625,-0.057205],[-74.441601,-0.53082],[-74.122395,-1.002833],[-73.659504,-1.260491],[-73.070392,-2.308954],[-72.325787,-2.434218],[-71.774761,-2.16979],[-71.413646,-2.342802],[-70.813476,-2.256865],[-70.047709,-2.725156],[-70.692682,-3.742872],[-70.394044,-3.766591],[-69.893635,-4.298187],[-70.794769,-4.251265],[-70.928843,-4.401591],[-71.748406,-4.593983],[-72.891928,-5.274561],[-72.964507,-5.741251],[-73.219711,-6.089189],[-73.120027,-6.629931],[-73.724487,-6.918595],[-73.723401,-7.340999],[-73.987235,-7.52383],[-73.571059,-8.424447],[-73.015383,-9.032833],[-73.226713,-9.462213],[-72.563033,-9.520194],[-72.184891,-10.053598],[-71.302412,-10.079436],[-70.481894,-9.490118],[-70.548686,-11.009147],[-70.093752,-11.123972],[-69.529678,-10.951734],[-68.66508,-12.5613],[-68.88008,-12.899729],[-68.929224,-13.602684],[-68.948887,-14.453639],[-69.339535,-14.953195],[-69.160347,-15.323974],[-69.389764,-15.660129],[-68.959635,-16.500698],[-69.590424,-17.580012]]]},"type":"Feature","id":"PER","properties":{"name":"Peru","id":"PER","centroid":[-77,-12]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[126.376814,8.414706],[126.478513,7.750354],[126.537424,7.189381],[126.196773,6.274294],[125.831421,7.293715],[125.363852,6.786485],[125.683161,6.049657],[125.396512,5.581003],[124.219788,6.161355],[123.93872,6.885136],[124.243662,7.36061],[123.610212,7.833527],[123.296071,7.418876],[122.825506,7.457375],[122.085499,6.899424],[121.919928,7.192119],[122.312359,8.034962],[122.942398,8.316237],[123.487688,8.69301],[123.841154,8.240324],[124.60147,8.514158],[124.764612,8.960409],[125.471391,8.986997],[125.412118,9.760335],[126.222714,9.286074],[126.306637,8.782487],[126.376814,8.414706]]],[[[123.982438,10.278779],[123.623183,9.950091],[123.309921,9.318269],[122.995883,9.022189],[122.380055,9.713361],[122.586089,9.981045],[122.837081,10.261157],[122.947411,10.881868],[123.49885,10.940624],[123.337774,10.267384],[124.077936,11.232726],[123.982438,10.278779]]],[[[118.504581,9.316383],[117.174275,8.3675],[117.664477,9.066889],[118.386914,9.6845],[118.987342,10.376292],[119.511496,11.369668],[119.689677,10.554291],[119.029458,10.003653],[118.504581,9.316383]]],[[[121.883548,11.891755],[122.483821,11.582187],[123.120217,11.58366],[123.100838,11.165934],[122.637714,10.741308],[122.00261,10.441017],[121.967367,10.905691],[122.03837,11.415841],[121.883548,11.891755]]],[[[125.502552,12.162695],[125.783465,11.046122],[125.011884,11.311455],[125.032761,10.975816],[125.277449,10.358722],[124.801819,10.134679],[124.760168,10.837995],[124.459101,10.88993],[124.302522,11.495371],[124.891013,11.415583],[124.87799,11.79419],[124.266762,12.557761],[125.227116,12.535721],[125.502552,12.162695]]],[[[121.527394,13.06959],[121.26219,12.20556],[120.833896,12.704496],[120.323436,13.466413],[121.180128,13.429697],[121.527394,13.06959]]],[[[121.321308,18.504065],[121.937601,18.218552],[122.246006,18.47895],[122.336957,18.224883],[122.174279,17.810283],[122.515654,17.093505],[122.252311,16.262444],[121.662786,15.931018],[121.50507,15.124814],[121.728829,14.328376],[122.258925,14.218202],[122.701276,14.336541],[123.950295,13.782131],[123.855107,13.237771],[124.181289,12.997527],[124.077419,12.536677],[123.298035,13.027526],[122.928652,13.55292],[122.671355,13.185836],[122.03465,13.784482],[121.126385,13.636687],[120.628637,13.857656],[120.679384,14.271016],[120.991819,14.525393],[120.693336,14.756671],[120.564145,14.396279],[120.070429,14.970869],[119.920929,15.406347],[119.883773,16.363704],[120.286488,16.034629],[120.390047,17.599081],[120.715867,18.505227],[121.321308,18.504065]]]]},"type":"Feature","id":"PHL","properties":{"name":"Philippines","id":"PHL","centroid":[121.03,14.4]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[155.880026,-6.819997],[155.599991,-6.919991],[155.166994,-6.535931],[154.729192,-5.900828],[154.514114,-5.139118],[154.652504,-5.042431],[154.759991,-5.339984],[155.062918,-5.566792],[155.547746,-6.200655],[156.019965,-6.540014],[155.880026,-6.819997]]],[[[151.982796,-5.478063],[151.459107,-5.56028],[151.30139,-5.840728],[150.754447,-6.083763],[150.241197,-6.317754],[149.709963,-6.316513],[148.890065,-6.02604],[148.318937,-5.747142],[148.401826,-5.437756],[149.298412,-5.583742],[149.845562,-5.505503],[149.99625,-5.026101],[150.139756,-5.001348],[150.236908,-5.53222],[150.807467,-5.455842],[151.089672,-5.113693],[151.647881,-4.757074],[151.537862,-4.167807],[152.136792,-4.14879],[152.338743,-4.312966],[152.318693,-4.867661],[151.982796,-5.478063]]],[[[147.191874,-7.388024],[148.084636,-8.044108],[148.734105,-9.104664],[149.306835,-9.071436],[149.266631,-9.514406],[150.038728,-9.684318],[149.738798,-9.872937],[150.801628,-10.293687],[150.690575,-10.582713],[150.028393,-10.652476],[149.78231,-10.393267],[148.923138,-10.280923],[147.913018,-10.130441],[147.135443,-9.492444],[146.567881,-8.942555],[146.048481,-8.067414],[144.744168,-7.630128],[143.897088,-7.91533],[143.286376,-8.245491],[143.413913,-8.983069],[142.628431,-9.326821],[142.068259,-9.159596],[141.033852,-9.117893],[141.017057,-5.859022],[141.00021,-2.600151],[142.735247,-3.289153],[144.583971,-3.861418],[145.27318,-4.373738],[145.829786,-4.876498],[145.981922,-5.465609],[147.648073,-6.083659],[147.891108,-6.614015],[146.970905,-6.721657],[147.191874,-7.388024]]],[[[153.140038,-4.499983],[152.827292,-4.766427],[152.638673,-4.176127],[152.406026,-3.789743],[151.953237,-3.462062],[151.384279,-3.035422],[150.66205,-2.741486],[150.939965,-2.500002],[151.479984,-2.779985],[151.820015,-2.999972],[152.239989,-3.240009],[152.640017,-3.659983],[153.019994,-3.980015],[153.140038,-4.499983]]]]},"type":"Feature","id":"PNG","properties":{"name":"Papua New Guinea","id":"PNG","centroid":[147.08,-9.24]}},{"geometry":{"type":"Polygon","coordinates":[[[15.016996,51.106674],[14.607098,51.745188],[14.685026,52.089947],[14.4376,52.62485],[14.074521,52.981263],[14.353315,53.248171],[14.119686,53.757029],[14.8029,54.050706],[16.363477,54.513159],[17.622832,54.851536],[18.620859,54.682606],[18.696255,54.438719],[19.66064,54.426084],[20.892245,54.312525],[22.731099,54.327537],[23.243987,54.220567],[23.484128,53.912498],[23.527536,53.470122],[23.804935,53.089731],[23.799199,52.691099],[23.199494,52.486977],[23.508002,52.023647],[23.527071,51.578454],[24.029986,50.705407],[23.922757,50.424881],[23.426508,50.308506],[22.51845,49.476774],[22.776419,49.027395],[22.558138,49.085738],[21.607808,49.470107],[20.887955,49.328772],[20.415839,49.431453],[19.825023,49.217125],[19.320713,49.571574],[18.909575,49.435846],[18.853144,49.49623],[18.392914,49.988629],[17.649445,50.049038],[17.554567,50.362146],[16.868769,50.473974],[16.719476,50.215747],[16.176253,50.422607],[16.238627,50.697733],[15.490972,50.78473],[15.016996,51.106674]]]},"type":"Feature","id":"POL","properties":{"name":"Poland","id":"POL","centroid":[21,52.13]}},{"geometry":{"type":"Polygon","coordinates":[[[-66.282434,18.514762],[-65.771303,18.426679],[-65.591004,18.228035],[-65.847164,17.975906],[-66.599934,17.981823],[-67.184162,17.946553],[-67.242428,18.37446],[-67.100679,18.520601],[-66.282434,18.514762]]]},"type":"Feature","id":"PRI","properties":{"name":"Puerto Rico","id":"PRI","centroid":[-66.07,18.28]}},{"geometry":{"type":"Polygon","coordinates":[[[130.640016,42.395009],[130.780007,42.220007],[130.400031,42.280004],[129.965949,41.941368],[129.667362,41.601104],[129.705189,40.882828],[129.188115,40.661808],[129.0104,40.485436],[128.633368,40.189847],[127.967414,40.025413],[127.533436,39.75685],[127.50212,39.323931],[127.385434,39.213472],[127.783343,39.050898],[128.349716,38.612243],[128.205746,38.370397],[127.780035,38.304536],[127.073309,38.256115],[126.68372,37.804773],[126.237339,37.840378],[126.174759,37.749686],[125.689104,37.94001],[125.568439,37.752089],[125.27533,37.669071],[125.240087,37.857224],[124.981033,37.948821],[124.712161,38.108346],[124.985994,38.548474],[125.221949,38.665857],[125.132859,38.848559],[125.38659,39.387958],[125.321116,39.551385],[124.737482,39.660344],[124.265625,39.928493],[125.079942,40.569824],[126.182045,41.107336],[126.869083,41.816569],[127.343783,41.503152],[128.208433,41.466772],[128.052215,41.994285],[129.596669,42.424982],[129.994267,42.985387],[130.640016,42.395009]]]},"type":"Feature","id":"PRK","properties":{"name":"North Korea","id":"PRK","centroid":[125.44,39.02]}},{"geometry":{"type":"Polygon","coordinates":[[[-9.034818,41.880571],[-8.671946,42.134689],[-8.263857,42.280469],[-8.013175,41.790886],[-7.422513,41.792075],[-7.251309,41.918346],[-6.668606,41.883387],[-6.389088,41.381815],[-6.851127,41.111083],[-6.86402,40.330872],[-7.026413,40.184524],[-7.066592,39.711892],[-7.498632,39.629571],[-7.098037,39.030073],[-7.374092,38.373059],[-7.029281,38.075764],[-7.166508,37.803894],[-7.537105,37.428904],[-7.453726,37.097788],[-7.855613,36.838269],[-8.382816,36.97888],[-8.898857,36.868809],[-8.746101,37.651346],[-8.839998,38.266243],[-9.287464,38.358486],[-9.526571,38.737429],[-9.446989,39.392066],[-9.048305,39.755093],[-8.977353,40.159306],[-8.768684,40.760639],[-8.790853,41.184334],[-8.990789,41.543459],[-9.034818,41.880571]]]},"type":"Feature","id":"PRT","properties":{"name":"Portugal","id":"PRT","centroid":[-9.1,38.42]}},{"geometry":{"type":"Polygon","coordinates":[[[-62.685057,-22.249029],[-62.291179,-21.051635],[-62.265961,-20.513735],[-61.786326,-19.633737],[-60.043565,-19.342747],[-59.115042,-19.356906],[-58.183471,-19.868399],[-58.166392,-20.176701],[-57.870674,-20.732688],[-57.937156,-22.090176],[-56.88151,-22.282154],[-56.473317,-22.0863],[-55.797958,-22.35693],[-55.610683,-22.655619],[-55.517639,-23.571998],[-55.400747,-23.956935],[-55.027902,-24.001274],[-54.652834,-23.839578],[-54.29296,-24.021014],[-54.293476,-24.5708],[-54.428946,-25.162185],[-54.625291,-25.739255],[-54.788795,-26.621786],[-55.695846,-27.387837],[-56.486702,-27.548499],[-57.60976,-27.395899],[-58.618174,-27.123719],[-57.63366,-25.603657],[-57.777217,-25.16234],[-58.807128,-24.771459],[-60.028966,-24.032796],[-60.846565,-23.880713],[-62.685057,-22.249029]]]},"type":"Feature","id":"PRY","properties":{"name":"Paraguay","id":"PRY","centroid":[-57.38,-25.18]}},{"geometry":{"type":"Polygon","coordinates":[[[50.810108,24.754743],[50.743911,25.482424],[51.013352,26.006992],[51.286462,26.114582],[51.589079,25.801113],[51.6067,25.21567],[51.389608,24.627386],[51.112415,24.556331],[50.810108,24.754743]]]},"type":"Feature","id":"QAT","properties":{"name":"Qatar","id":"QAT","centroid":[51.35,25.15]}},{"geometry":{"type":"Polygon","coordinates":[[[22.710531,47.882194],[23.142236,48.096341],[23.760958,47.985598],[24.402056,47.981878],[24.866317,47.737526],[25.207743,47.891056],[25.945941,47.987149],[26.19745,48.220881],[26.619337,48.220726],[26.924176,48.123264],[27.233873,47.826771],[27.551166,47.405117],[28.12803,46.810476],[28.160018,46.371563],[28.054443,45.944586],[28.233554,45.488283],[28.679779,45.304031],[29.149725,45.464925],[29.603289,45.293308],[29.626543,45.035391],[29.141612,44.82021],[28.837858,44.913874],[28.558081,43.707462],[27.970107,43.812468],[27.2424,44.175986],[26.065159,43.943494],[25.569272,43.688445],[24.100679,43.741051],[23.332302,43.897011],[22.944832,43.823785],[22.65715,44.234923],[22.474008,44.409228],[22.705726,44.578003],[22.459022,44.702517],[22.145088,44.478422],[21.562023,44.768947],[21.483526,45.18117],[20.874313,45.416375],[20.762175,45.734573],[20.220192,46.127469],[21.021952,46.316088],[21.626515,46.994238],[22.099768,47.672439],[22.710531,47.882194]]]},"type":"Feature","id":"ROU","properties":{"name":"Romania","id":"ROU","centroid":[26.1,44.27]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[143.648007,50.7476],[144.654148,48.976391],[143.173928,49.306551],[142.558668,47.861575],[143.533492,46.836728],[143.505277,46.137908],[142.747701,46.740765],[142.09203,45.966755],[141.906925,46.805929],[142.018443,47.780133],[141.904445,48.859189],[142.1358,49.615163],[142.179983,50.952342],[141.594076,51.935435],[141.682546,53.301966],[142.606934,53.762145],[142.209749,54.225476],[142.654786,54.365881],[142.914616,53.704578],[143.260848,52.74076],[143.235268,51.75666],[143.648007,50.7476]]],[[[22.731099,54.327537],[20.892245,54.312525],[19.66064,54.426084],[19.888481,54.86616],[21.268449,55.190482],[22.315724,55.015299],[22.757764,54.856574],[22.651052,54.582741],[22.731099,54.327537]]],[[[-175.01425,66.58435],[-174.33983,66.33556],[-174.57182,67.06219],[-171.85731,66.91308],[-169.89958,65.97724],[-170.89107,65.54139],[-172.53025,65.43791],[-172.555,64.46079],[-172.95533,64.25269],[-173.89184,64.2826],[-174.65392,64.63125],[-175.98353,64.92288],[-176.20716,65.35667],[-177.22266,65.52024],[-178.35993,65.39052],[-178.90332,65.74044],[-178.68611,66.11211],[-179.88377,65.87456],[-179.43268,65.40411],[-180,64.979709],[-180,68.963636],[-177.55,68.2],[-174.92825,67.20589],[-175.01425,66.58435]]],[[[180,70.832199],[178.903425,70.78114],[178.7253,71.0988],[180,71.515714],[180,70.832199]]],[[[-178.69378,70.89302],[-180,70.832199],[-180,71.515714],[-179.871875,71.55762],[-179.02433,71.55553],[-177.577945,71.26948],[-177.663575,71.13277],[-178.69378,70.89302]]],[[[143.60385,73.21244],[142.08763,73.20544],[140.038155,73.31692],[139.86312,73.36983],[140.81171,73.76506],[142.06207,73.85758],[143.48283,73.47525],[143.60385,73.21244]]],[[[150.73167,75.08406],[149.575925,74.68892],[147.977465,74.778355],[146.11919,75.17298],[146.358485,75.49682],[148.22223,75.345845],[150.73167,75.08406]]],[[[145.086285,75.562625],[144.3,74.82],[140.61381,74.84768],[138.95544,74.61148],[136.97439,75.26167],[137.51176,75.94917],[138.831075,76.13676],[141.471615,76.09289],[145.086285,75.562625]]],[[[57.535693,70.720464],[56.944979,70.632743],[53.677375,70.762658],[53.412017,71.206662],[51.601895,71.474759],[51.455754,72.014881],[52.478275,72.229442],[52.444169,72.774731],[54.427614,73.627548],[53.50829,73.749814],[55.902459,74.627486],[55.631933,75.081412],[57.868644,75.60939],[61.170044,76.251883],[64.498368,76.439055],[66.210977,76.809782],[68.15706,76.939697],[68.852211,76.544811],[68.180573,76.233642],[64.637326,75.737755],[61.583508,75.260885],[58.477082,74.309056],[56.986786,73.333044],[55.419336,72.371268],[55.622838,71.540595],[57.535693,70.720464]]],[[[106.97013,76.97419],[107.24,76.48],[108.1538,76.72335],[111.07726,76.71],[113.33151,76.22224],[114.13417,75.84764],[113.88539,75.32779],[112.77918,75.03186],[110.15125,74.47673],[109.4,74.18],[110.64,74.04],[112.11919,73.78774],[113.01954,73.97693],[113.52958,73.33505],[113.96881,73.59488],[115.56782,73.75285],[118.77633,73.58772],[119.02,73.12],[123.20066,72.97122],[123.25777,73.73503],[125.38,73.56],[126.97644,73.56549],[128.59126,73.03871],[129.05157,72.39872],[128.46,71.98],[129.71599,71.19304],[131.28858,70.78699],[132.2535,71.8363],[133.85766,71.38642],[135.56193,71.65525],[137.49755,71.34763],[138.23409,71.62803],[139.86983,71.48783],[139.14791,72.41619],[140.46817,72.84941],[149.5,72.2],[150.35118,71.60643],[152.9689,70.84222],[157.00688,71.03141],[158.99779,70.86672],[159.83031,70.45324],[159.70866,69.72198],[160.94053,69.43728],[162.27907,69.64204],[164.05248,69.66823],[165.94037,69.47199],[167.83567,69.58269],[169.57763,68.6938],[170.81688,69.01363],[170.0082,69.65276],[170.45345,70.09703],[173.64391,69.81743],[175.72403,69.87725],[178.6,69.4],[180,68.963636],[180,64.979709],[179.99281,64.97433],[178.7072,64.53493],[177.41128,64.60821],[178.313,64.07593],[178.90825,63.25197],[179.37034,62.98262],[179.48636,62.56894],[179.22825,62.3041],[177.3643,62.5219],[174.56929,61.76915],[173.68013,61.65261],[172.15,60.95],[170.6985,60.33618],[170.33085,59.88177],[168.90046,60.57355],[166.29498,59.78855],[165.84,60.16],[164.87674,59.7316],[163.53929,59.86871],[163.21711,59.21101],[162.01733,58.24328],[162.05297,57.83912],[163.19191,57.61503],[163.05794,56.15924],[162.12958,56.12219],[161.70146,55.28568],[162.11749,54.85514],[160.36877,54.34433],[160.02173,53.20257],[158.53094,52.95868],[158.23118,51.94269],[156.78979,51.01105],[156.42,51.7],[155.99182,53.15895],[155.43366,55.38103],[155.91442,56.76792],[156.75815,57.3647],[156.81035,57.83204],[158.36433,58.05575],[160.15064,59.31477],[161.87204,60.343],[163.66969,61.1409],[164.47355,62.55061],[163.25842,62.46627],[162.65791,61.6425],[160.12148,60.54423],[159.30232,61.77396],[156.72068,61.43442],[154.21806,59.75818],[155.04375,59.14495],[152.81185,58.88385],[151.26573,58.78089],[151.33815,59.50396],[149.78371,59.65573],[148.54481,59.16448],[145.48722,59.33637],[142.19782,59.03998],[138.95848,57.08805],[135.12619,54.72959],[136.70171,54.60355],[137.19342,53.97732],[138.1647,53.75501],[138.80463,54.25455],[139.90151,54.18968],[141.34531,53.08957],[141.37923,52.23877],[140.59742,51.23967],[140.51308,50.04553],[140.06193,48.44671],[138.55472,46.99965],[138.21971,46.30795],[136.86232,45.1435],[135.51535,43.989],[134.86939,43.39821],[133.53687,42.81147],[132.90627,42.79849],[132.27807,43.28456],[130.93587,42.55274],[130.78,42.22],[130.64,42.395],[130.633866,42.903015],[131.144688,42.92999],[131.288555,44.11152],[131.02519,44.96796],[131.883454,45.321162],[133.09712,45.14409],[133.769644,46.116927],[134.11235,47.21248],[134.50081,47.57845],[135.026311,48.47823],[133.373596,48.183442],[132.50669,47.78896],[130.98726,47.79013],[130.582293,48.729687],[129.397818,49.4406],[127.6574,49.76027],[127.287456,50.739797],[126.939157,51.353894],[126.564399,51.784255],[125.946349,52.792799],[125.068211,53.161045],[123.57147,53.4588],[122.245748,53.431726],[121.003085,53.251401],[120.177089,52.753886],[120.725789,52.516226],[120.7382,51.96411],[120.18208,51.64355],[119.27939,50.58292],[119.288461,50.142883],[117.879244,49.510983],[116.678801,49.888531],[115.485695,49.805177],[114.96211,50.140247],[114.362456,50.248303],[112.89774,49.543565],[111.581231,49.377968],[110.662011,49.130128],[109.402449,49.292961],[108.475167,49.282548],[107.868176,49.793705],[106.888804,50.274296],[105.886591,50.406019],[104.62158,50.27532],[103.676545,50.089966],[102.25589,50.51056],[102.06521,51.25991],[100.88948,51.516856],[99.981732,51.634006],[98.861491,52.047366],[97.82574,51.010995],[98.231762,50.422401],[97.25976,49.72605],[95.81402,49.97746],[94.815949,50.013433],[94.147566,50.480537],[93.10421,50.49529],[92.234712,50.802171],[90.713667,50.331812],[88.805567,49.470521],[87.751264,49.297198],[87.35997,49.214981],[86.829357,49.826675],[85.54127,49.692859],[85.11556,50.117303],[84.416377,50.3114],[83.935115,50.889246],[83.383004,51.069183],[81.945986,50.812196],[80.568447,51.388336],[80.03556,50.864751],[77.800916,53.404415],[76.525179,54.177003],[76.8911,54.490524],[74.38482,53.54685],[73.425679,53.48981],[73.508516,54.035617],[72.22415,54.376655],[71.180131,54.133285],[70.865267,55.169734],[69.068167,55.38525],[68.1691,54.970392],[65.66687,54.60125],[65.178534,54.354228],[61.4366,54.00625],[60.978066,53.664993],[61.699986,52.979996],[60.739993,52.719986],[60.927269,52.447548],[59.967534,51.96042],[61.588003,51.272659],[61.337424,50.79907],[59.932807,50.842194],[59.642282,50.545442],[58.36332,51.06364],[56.77798,51.04355],[55.71694,50.62171],[54.532878,51.02624],[52.328724,51.718652],[50.766648,51.692762],[48.702382,50.605128],[48.577841,49.87476],[47.54948,50.454698],[46.751596,49.356006],[47.043672,49.152039],[46.466446,48.394152],[47.31524,47.71585],[48.05725,47.74377],[48.694734,47.075628],[48.59325,46.56104],[49.10116,46.39933],[48.64541,45.80629],[47.67591,45.64149],[46.68201,44.6092],[47.59094,43.66016],[47.49252,42.98658],[48.58437,41.80888],[47.987283,41.405819],[47.815666,41.151416],[47.373315,41.219732],[46.686071,41.827137],[46.404951,41.860675],[45.7764,42.09244],[45.470279,42.502781],[44.537623,42.711993],[43.93121,42.55496],[43.75599,42.74083],[42.3944,43.2203],[40.92219,43.38215],[40.076965,43.553104],[39.955009,43.434998],[38.68,44.28],[37.53912,44.65721],[36.67546,45.24469],[37.40317,45.40451],[38.23295,46.24087],[37.67372,46.63657],[39.14767,47.04475],[39.1212,47.26336],[38.223538,47.10219],[38.255112,47.5464],[38.77057,47.82562],[39.738278,47.898937],[39.89562,48.23241],[39.67465,48.78382],[40.080789,49.30743],[40.06904,49.60105],[38.594988,49.926462],[38.010631,49.915662],[37.39346,50.383953],[36.626168,50.225591],[35.356116,50.577197],[35.37791,50.77394],[35.022183,51.207572],[34.224816,51.255993],[34.141978,51.566413],[34.391731,51.768882],[33.7527,52.335075],[32.715761,52.238465],[32.412058,52.288695],[32.15944,52.06125],[31.78597,52.10168],[31.540018,52.742052],[31.305201,53.073996],[31.49764,53.16743],[32.304519,53.132726],[32.693643,53.351421],[32.405599,53.618045],[31.731273,53.794029],[31.791424,53.974639],[31.384472,54.157056],[30.757534,54.811771],[30.971836,55.081548],[30.873909,55.550976],[29.896294,55.789463],[29.371572,55.670091],[29.229513,55.918344],[28.176709,56.16913],[27.855282,56.759326],[27.770016,57.244258],[27.288185,57.474528],[27.716686,57.791899],[27.42015,58.72457],[28.131699,59.300825],[27.98112,59.47537],[29.1177,60.02805],[28.07,60.50352],[30.211107,61.780028],[31.139991,62.357693],[31.516092,62.867687],[30.035872,63.552814],[30.444685,64.204453],[29.54443,64.948672],[30.21765,65.80598],[29.054589,66.944286],[29.977426,67.698297],[28.445944,68.364613],[28.59193,69.064777],[29.39955,69.15692],[31.10108,69.55811],[32.13272,69.90595],[33.77547,69.30142],[36.51396,69.06342],[40.29234,67.9324],[41.05987,67.45713],[41.12595,66.79158],[40.01583,66.26618],[38.38295,65.99953],[33.91871,66.75961],[33.18444,66.63253],[34.81477,65.90015],[34.878574,65.436213],[34.94391,64.41437],[36.23129,64.10945],[37.01273,63.84983],[37.14197,64.33471],[36.539579,64.76446],[37.17604,65.14322],[39.59345,64.52079],[40.4356,64.76446],[39.7626,65.49682],[42.09309,66.47623],[43.01604,66.41858],[43.94975,66.06908],[44.53226,66.75634],[43.69839,67.35245],[44.18795,67.95051],[43.45282,68.57079],[46.25,68.25],[46.82134,67.68997],[45.55517,67.56652],[45.56202,67.01005],[46.34915,66.66767],[47.89416,66.88455],[48.13876,67.52238],[50.22766,67.99867],[53.71743,68.85738],[54.47171,68.80815],[53.48582,68.20131],[54.72628,68.09702],[55.44268,68.43866],[57.31702,68.46628],[58.802,68.88082],[59.94142,68.27844],[61.07784,68.94069],[60.03,69.52],[60.55,69.85],[63.504,69.54739],[64.888115,69.234835],[68.51216,68.09233],[69.18068,68.61563],[68.16444,69.14436],[68.13522,69.35649],[66.93008,69.45461],[67.25976,69.92873],[66.72492,70.70889],[66.69466,71.02897],[68.54006,71.9345],[69.19636,72.84336],[69.94,73.04],[72.58754,72.77629],[72.79603,72.22006],[71.84811,71.40898],[72.47011,71.09019],[72.79188,70.39114],[72.5647,69.02085],[73.66787,68.4079],[73.2387,67.7404],[71.28,66.32],[72.42301,66.17267],[72.82077,66.53267],[73.92099,66.78946],[74.18651,67.28429],[75.052,67.76047],[74.46926,68.32899],[74.93584,68.98918],[73.84236,69.07146],[73.60187,69.62763],[74.3998,70.63175],[73.1011,71.44717],[74.89082,72.12119],[74.65926,72.83227],[75.15801,72.85497],[75.68351,72.30056],[75.28898,71.33556],[76.35911,71.15287],[75.90313,71.87401],[77.57665,72.26717],[79.65202,72.32011],[81.5,71.75],[80.61071,72.58285],[80.51109,73.6482],[82.25,73.85],[84.65526,73.80591],[86.8223,73.93688],[86.00956,74.45967],[87.16682,75.11643],[88.31571,75.14393],[90.26,75.64],[92.90058,75.77333],[93.23421,76.0472],[95.86,76.14],[96.67821,75.91548],[98.92254,76.44689],[100.75967,76.43028],[101.03532,76.86189],[101.99084,77.28754],[104.3516,77.69792],[106.06664,77.37389],[104.705,77.1274],[106.97013,76.97419]]],[[[105.07547,78.30689],[99.43814,77.921],[101.2649,79.23399],[102.08635,79.34641],[102.837815,79.28129],[105.37243,78.71334],[105.07547,78.30689]]],[[[51.136187,80.54728],[49.793685,80.415428],[48.894411,80.339567],[48.754937,80.175468],[47.586119,80.010181],[46.502826,80.247247],[47.072455,80.559424],[44.846958,80.58981],[46.799139,80.771918],[48.318477,80.78401],[48.522806,80.514569],[49.09719,80.753986],[50.039768,80.918885],[51.522933,80.699726],[51.136187,80.54728]]],[[[99.93976,78.88094],[97.75794,78.7562],[94.97259,79.044745],[93.31288,79.4265],[92.5454,80.14379],[91.18107,80.34146],[93.77766,81.0246],[95.940895,81.2504],[97.88385,80.746975],[100.186655,79.780135],[99.93976,78.88094]]]]},"type":"Feature","id":"RUS","properties":{"name":"Russia","id":"RUS","centroid":[37.35,55.45]}},{"geometry":{"type":"Polygon","coordinates":[[[30.419105,-1.134659],[30.816135,-1.698914],[30.758309,-2.28725],[30.469696,-2.413858],[29.938359,-2.348487],[29.632176,-2.917858],[29.024926,-2.839258],[29.117479,-2.292211],[29.254835,-2.21511],[29.291887,-1.620056],[29.579466,-1.341313],[29.821519,-1.443322],[30.419105,-1.134659]]]},"type":"Feature","id":"RWA","properties":{"name":"Rwanda","id":"RWA","centroid":[30.04,-1.59]}},{"geometry":{"type":"Polygon","coordinates":[[[-8.794884,27.120696],[-8.817828,27.656426],[-8.66559,27.656426],[-8.665124,27.589479],[-8.6844,27.395744],[-8.687294,25.881056],[-11.969419,25.933353],[-11.937224,23.374594],[-12.874222,23.284832],[-13.118754,22.77122],[-12.929102,21.327071],[-16.845194,21.333323],[-17.063423,20.999752],[-17.020428,21.42231],[-17.002962,21.420734],[-14.750955,21.5006],[-14.630833,21.86094],[-14.221168,22.310163],[-13.89111,23.691009],[-12.500963,24.770116],[-12.030759,26.030866],[-11.71822,26.104092],[-11.392555,26.883424],[-10.551263,26.990808],[-10.189424,26.860945],[-9.735343,26.860945],[-9.413037,27.088476],[-8.794884,27.120696]]]},"type":"Feature","id":"ESH","properties":{"name":"Western Sahara","id":"ESH","centroid":[-12.12,27.9]}},{"geometry":{"type":"Polygon","coordinates":[[[42.779332,16.347891],[42.649573,16.774635],[42.347989,17.075806],[42.270888,17.474722],[41.754382,17.833046],[41.221391,18.6716],[40.939341,19.486485],[40.247652,20.174635],[39.801685,20.338862],[39.139399,21.291905],[39.023696,21.986875],[39.066329,22.579656],[38.492772,23.688451],[38.02386,24.078686],[37.483635,24.285495],[37.154818,24.858483],[37.209491,25.084542],[36.931627,25.602959],[36.639604,25.826228],[36.249137,26.570136],[35.640182,27.37652],[35.130187,28.063352],[34.632336,28.058546],[34.787779,28.607427],[34.83222,28.957483],[34.956037,29.356555],[36.068941,29.197495],[36.501214,29.505254],[36.740528,29.865283],[37.503582,30.003776],[37.66812,30.338665],[37.998849,30.5085],[37.002166,31.508413],[39.004886,32.010217],[39.195468,32.161009],[40.399994,31.889992],[41.889981,31.190009],[44.709499,29.178891],[46.568713,29.099025],[47.459822,29.002519],[47.708851,28.526063],[48.416094,28.552004],[48.807595,27.689628],[49.299554,27.461218],[49.470914,27.109999],[50.152422,26.689663],[50.212935,26.277027],[50.113303,25.943972],[50.239859,25.60805],[50.527387,25.327808],[50.660557,24.999896],[50.810108,24.754743],[51.112415,24.556331],[51.389608,24.627386],[51.579519,24.245497],[51.617708,24.014219],[52.000733,23.001154],[55.006803,22.496948],[55.208341,22.70833],[55.666659,22.000001],[54.999982,19.999994],[52.00001,19.000003],[49.116672,18.616668],[48.183344,18.166669],[47.466695,17.116682],[47.000005,16.949999],[46.749994,17.283338],[46.366659,17.233315],[45.399999,17.333335],[45.216651,17.433329],[44.062613,17.410359],[43.791519,17.319977],[43.380794,17.579987],[43.115798,17.08844],[43.218375,16.66689],[42.779332,16.347891]]]},"type":"Feature","id":"SAU","properties":{"name":"Saudi Arabia","id":"SAU","centroid":[46.42,24.41]}},{"geometry":{"type":"Polygon","coordinates":[[[33.963393,9.464285],[33.824963,9.484061],[33.842131,9.981915],[33.721959,10.325262],[33.206938,10.720112],[33.086766,11.441141],[33.206938,12.179338],[32.743419,12.248008],[32.67475,12.024832],[32.073892,11.97333],[32.314235,11.681484],[32.400072,11.080626],[31.850716,10.531271],[31.352862,9.810241],[30.837841,9.707237],[29.996639,10.290927],[29.618957,10.084919],[29.515953,9.793074],[29.000932,9.604232],[28.966597,9.398224],[27.97089,9.398224],[27.833551,9.604232],[27.112521,9.638567],[26.752006,9.466893],[26.477328,9.55273],[25.962307,10.136421],[25.790633,10.411099],[25.069604,10.27376],[24.794926,9.810241],[24.537415,8.917538],[24.194068,8.728696],[23.88698,8.61973],[23.805813,8.666319],[23.459013,8.954286],[23.394779,9.265068],[23.55725,9.681218],[23.554304,10.089255],[22.977544,10.714463],[22.864165,11.142395],[22.87622,11.38461],[22.50869,11.67936],[22.49762,12.26024],[22.28801,12.64605],[21.93681,12.58818],[22.03759,12.95546],[22.29658,13.37232],[22.18329,13.78648],[22.51202,14.09318],[22.30351,14.32682],[22.56795,14.94429],[23.02459,15.68072],[23.88689,15.61084],[23.83766,19.58047],[23.85,20],[25,20.00304],[25,22],[29.02,22],[32.9,22],[36.86623,22],[37.18872,21.01885],[36.96941,20.83744],[37.1147,19.80796],[37.48179,18.61409],[37.86276,18.36786],[38.41009,17.998307],[37.904,17.42754],[37.16747,17.26314],[36.85253,16.95655],[36.75389,16.29186],[36.32322,14.82249],[36.42951,14.42211],[36.27022,13.56333],[35.86363,12.57828],[35.26049,12.08286],[34.83163,11.31896],[34.73115,10.91017],[34.25745,10.63009],[33.96162,9.58358],[33.963393,9.464285]]]},"type":"Feature","id":"SDN","properties":{"name":"Sudan","id":"SDN","centroid":[32.31,15.36]}},{"geometry":{"type":"Polygon","coordinates":[[[33.963393,9.464285],[33.97498,8.68456],[33.8255,8.37916],[33.2948,8.35458],[32.95418,7.78497],[33.56829,7.71334],[34.0751,7.22595],[34.25032,6.82607],[34.70702,6.59422],[35.298007,5.506],[34.620196,4.847123],[34.005,4.249885],[33.39,3.79],[32.68642,3.79232],[31.88145,3.55827],[31.24556,3.7819],[30.83385,3.50917],[29.95349,4.1737],[29.715995,4.600805],[29.159078,4.389267],[28.696678,4.455077],[28.428994,4.287155],[27.979977,4.408413],[27.374226,5.233944],[27.213409,5.550953],[26.465909,5.946717],[26.213418,6.546603],[25.796648,6.979316],[25.124131,7.500085],[25.114932,7.825104],[24.567369,8.229188],[23.88698,8.61973],[24.194068,8.728696],[24.537415,8.917538],[24.794926,9.810241],[25.069604,10.27376],[25.790633,10.411099],[25.962307,10.136421],[26.477328,9.55273],[26.752006,9.466893],[27.112521,9.638567],[27.833551,9.604232],[27.97089,9.398224],[28.966597,9.398224],[29.000932,9.604232],[29.515953,9.793074],[29.618957,10.084919],[29.996639,10.290927],[30.837841,9.707237],[31.352862,9.810241],[31.850716,10.531271],[32.400072,11.080626],[32.314235,11.681484],[32.073892,11.97333],[32.67475,12.024832],[32.743419,12.248008],[33.206938,12.179338],[33.086766,11.441141],[33.206938,10.720112],[33.721959,10.325262],[33.842131,9.981915],[33.824963,9.484061],[33.963393,9.464285]]]},"type":"Feature","id":"SSD","properties":{"name":"South Sudan","id":"SSD","centroid":[31.36,4.51]}},{"geometry":{"type":"Polygon","coordinates":[[[-16.713729,13.594959],[-17.126107,14.373516],[-17.625043,14.729541],[-17.185173,14.919477],[-16.700706,15.621527],[-16.463098,16.135036],[-16.12069,16.455663],[-15.623666,16.369337],[-15.135737,16.587282],[-14.577348,16.598264],[-14.099521,16.304302],[-13.435738,16.039383],[-12.830658,15.303692],[-12.17075,14.616834],[-12.124887,13.994727],[-11.927716,13.422075],[-11.553398,13.141214],[-11.467899,12.754519],[-11.513943,12.442988],[-11.658301,12.386583],[-12.203565,12.465648],[-12.278599,12.35444],[-12.499051,12.33209],[-13.217818,12.575874],[-13.700476,12.586183],[-15.548477,12.62817],[-15.816574,12.515567],[-16.147717,12.547762],[-16.677452,12.384852],[-16.841525,13.151394],[-15.931296,13.130284],[-15.691001,13.270353],[-15.511813,13.27857],[-15.141163,13.509512],[-14.712197,13.298207],[-14.277702,13.280585],[-13.844963,13.505042],[-14.046992,13.794068],[-14.376714,13.62568],[-14.687031,13.630357],[-15.081735,13.876492],[-15.39877,13.860369],[-15.624596,13.623587],[-16.713729,13.594959]]]},"type":"Feature","id":"SEN","properties":{"name":"Senegal","id":"SEN","centroid":[-17.29,14.34]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[162.119025,-10.482719],[162.398646,-10.826367],[161.700032,-10.820011],[161.319797,-10.204751],[161.917383,-10.446701],[162.119025,-10.482719]]],[[[160.852229,-9.872937],[160.462588,-9.89521],[159.849447,-9.794027],[159.640003,-9.63998],[159.702945,-9.24295],[160.362956,-9.400304],[160.688518,-9.610162],[160.852229,-9.872937]]],[[[161.679982,-9.599982],[161.529397,-9.784312],[160.788253,-8.917543],[160.579997,-8.320009],[160.920028,-8.320009],[161.280006,-9.120011],[161.679982,-9.599982]]],[[[159.875027,-8.33732],[159.917402,-8.53829],[159.133677,-8.114181],[158.586114,-7.754824],[158.21115,-7.421872],[158.359978,-7.320018],[158.820001,-7.560003],[159.640003,-8.020027],[159.875027,-8.33732]]],[[[157.538426,-7.34782],[157.33942,-7.404767],[156.90203,-7.176874],[156.491358,-6.765943],[156.542828,-6.599338],[157.14,-7.021638],[157.538426,-7.34782]]]]},"type":"Feature","id":"SLB","properties":{"name":"Solomon Islands","id":"SLB","centroid":[159.57,-9.27]}},{"geometry":{"type":"Polygon","coordinates":[[[-11.438779,6.785917],[-11.708195,6.860098],[-12.428099,7.262942],[-12.949049,7.798646],[-13.124025,8.163946],[-13.24655,8.903049],[-12.711958,9.342712],[-12.596719,9.620188],[-12.425929,9.835834],[-12.150338,9.858572],[-11.917277,10.046984],[-11.117481,10.045873],[-10.839152,9.688246],[-10.622395,9.26791],[-10.65477,8.977178],[-10.494315,8.715541],[-10.505477,8.348896],[-10.230094,8.406206],[-10.695595,7.939464],[-11.146704,7.396706],[-11.199802,7.105846],[-11.438779,6.785917]]]},"type":"Feature","id":"SLE","properties":{"name":"Sierra Leone","id":"SLE","centroid":[-13.17,8.3]}},{"geometry":{"type":"Polygon","coordinates":[[[-87.793111,13.38448],[-87.904112,13.149017],[-88.483302,13.163951],[-88.843228,13.259734],[-89.256743,13.458533],[-89.812394,13.520622],[-90.095555,13.735338],[-90.064678,13.88197],[-89.721934,14.134228],[-89.534219,14.244816],[-89.587343,14.362586],[-89.353326,14.424133],[-89.058512,14.340029],[-88.843073,14.140507],[-88.541231,13.980155],[-88.503998,13.845486],[-88.065343,13.964626],[-87.859515,13.893312],[-87.723503,13.78505],[-87.793111,13.38448]]]},"type":"Feature","id":"SLV","properties":{"name":"El Salvador","id":"SLV","centroid":[-89.1,13.4]}},{"geometry":{"type":"Polygon","coordinates":[[[49.72862,11.5789],[50.25878,11.67957],[50.73202,12.0219],[51.1112,12.02464],[51.13387,11.74815],[51.04153,11.16651],[51.04531,10.6409],[50.83418,10.27972],[50.55239,9.19874],[50.07092,8.08173],[49.4527,6.80466],[48.59455,5.33911],[47.74079,4.2194],[46.56476,2.85529],[45.56399,2.04576],[44.06815,1.05283],[43.13597,0.2922],[42.04157,-0.91916],[41.81095,-1.44647],[41.58513,-1.68325],[40.993,-0.85829],[40.98105,2.78452],[41.855083,3.918912],[42.12861,4.23413],[42.76967,4.25259],[43.66087,4.95755],[44.9636,5.00162],[47.78942,8.003],[46.948328,7.996877],[43.67875,9.18358],[43.296975,9.540477],[42.92812,10.02194],[42.55876,10.57258],[42.776852,10.926879],[43.145305,11.46204],[43.47066,11.27771],[43.666668,10.864169],[44.117804,10.445538],[44.614259,10.442205],[45.556941,10.698029],[46.645401,10.816549],[47.525658,11.127228],[48.021596,11.193064],[48.378784,11.375482],[48.948206,11.410622],[48.942005,11.394266],[48.948205,11.410617],[49.26776,11.43033],[49.72862,11.5789]]]},"type":"Feature","id":"SOM","properties":{"name":"Somalia","id":"SOM","centroid":[45.25,2.02]}},{"geometry":{"type":"Polygon","coordinates":[[[20.874313,45.416375],[21.483526,45.18117],[21.562023,44.768947],[22.145088,44.478422],[22.459022,44.702517],[22.705726,44.578003],[22.474008,44.409228],[22.65715,44.234923],[22.410446,44.008063],[22.500157,43.642814],[22.986019,43.211161],[22.604801,42.898519],[22.436595,42.580321],[22.545012,42.461362],[22.380526,42.32026],[21.91708,42.30364],[21.576636,42.245224],[21.3527,42.2068],[20.76216,42.05186],[20.76216,42.05186],[20.71731,41.84711],[20.59023,41.85541],[20.52295,42.21787],[20.28374,42.32025],[20.0707,42.58863],[20.25758,42.81275],[20.3398,42.89852],[19.95857,43.10604],[19.63,43.21378],[19.48389,43.35229],[19.21852,43.52384],[19.454,43.5681],[19.59976,44.03847],[19.11761,44.42307],[19.36803,44.863],[19.00548,44.86023],[19.390476,45.236516],[19.072769,45.521511],[18.82982,45.90888],[19.596045,46.17173],[20.220192,46.127469],[20.762175,45.734573],[20.874313,45.416375]]]},"type":"Feature","id":"SRB","properties":{"name":"Republic of Serbia","id":"SRB","centroid":[20.28,44.49]}},{"geometry":{"type":"Polygon","coordinates":[[[-57.147436,5.97315],[-55.949318,5.772878],[-55.84178,5.953125],[-55.03325,6.025291],[-53.958045,5.756548],[-54.478633,4.896756],[-54.399542,4.212611],[-54.006931,3.620038],[-54.181726,3.18978],[-54.269705,2.732392],[-54.524754,2.311849],[-55.097587,2.523748],[-55.569755,2.421506],[-55.973322,2.510364],[-56.073342,2.220795],[-55.9056,2.021996],[-55.995698,1.817667],[-56.539386,1.899523],[-57.150098,2.768927],[-57.281433,3.333492],[-57.601569,3.334655],[-58.044694,4.060864],[-57.86021,4.576801],[-57.914289,4.812626],[-57.307246,5.073567],[-57.147436,5.97315]]]},"type":"Feature","id":"SUR","properties":{"name":"Suriname","id":"SUR","centroid":[-55.1,5.5]}},{"geometry":{"type":"Polygon","coordinates":[[[18.853144,49.49623],[18.909575,49.435846],[19.320713,49.571574],[19.825023,49.217125],[20.415839,49.431453],[20.887955,49.328772],[21.607808,49.470107],[22.558138,49.085738],[22.280842,48.825392],[22.085608,48.422264],[21.872236,48.319971],[20.801294,48.623854],[20.473562,48.56285],[20.239054,48.327567],[19.769471,48.202691],[19.661364,48.266615],[19.174365,48.111379],[18.777025,48.081768],[18.696513,47.880954],[17.857133,47.758429],[17.488473,47.867466],[16.979667,48.123497],[16.879983,48.470013],[16.960288,48.596982],[17.101985,48.816969],[17.545007,48.800019],[17.886485,48.903475],[17.913512,48.996493],[18.104973,49.043983],[18.170498,49.271515],[18.399994,49.315001],[18.554971,49.495015],[18.853144,49.49623]]]},"type":"Feature","id":"SVK","properties":{"name":"Slovakia","id":"SVK","centroid":[17.07,48.1]}},{"geometry":{"type":"Polygon","coordinates":[[[13.806475,46.509306],[14.632472,46.431817],[15.137092,46.658703],[16.011664,46.683611],[16.202298,46.852386],[16.370505,46.841327],[16.564808,46.503751],[15.768733,46.238108],[15.67153,45.834154],[15.323954,45.731783],[15.327675,45.452316],[14.935244,45.471695],[14.595109,45.634941],[14.411968,45.466166],[13.71506,45.500324],[13.93763,45.591016],[13.69811,46.016778],[13.806475,46.509306]]]},"type":"Feature","id":"SVN","properties":{"name":"Slovenia","id":"SVN","centroid":[14.33,46.04]}},{"geometry":{"type":"Polygon","coordinates":[[[22.183173,65.723741],[21.213517,65.026005],[21.369631,64.413588],[19.778876,63.609554],[17.847779,62.7494],[17.119555,61.341166],[17.831346,60.636583],[18.787722,60.081914],[17.869225,58.953766],[16.829185,58.719827],[16.44771,57.041118],[15.879786,56.104302],[14.666681,56.200885],[14.100721,55.407781],[12.942911,55.361737],[12.625101,56.30708],[11.787942,57.441817],[11.027369,58.856149],[11.468272,59.432393],[12.300366,60.117933],[12.631147,61.293572],[11.992064,61.800362],[11.930569,63.128318],[12.579935,64.066219],[13.571916,64.049114],[13.919905,64.445421],[13.55569,64.787028],[15.108411,66.193867],[16.108712,67.302456],[16.768879,68.013937],[17.729182,68.010552],[17.993868,68.567391],[19.87856,68.407194],[20.025269,69.065139],[20.645593,69.106247],[21.978535,68.616846],[23.539473,67.936009],[23.56588,66.396051],[23.903379,66.006927],[22.183173,65.723741]]]},"type":"Feature","id":"SWE","properties":{"name":"Sweden","id":"SWE","centroid":[18.03,59.2]}},{"geometry":{"type":"Polygon","coordinates":[[[32.071665,-26.73382],[31.86806,-27.177927],[31.282773,-27.285879],[30.685962,-26.743845],[30.676609,-26.398078],[30.949667,-26.022649],[31.04408,-25.731452],[31.333158,-25.660191],[31.837778,-25.843332],[31.985779,-26.29178],[32.071665,-26.73382]]]},"type":"Feature","id":"SWZ","properties":{"name":"Swaziland","id":"SWZ","centroid":[31.06,-26.18]}},{"geometry":{"type":"Polygon","coordinates":[[[38.792341,33.378686],[36.834062,32.312938],[35.719918,32.709192],[35.700798,32.716014],[35.836397,32.868123],[35.821101,33.277426],[36.06646,33.824912],[36.61175,34.201789],[36.448194,34.593935],[35.998403,34.644914],[35.905023,35.410009],[36.149763,35.821535],[36.41755,36.040617],[36.685389,36.259699],[36.739494,36.81752],[37.066761,36.623036],[38.167727,36.90121],[38.699891,36.712927],[39.52258,36.716054],[40.673259,37.091276],[41.212089,37.074352],[42.349591,37.229873],[41.837064,36.605854],[41.289707,36.358815],[41.383965,35.628317],[41.006159,34.419372],[38.792341,33.378686]]]},"type":"Feature","id":"SYR","properties":{"name":"Syria","id":"SYR","centroid":[36.17,33.31]}},{"geometry":{"type":"Polygon","coordinates":[[[14.495787,12.859396],[14.595781,13.330427],[13.954477,13.353449],[13.956699,13.996691],[13.540394,14.367134],[13.97217,15.68437],[15.247731,16.627306],[15.300441,17.92795],[15.685741,19.95718],[15.903247,20.387619],[15.487148,20.730415],[15.47106,21.04845],[15.096888,21.308519],[14.8513,22.86295],[15.86085,23.40972],[19.84926,21.49509],[23.83766,19.58047],[23.88689,15.61084],[23.02459,15.68072],[22.56795,14.94429],[22.30351,14.32682],[22.51202,14.09318],[22.18329,13.78648],[22.29658,13.37232],[22.03759,12.95546],[21.93681,12.58818],[22.28801,12.64605],[22.49762,12.26024],[22.50869,11.67936],[22.87622,11.38461],[22.864165,11.142395],[22.231129,10.971889],[21.723822,10.567056],[21.000868,9.475985],[20.059685,9.012706],[19.094008,9.074847],[18.81201,8.982915],[18.911022,8.630895],[18.389555,8.281304],[17.96493,7.890914],[16.705988,7.508328],[16.456185,7.734774],[16.290562,7.754307],[16.106232,7.497088],[15.27946,7.421925],[15.436092,7.692812],[15.120866,8.38215],[14.979996,8.796104],[14.544467,8.965861],[13.954218,9.549495],[14.171466,10.021378],[14.627201,9.920919],[14.909354,9.992129],[15.467873,9.982337],[14.923565,10.891325],[14.960152,11.555574],[14.89336,12.21905],[14.495787,12.859396]]]},"type":"Feature","id":"TCD","properties":{"name":"Chad","id":"TCD","centroid":[14.59,12.1]}},{"geometry":{"type":"Polygon","coordinates":[[[1.865241,6.142158],[1.060122,5.928837],[0.836931,6.279979],[0.570384,6.914359],[0.490957,7.411744],[0.712029,8.312465],[0.461192,8.677223],[0.365901,9.465004],[0.36758,10.191213],[-0.049785,10.706918],[0.023803,11.018682],[0.899563,10.997339],[0.772336,10.470808],[1.077795,10.175607],[1.425061,9.825395],[1.463043,9.334624],[1.664478,9.12859],[1.618951,6.832038],[1.865241,6.142158]]]},"type":"Feature","id":"TGO","properties":{"name":"Togo","id":"TGO","centroid":[1.2,6.09]}},{"geometry":{"type":"Polygon","coordinates":[[[102.584932,12.186595],[101.687158,12.64574],[100.83181,12.627085],[100.978467,13.412722],[100.097797,13.406856],[100.018733,12.307001],[99.478921,10.846367],[99.153772,9.963061],[99.222399,9.239255],[99.873832,9.207862],[100.279647,8.295153],[100.459274,7.429573],[101.017328,6.856869],[101.623079,6.740622],[102.141187,6.221636],[101.814282,5.810808],[101.154219,5.691384],[101.075516,6.204867],[100.259596,6.642825],[100.085757,6.464489],[99.690691,6.848213],[99.519642,7.343454],[98.988253,7.907993],[98.503786,8.382305],[98.339662,7.794512],[98.150009,8.350007],[98.25915,8.973923],[98.553551,9.93296],[99.038121,10.960546],[99.587286,11.892763],[99.196354,12.804748],[99.212012,13.269294],[99.097755,13.827503],[98.430819,14.622028],[98.192074,15.123703],[98.537376,15.308497],[98.903348,16.177824],[98.493761,16.837836],[97.859123,17.567946],[97.375896,18.445438],[97.797783,18.62708],[98.253724,19.708203],[98.959676,19.752981],[99.543309,20.186598],[100.115988,20.41785],[100.548881,20.109238],[100.606294,19.508344],[101.282015,19.462585],[101.035931,18.408928],[101.059548,17.512497],[102.113592,18.109102],[102.413005,17.932782],[102.998706,17.961695],[103.200192,18.309632],[103.956477,18.240954],[104.716947,17.428859],[104.779321,16.441865],[105.589039,15.570316],[105.544338,14.723934],[105.218777,14.273212],[104.281418,14.416743],[102.988422,14.225721],[102.348099,13.394247],[102.584932,12.186595]]]},"type":"Feature","id":"THA","properties":{"name":"Thailand","id":"THA","centroid":[100.35,13.45]}},{"geometry":{"type":"Polygon","coordinates":[[[71.014198,40.244366],[70.648019,39.935754],[69.55961,40.103211],[69.464887,39.526683],[70.549162,39.604198],[71.784694,39.279463],[73.675379,39.431237],[73.928852,38.505815],[74.257514,38.606507],[74.864816,38.378846],[74.829986,37.990007],[74.980002,37.41999],[73.948696,37.421566],[73.260056,37.495257],[72.63689,37.047558],[72.193041,36.948288],[71.844638,36.738171],[71.448693,37.065645],[71.541918,37.905774],[71.239404,37.953265],[71.348131,38.258905],[70.806821,38.486282],[70.376304,38.138396],[70.270574,37.735165],[70.116578,37.588223],[69.518785,37.608997],[69.196273,37.151144],[68.859446,37.344336],[68.135562,37.023115],[67.83,37.144994],[68.392033,38.157025],[68.176025,38.901553],[67.44222,39.140144],[67.701429,39.580478],[68.536416,39.533453],[69.011633,40.086158],[69.329495,40.727824],[70.666622,40.960213],[70.45816,40.496495],[70.601407,40.218527],[71.014198,40.244366]]]},"type":"Feature","id":"TJK","properties":{"name":"Tajikistan","id":"TJK","centroid":[68.48,38.33]}},{"geometry":{"type":"Polygon","coordinates":[[[61.210817,35.650072],[61.123071,36.491597],[60.377638,36.527383],[59.234762,37.412988],[58.436154,37.522309],[57.330434,38.029229],[56.619366,38.121394],[56.180375,37.935127],[55.511578,37.964117],[54.800304,37.392421],[53.921598,37.198918],[53.735511,37.906136],[53.880929,38.952093],[53.101028,39.290574],[53.357808,39.975286],[52.693973,40.033629],[52.915251,40.876523],[53.858139,40.631034],[54.736845,40.951015],[54.008311,41.551211],[53.721713,42.123191],[52.91675,41.868117],[52.814689,41.135371],[52.50246,41.783316],[52.944293,42.116034],[54.079418,42.324109],[54.755345,42.043971],[55.455251,41.259859],[55.968191,41.308642],[57.096391,41.32231],[56.932215,41.826026],[57.78653,42.170553],[58.629011,42.751551],[59.976422,42.223082],[60.083341,41.425146],[60.465953,41.220327],[61.547179,41.26637],[61.882714,41.084857],[62.37426,40.053886],[63.518015,39.363257],[64.170223,38.892407],[65.215999,38.402695],[66.54615,37.974685],[66.518607,37.362784],[66.217385,37.39379],[65.745631,37.661164],[65.588948,37.305217],[64.746105,37.111818],[64.546479,36.312073],[63.982896,36.007957],[63.193538,35.857166],[62.984662,35.404041],[62.230651,35.270664],[61.210817,35.650072]]]},"type":"Feature","id":"TKM","properties":{"name":"Turkmenistan","id":"TKM","centroid":[57.5,38]}},{"geometry":{"type":"Polygon","coordinates":[[[124.968682,-8.89279],[125.086246,-8.656887],[125.947072,-8.432095],[126.644704,-8.398247],[126.957243,-8.273345],[127.335928,-8.397317],[126.967992,-8.668256],[125.925885,-9.106007],[125.08852,-9.393173],[125.07002,-9.089987],[124.968682,-8.89279]]]},"type":"Feature","id":"TLS","properties":{"name":"East Timor","id":"TLS","centroid":[125.34,-8.29]}},{"geometry":{"type":"Polygon","coordinates":[[[-61.68,10.76],[-61.105,10.89],[-60.895,10.855],[-60.935,10.11],[-61.77,10],[-61.95,10.09],[-61.66,10.365],[-61.68,10.76]]]},"type":"Feature","id":"TTO","properties":{"name":"Trinidad and Tobago","id":"TTO","centroid":[-61.31,10.4]}},{"geometry":{"type":"Polygon","coordinates":[[[9.48214,30.307556],[9.055603,32.102692],[8.439103,32.506285],[8.430473,32.748337],[7.612642,33.344115],[7.524482,34.097376],[8.140981,34.655146],[8.376368,35.479876],[8.217824,36.433177],[8.420964,36.946427],[9.509994,37.349994],[10.210002,37.230002],[10.18065,36.724038],[11.028867,37.092103],[11.100026,36.899996],[10.600005,36.41],[10.593287,35.947444],[10.939519,35.698984],[10.807847,34.833507],[10.149593,34.330773],[10.339659,33.785742],[10.856836,33.76874],[11.108501,33.293343],[11.488787,33.136996],[11.432253,32.368903],[10.94479,32.081815],[10.636901,31.761421],[9.950225,31.37607],[10.056575,30.961831],[9.970017,30.539325],[9.48214,30.307556]]]},"type":"Feature","id":"TUN","properties":{"name":"Tunisia","id":"TUN","centroid":[10.11,36.5]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[36.913127,41.335358],[38.347665,40.948586],[39.512607,41.102763],[40.373433,41.013673],[41.554084,41.535656],[42.619549,41.583173],[43.582746,41.092143],[43.752658,40.740201],[43.656436,40.253564],[44.400009,40.005],[44.79399,39.713003],[44.109225,39.428136],[44.421403,38.281281],[44.225756,37.971584],[44.772699,37.170445],[44.293452,37.001514],[43.942259,37.256228],[42.779126,37.385264],[42.349591,37.229873],[41.212089,37.074352],[40.673259,37.091276],[39.52258,36.716054],[38.699891,36.712927],[38.167727,36.90121],[37.066761,36.623036],[36.739494,36.81752],[36.685389,36.259699],[36.41755,36.040617],[36.149763,35.821535],[35.782085,36.274995],[36.160822,36.650606],[35.550936,36.565443],[34.714553,36.795532],[34.026895,36.21996],[32.509158,36.107564],[31.699595,36.644275],[30.621625,36.677865],[30.391096,36.262981],[29.699976,36.144357],[28.732903,36.676831],[27.641187,36.658822],[27.048768,37.653361],[26.318218,38.208133],[26.8047,38.98576],[26.170785,39.463612],[27.28002,40.420014],[28.819978,40.460011],[29.240004,41.219991],[31.145934,41.087622],[32.347979,41.736264],[33.513283,42.01896],[35.167704,42.040225],[36.913127,41.335358]]],[[[27.192377,40.690566],[26.358009,40.151994],[26.043351,40.617754],[26.056942,40.824123],[26.294602,40.936261],[26.604196,41.562115],[26.117042,41.826905],[27.135739,42.141485],[27.99672,42.007359],[28.115525,41.622886],[28.988443,41.299934],[28.806438,41.054962],[27.619017,40.999823],[27.192377,40.690566]]]]},"type":"Feature","id":"TUR","properties":{"name":"Turkey","id":"TUR","centroid":[32.54,39.57]}},{"geometry":{"type":"Polygon","coordinates":[[[33.903711,-0.95],[34.07262,-1.05982],[37.69869,-3.09699],[37.7669,-3.67712],[39.20222,-4.67677],[38.74054,-5.90895],[38.79977,-6.47566],[39.44,-6.84],[39.47,-7.1],[39.19469,-7.7039],[39.25203,-8.00781],[39.18652,-8.48551],[39.53574,-9.11237],[39.9496,-10.0984],[40.31659,-10.3171],[39.521,-10.89688],[38.427557,-11.285202],[37.82764,-11.26879],[37.47129,-11.56876],[36.775151,-11.594537],[36.514082,-11.720938],[35.312398,-11.439146],[34.559989,-11.52002],[34.28,-10.16],[33.940838,-9.693674],[33.73972,-9.41715],[32.759375,-9.230599],[32.191865,-8.930359],[31.556348,-8.762049],[31.157751,-8.594579],[30.74,-8.34],[30.2,-7.08],[29.62,-6.52],[29.419993,-5.939999],[29.519987,-5.419979],[29.339998,-4.499983],[29.753512,-4.452389],[30.11632,-4.09012],[30.50554,-3.56858],[30.75224,-3.35931],[30.74301,-3.03431],[30.52766,-2.80762],[30.46967,-2.41383],[30.758309,-2.28725],[30.816135,-1.698914],[30.419105,-1.134659],[30.76986,-1.01455],[31.86617,-1.02736],[33.903711,-0.95]]]},"type":"Feature","id":"TZA","properties":{"name":"United Republic of Tanzania","id":"TZA","centroid":[35.45,-6.08]}},{"geometry":{"type":"Polygon","coordinates":[[[31.86617,-1.02736],[30.76986,-1.01455],[30.419105,-1.134659],[29.821519,-1.443322],[29.579466,-1.341313],[29.587838,-0.587406],[29.8195,-0.2053],[29.875779,0.59738],[30.086154,1.062313],[30.468508,1.583805],[30.85267,1.849396],[31.174149,2.204465],[30.77332,2.33989],[30.83385,3.50917],[31.24556,3.7819],[31.88145,3.55827],[32.68642,3.79232],[33.39,3.79],[34.005,4.249885],[34.47913,3.5556],[34.59607,3.05374],[35.03599,1.90584],[34.6721,1.17694],[34.18,0.515],[33.893569,0.109814],[33.903711,-0.95],[31.86617,-1.02736]]]},"type":"Feature","id":"UGA","properties":{"name":"Uganda","id":"UGA","centroid":[32.3,0.2]}},{"geometry":{"type":"Polygon","coordinates":[[[31.785998,52.101678],[32.159412,52.061267],[32.412058,52.288695],[32.715761,52.238465],[33.7527,52.335075],[34.391731,51.768882],[34.141978,51.566413],[34.224816,51.255993],[35.022183,51.207572],[35.377924,50.773955],[35.356116,50.577197],[36.626168,50.225591],[37.39346,50.383953],[38.010631,49.915662],[38.594988,49.926462],[40.069058,49.601055],[40.080789,49.30743],[39.674664,48.783818],[39.895632,48.232405],[39.738278,47.898937],[38.770585,47.825608],[38.255112,47.5464],[38.223538,47.10219],[37.425137,47.022221],[36.759855,46.6987],[35.823685,46.645964],[34.962342,46.273197],[35.020788,45.651219],[35.510009,45.409993],[36.529998,45.46999],[36.334713,45.113216],[35.239999,44.939996],[33.882511,44.361479],[33.326421,44.564877],[33.546924,45.034771],[32.454174,45.327466],[32.630804,45.519186],[33.588162,45.851569],[33.298567,46.080598],[31.74414,46.333348],[31.675307,46.706245],[30.748749,46.5831],[30.377609,46.03241],[29.603289,45.293308],[29.149725,45.464925],[28.679779,45.304031],[28.233554,45.488283],[28.485269,45.596907],[28.659987,45.939987],[28.933717,46.25883],[28.862972,46.437889],[29.072107,46.517678],[29.170654,46.379262],[29.759972,46.349988],[30.024659,46.423937],[29.83821,46.525326],[29.908852,46.674361],[29.559674,46.928583],[29.415135,47.346645],[29.050868,47.510227],[29.122698,47.849095],[28.670891,48.118149],[28.259547,48.155562],[27.522537,48.467119],[26.857824,48.368211],[26.619337,48.220726],[26.19745,48.220881],[25.945941,47.987149],[25.207743,47.891056],[24.866317,47.737526],[24.402056,47.981878],[23.760958,47.985598],[23.142236,48.096341],[22.710531,47.882194],[22.64082,48.15024],[22.085608,48.422264],[22.280842,48.825392],[22.558138,49.085738],[22.776419,49.027395],[22.51845,49.476774],[23.426508,50.308506],[23.922757,50.424881],[24.029986,50.705407],[23.527071,51.578454],[24.005078,51.617444],[24.553106,51.888461],[25.327788,51.910656],[26.337959,51.832289],[27.454066,51.592303],[28.241615,51.572227],[28.617613,51.427714],[28.992835,51.602044],[29.254938,51.368234],[30.157364,51.416138],[30.555117,51.319503],[30.619454,51.822806],[30.927549,52.042353],[31.785998,52.101678]]]},"type":"Feature","id":"UKR","properties":{"name":"Ukraine","id":"UKR","centroid":[30.28,50.3]}},{"geometry":{"type":"Polygon","coordinates":[[[-57.625133,-30.216295],[-56.976026,-30.109686],[-55.973245,-30.883076],[-55.60151,-30.853879],[-54.572452,-31.494511],[-53.787952,-32.047243],[-53.209589,-32.727666],[-53.650544,-33.202004],[-53.373662,-33.768378],[-53.806426,-34.396815],[-54.935866,-34.952647],[-55.67409,-34.752659],[-56.215297,-34.859836],[-57.139685,-34.430456],[-57.817861,-34.462547],[-58.427074,-33.909454],[-58.349611,-33.263189],[-58.132648,-33.040567],[-58.14244,-32.044504],[-57.874937,-31.016556],[-57.625133,-30.216295]]]},"type":"Feature","id":"URY","properties":{"name":"Uruguay","id":"URY","centroid":[-56.11,-34.5]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.54211,19.08348],[-155.68817,18.91619],[-155.93665,19.05939],[-155.90806,19.33888],[-156.07347,19.70294],[-156.02368,19.81422],[-155.85008,19.97729],[-155.91907,20.17395],[-155.86108,20.26721],[-155.78505,20.2487],[-155.40214,20.07975],[-155.22452,19.99302],[-155.06226,19.8591],[-154.80741,19.50871],[-154.83147,19.45328],[-155.22217,19.23972],[-155.54211,19.08348]]],[[[-156.07926,20.64397],[-156.41445,20.57241],[-156.58673,20.783],[-156.70167,20.8643],[-156.71055,20.92676],[-156.61258,21.01249],[-156.25711,20.91745],[-155.99566,20.76404],[-156.07926,20.64397]]],[[[-156.75824,21.17684],[-156.78933,21.06873],[-157.32521,21.09777],[-157.25027,21.21958],[-156.75824,21.17684]]],[[[-157.65283,21.32217],[-157.70703,21.26442],[-157.7786,21.27729],[-158.12667,21.31244],[-158.2538,21.53919],[-158.29265,21.57912],[-158.0252,21.71696],[-157.94161,21.65272],[-157.65283,21.32217]]],[[[-159.34512,21.982],[-159.46372,21.88299],[-159.80051,22.06533],[-159.74877,22.1382],[-159.5962,22.23618],[-159.36569,22.21494],[-159.34512,21.982]]],[[[-94.81758,49.38905],[-94.64,48.84],[-94.32914,48.67074],[-93.63087,48.60926],[-92.61,48.45],[-91.64,48.14],[-90.83,48.27],[-89.6,48.01],[-89.272917,48.019808],[-88.378114,48.302918],[-87.439793,47.94],[-86.461991,47.553338],[-85.652363,47.220219],[-84.87608,46.900083],[-84.779238,46.637102],[-84.543749,46.538684],[-84.6049,46.4396],[-84.3367,46.40877],[-84.14212,46.512226],[-84.091851,46.275419],[-83.890765,46.116927],[-83.616131,46.116927],[-83.469551,45.994686],[-83.592851,45.816894],[-82.550925,45.347517],[-82.337763,44.44],[-82.137642,43.571088],[-82.43,42.98],[-82.9,42.43],[-83.12,42.08],[-83.142,41.975681],[-83.02981,41.832796],[-82.690089,41.675105],[-82.439278,41.675105],[-81.277747,42.209026],[-80.247448,42.3662],[-78.939362,42.863611],[-78.92,42.965],[-79.01,43.27],[-79.171674,43.466339],[-78.72028,43.625089],[-77.737885,43.629056],[-76.820034,43.628784],[-76.5,44.018459],[-76.375,44.09631],[-75.31821,44.81645],[-74.867,45.00048],[-73.34783,45.00738],[-71.50506,45.0082],[-71.405,45.255],[-71.08482,45.30524],[-70.66,45.46],[-70.305,45.915],[-69.99997,46.69307],[-69.237216,47.447781],[-68.905,47.185],[-68.23444,47.35486],[-67.79046,47.06636],[-67.79134,45.70281],[-67.13741,45.13753],[-66.96466,44.8097],[-68.03252,44.3252],[-69.06,43.98],[-70.11617,43.68405],[-70.645476,43.090238],[-70.81489,42.8653],[-70.825,42.335],[-70.495,41.805],[-70.08,41.78],[-70.185,42.145],[-69.88497,41.92283],[-69.96503,41.63717],[-70.64,41.475],[-71.12039,41.49445],[-71.86,41.32],[-72.295,41.27],[-72.87643,41.22065],[-73.71,40.931102],[-72.24126,41.11948],[-71.945,40.93],[-73.345,40.63],[-73.982,40.628],[-73.952325,40.75075],[-74.25671,40.47351],[-73.96244,40.42763],[-74.17838,39.70926],[-74.90604,38.93954],[-74.98041,39.1964],[-75.20002,39.24845],[-75.52805,39.4985],[-75.32,38.96],[-75.071835,38.782032],[-75.05673,38.40412],[-75.37747,38.01551],[-75.94023,37.21689],[-76.03127,37.2566],[-75.72205,37.93705],[-76.23287,38.319215],[-76.35,39.15],[-76.542725,38.717615],[-76.32933,38.08326],[-76.989998,38.239992],[-76.30162,37.917945],[-76.25874,36.9664],[-75.9718,36.89726],[-75.86804,36.55125],[-75.72749,35.55074],[-76.36318,34.80854],[-77.397635,34.51201],[-78.05496,33.92547],[-78.55435,33.86133],[-79.06067,33.49395],[-79.20357,33.15839],[-80.301325,32.509355],[-80.86498,32.0333],[-81.33629,31.44049],[-81.49042,30.72999],[-81.31371,30.03552],[-80.98,29.18],[-80.535585,28.47213],[-80.53,28.04],[-80.056539,26.88],[-80.088015,26.205765],[-80.13156,25.816775],[-80.38103,25.20616],[-80.68,25.08],[-81.17213,25.20126],[-81.33,25.64],[-81.71,25.87],[-82.24,26.73],[-82.70515,27.49504],[-82.85526,27.88624],[-82.65,28.55],[-82.93,29.1],[-83.70959,29.93656],[-84.1,30.09],[-85.10882,29.63615],[-85.28784,29.68612],[-85.7731,30.15261],[-86.4,30.4],[-87.53036,30.27433],[-88.41782,30.3849],[-89.18049,30.31598],[-89.593831,30.159994],[-89.413735,29.89419],[-89.43,29.48864],[-89.21767,29.29108],[-89.40823,29.15961],[-89.77928,29.30714],[-90.15463,29.11743],[-90.880225,29.148535],[-91.626785,29.677],[-92.49906,29.5523],[-93.22637,29.78375],[-93.84842,29.71363],[-94.69,29.48],[-95.60026,28.73863],[-96.59404,28.30748],[-97.14,27.83],[-97.37,27.38],[-97.38,26.69],[-97.33,26.21],[-97.14,25.87],[-97.53,25.84],[-98.24,26.06],[-99.02,26.37],[-99.3,26.84],[-99.52,27.54],[-100.11,28.11],[-100.45584,28.69612],[-100.9576,29.38071],[-101.6624,29.7793],[-102.48,29.76],[-103.11,28.97],[-103.94,29.27],[-104.45697,29.57196],[-104.70575,30.12173],[-105.03737,30.64402],[-105.63159,31.08383],[-106.1429,31.39995],[-106.50759,31.75452],[-108.24,31.754854],[-108.24194,31.34222],[-109.035,31.34194],[-111.02361,31.33472],[-113.30498,32.03914],[-114.815,32.52528],[-114.72139,32.72083],[-115.99135,32.61239],[-117.12776,32.53534],[-117.295938,33.046225],[-117.944,33.621236],[-118.410602,33.740909],[-118.519895,34.027782],[-119.081,34.078],[-119.438841,34.348477],[-120.36778,34.44711],[-120.62286,34.60855],[-120.74433,35.15686],[-121.71457,36.16153],[-122.54747,37.55176],[-122.51201,37.78339],[-122.95319,38.11371],[-123.7272,38.95166],[-123.86517,39.76699],[-124.39807,40.3132],[-124.17886,41.14202],[-124.2137,41.99964],[-124.53284,42.76599],[-124.14214,43.70838],[-124.020535,44.615895],[-123.89893,45.52341],[-124.079635,46.86475],[-124.39567,47.72017],[-124.68721,48.184433],[-124.566101,48.379715],[-123.12,48.04],[-122.58736,47.096],[-122.34,47.36],[-122.5,48.18],[-122.84,49],[-120,49],[-117.03121,49],[-116.04818,49],[-113,49],[-110.05,49],[-107.05,49],[-104.04826,48.99986],[-100.65,49],[-97.22872,49.0007],[-95.15907,49],[-95.15609,49.38425],[-94.81758,49.38905]]],[[[-153.006314,57.115842],[-154.00509,56.734677],[-154.516403,56.992749],[-154.670993,57.461196],[-153.76278,57.816575],[-153.228729,57.968968],[-152.564791,57.901427],[-152.141147,57.591059],[-153.006314,57.115842]]],[[[-165.579164,59.909987],[-166.19277,59.754441],[-166.848337,59.941406],[-167.455277,60.213069],[-166.467792,60.38417],[-165.67443,60.293607],[-165.579164,59.909987]]],[[[-171.731657,63.782515],[-171.114434,63.592191],[-170.491112,63.694975],[-169.682505,63.431116],[-168.689439,63.297506],[-168.771941,63.188598],[-169.52944,62.976931],[-170.290556,63.194438],[-170.671386,63.375822],[-171.553063,63.317789],[-171.791111,63.405846],[-171.731657,63.782515]]],[[[-155.06779,71.147776],[-154.344165,70.696409],[-153.900006,70.889989],[-152.210006,70.829992],[-152.270002,70.600006],[-150.739992,70.430017],[-149.720003,70.53001],[-147.613362,70.214035],[-145.68999,70.12001],[-144.920011,69.989992],[-143.589446,70.152514],[-142.07251,69.851938],[-140.985988,69.711998],[-140.985988,69.711998],[-140.992499,66.000029],[-140.99777,60.306397],[-140.012998,60.276838],[-139.039,60.000007],[-138.34089,59.56211],[-137.4525,58.905],[-136.47972,59.46389],[-135.47583,59.78778],[-134.945,59.27056],[-134.27111,58.86111],[-133.355549,58.410285],[-132.73042,57.69289],[-131.70781,56.55212],[-130.00778,55.91583],[-129.979994,55.284998],[-130.53611,54.802753],[-131.085818,55.178906],[-131.967211,55.497776],[-132.250011,56.369996],[-133.539181,57.178887],[-134.078063,58.123068],[-135.038211,58.187715],[-136.628062,58.212209],[-137.800006,58.499995],[-139.867787,59.537762],[-140.825274,59.727517],[-142.574444,60.084447],[-143.958881,59.99918],[-145.925557,60.45861],[-147.114374,60.884656],[-148.224306,60.672989],[-148.018066,59.978329],[-148.570823,59.914173],[-149.727858,59.705658],[-150.608243,59.368211],[-151.716393,59.155821],[-151.859433,59.744984],[-151.409719,60.725803],[-150.346941,61.033588],[-150.621111,61.284425],[-151.895839,60.727198],[-152.57833,60.061657],[-154.019172,59.350279],[-153.287511,58.864728],[-154.232492,58.146374],[-155.307491,57.727795],[-156.308335,57.422774],[-156.556097,56.979985],[-158.117217,56.463608],[-158.433321,55.994154],[-159.603327,55.566686],[-160.28972,55.643581],[-161.223048,55.364735],[-162.237766,55.024187],[-163.069447,54.689737],[-164.785569,54.404173],[-164.942226,54.572225],[-163.84834,55.039431],[-162.870001,55.348043],[-161.804175,55.894986],[-160.563605,56.008055],[-160.07056,56.418055],[-158.684443,57.016675],[-158.461097,57.216921],[-157.72277,57.570001],[-157.550274,58.328326],[-157.041675,58.918885],[-158.194731,58.615802],[-158.517218,58.787781],[-159.058606,58.424186],[-159.711667,58.93139],[-159.981289,58.572549],[-160.355271,59.071123],[-161.355003,58.670838],[-161.968894,58.671665],[-162.054987,59.266925],[-161.874171,59.633621],[-162.518059,59.989724],[-163.818341,59.798056],[-164.662218,60.267484],[-165.346388,60.507496],[-165.350832,61.073895],[-166.121379,61.500019],[-165.734452,62.074997],[-164.919179,62.633076],[-164.562508,63.146378],[-163.753332,63.219449],[-163.067224,63.059459],[-162.260555,63.541936],[-161.53445,63.455817],[-160.772507,63.766108],[-160.958335,64.222799],[-161.518068,64.402788],[-160.777778,64.788604],[-161.391926,64.777235],[-162.45305,64.559445],[-162.757786,64.338605],[-163.546394,64.55916],[-164.96083,64.446945],[-166.425288,64.686672],[-166.845004,65.088896],[-168.11056,65.669997],[-166.705271,66.088318],[-164.47471,66.57666],[-163.652512,66.57666],[-163.788602,66.077207],[-161.677774,66.11612],[-162.489715,66.735565],[-163.719717,67.116395],[-164.430991,67.616338],[-165.390287,68.042772],[-166.764441,68.358877],[-166.204707,68.883031],[-164.430811,68.915535],[-163.168614,69.371115],[-162.930566,69.858062],[-161.908897,70.33333],[-160.934797,70.44769],[-159.039176,70.891642],[-158.119723,70.824721],[-156.580825,71.357764],[-155.06779,71.147776]]]]},"type":"Feature","id":"USA","properties":{"name":"United States of America","id":"USA","centroid":[-77.02,39.91]}},{"geometry":{"type":"Polygon","coordinates":[[[66.518607,37.362784],[66.54615,37.974685],[65.215999,38.402695],[64.170223,38.892407],[63.518015,39.363257],[62.37426,40.053886],[61.882714,41.084857],[61.547179,41.26637],[60.465953,41.220327],[60.083341,41.425146],[59.976422,42.223082],[58.629011,42.751551],[57.78653,42.170553],[56.932215,41.826026],[57.096391,41.32231],[55.968191,41.308642],[55.928917,44.995858],[58.503127,45.586804],[58.689989,45.500014],[60.239972,44.784037],[61.05832,44.405817],[62.0133,43.504477],[63.185787,43.650075],[64.900824,43.728081],[66.098012,42.99766],[66.023392,41.994646],[66.510649,41.987644],[66.714047,41.168444],[67.985856,41.135991],[68.259896,40.662325],[68.632483,40.668681],[69.070027,41.384244],[70.388965,42.081308],[70.962315,42.266154],[71.259248,42.167711],[70.420022,41.519998],[71.157859,41.143587],[71.870115,41.3929],[73.055417,40.866033],[71.774875,40.145844],[71.014198,40.244366],[70.601407,40.218527],[70.45816,40.496495],[70.666622,40.960213],[69.329495,40.727824],[69.011633,40.086158],[68.536416,39.533453],[67.701429,39.580478],[67.44222,39.140144],[68.176025,38.901553],[68.392033,38.157025],[67.83,37.144994],[67.075782,37.356144],[66.518607,37.362784]]]},"type":"Feature","id":"UZB","properties":{"name":"Uzbekistan","id":"UZB","centroid":[69.1,41.2]}},{"geometry":{"type":"Polygon","coordinates":[[[-71.331584,11.776284],[-71.360006,11.539994],[-71.94705,11.423282],[-71.620868,10.96946],[-71.633064,10.446494],[-72.074174,9.865651],[-71.695644,9.072263],[-71.264559,9.137195],[-71.039999,9.859993],[-71.350084,10.211935],[-71.400623,10.968969],[-70.155299,11.375482],[-70.293843,11.846822],[-69.943245,12.162307],[-69.5843,11.459611],[-68.882999,11.443385],[-68.233271,10.885744],[-68.194127,10.554653],[-67.296249,10.545868],[-66.227864,10.648627],[-65.655238,10.200799],[-64.890452,10.077215],[-64.329479,10.389599],[-64.318007,10.641418],[-63.079322,10.701724],[-61.880946,10.715625],[-62.730119,10.420269],[-62.388512,9.948204],[-61.588767,9.873067],[-60.830597,9.38134],[-60.671252,8.580174],[-60.150096,8.602757],[-59.758285,8.367035],[-60.550588,7.779603],[-60.637973,7.415],[-60.295668,7.043911],[-60.543999,6.856584],[-61.159336,6.696077],[-61.139415,6.234297],[-61.410303,5.959068],[-60.733574,5.200277],[-60.601179,4.918098],[-60.966893,4.536468],[-62.08543,4.162124],[-62.804533,4.006965],[-63.093198,3.770571],[-63.888343,4.02053],[-64.628659,4.148481],[-64.816064,4.056445],[-64.368494,3.79721],[-64.408828,3.126786],[-64.269999,2.497006],[-63.422867,2.411068],[-63.368788,2.2009],[-64.083085,1.916369],[-64.199306,1.492855],[-64.611012,1.328731],[-65.354713,1.095282],[-65.548267,0.789254],[-66.325765,0.724452],[-66.876326,1.253361],[-67.181294,2.250638],[-67.447092,2.600281],[-67.809938,2.820655],[-67.303173,3.318454],[-67.337564,3.542342],[-67.621836,3.839482],[-67.823012,4.503937],[-67.744697,5.221129],[-67.521532,5.55687],[-67.34144,6.095468],[-67.695087,6.267318],[-68.265052,6.153268],[-68.985319,6.206805],[-69.38948,6.099861],[-70.093313,6.960376],[-70.674234,7.087785],[-71.960176,6.991615],[-72.198352,7.340431],[-72.444487,7.423785],[-72.479679,7.632506],[-72.360901,8.002638],[-72.439862,8.405275],[-72.660495,8.625288],[-72.78873,9.085027],[-73.304952,9.152],[-73.027604,9.73677],[-72.905286,10.450344],[-72.614658,10.821975],[-72.227575,11.108702],[-71.973922,11.608672],[-71.331584,11.776284]]]},"type":"Feature","id":"VEN","properties":{"name":"Venezuela","id":"VEN","centroid":[-66.55,10.3]}},{"geometry":{"type":"Polygon","coordinates":[[[108.05018,21.55238],[106.715068,20.696851],[105.881682,19.75205],[105.662006,19.058165],[106.426817,18.004121],[107.361954,16.697457],[108.269495,16.079742],[108.877107,15.276691],[109.33527,13.426028],[109.200136,11.666859],[108.36613,11.008321],[107.220929,10.364484],[106.405113,9.53084],[105.158264,8.59976],[104.795185,9.241038],[105.076202,9.918491],[104.334335,10.486544],[105.199915,10.88931],[106.24967,10.961812],[105.810524,11.567615],[107.491403,12.337206],[107.614548,13.535531],[107.382727,14.202441],[107.564525,15.202173],[107.312706,15.908538],[106.556008,16.604284],[105.925762,17.485315],[105.094598,18.666975],[103.896532,19.265181],[104.183388,19.624668],[104.822574,19.886642],[104.435,20.758733],[103.203861,20.766562],[102.754896,21.675137],[102.170436,22.464753],[102.706992,22.708795],[103.504515,22.703757],[104.476858,22.81915],[105.329209,23.352063],[105.811247,22.976892],[106.725403,22.794268],[106.567273,22.218205],[107.04342,21.811899],[108.05018,21.55238]]]},"type":"Feature","id":"VNM","properties":{"name":"Vietnam","id":"VNM","centroid":[105.55,21.05]}},{"geometry":{"type":"MultiPolygon","coordinates":[[[[167.844877,-16.466333],[167.515181,-16.59785],[167.180008,-16.159995],[167.216801,-15.891846],[167.844877,-16.466333]]],[[[167.107712,-14.93392],[167.270028,-15.740021],[167.001207,-15.614602],[166.793158,-15.668811],[166.649859,-15.392704],[166.629137,-14.626497],[167.107712,-14.93392]]]]},"type":"Feature","id":"VUT","properties":{"name":"Vanuatu","id":"VUT","centroid":[168.18,-17.45]}},{"geometry":{"type":"Polygon","coordinates":[[[35.545665,32.393992],[35.545252,31.782505],[35.397561,31.489086],[34.927408,31.353435],[34.970507,31.616778],[35.225892,31.754341],[34.974641,31.866582],[35.18393,32.532511],[35.545665,32.393992]]]},"type":"Feature","id":"PSE","properties":{"name":"West Bank","id":"PSE","centroid":[35.14,31.47]}},{"geometry":{"type":"Polygon","coordinates":[[[53.108573,16.651051],[52.385206,16.382411],[52.191729,15.938433],[52.168165,15.59742],[51.172515,15.17525],[49.574576,14.708767],[48.679231,14.003202],[48.238947,13.94809],[47.938914,14.007233],[47.354454,13.59222],[46.717076,13.399699],[45.877593,13.347764],[45.62505,13.290946],[45.406459,13.026905],[45.144356,12.953938],[44.989533,12.699587],[44.494576,12.721653],[44.175113,12.58595],[43.482959,12.6368],[43.222871,13.22095],[43.251448,13.767584],[43.087944,14.06263],[42.892245,14.802249],[42.604873,15.213335],[42.805015,15.261963],[42.702438,15.718886],[42.823671,15.911742],[42.779332,16.347891],[43.218375,16.66689],[43.115798,17.08844],[43.380794,17.579987],[43.791519,17.319977],[44.062613,17.410359],[45.216651,17.433329],[45.399999,17.333335],[46.366659,17.233315],[46.749994,17.283338],[47.000005,16.949999],[47.466695,17.116682],[48.183344,18.166669],[49.116672,18.616668],[52.00001,19.000003],[52.782184,17.349742],[53.108573,16.651051]]]},"type":"Feature","id":"YEM","properties":{"name":"Yemen","id":"YEM","centroid":[44.2,15.35]}},{"geometry":{"type":"Polygon","coordinates":[[[31.521001,-29.257387],[31.325561,-29.401978],[30.901763,-29.909957],[30.622813,-30.423776],[30.055716,-31.140269],[28.925553,-32.172041],[28.219756,-32.771953],[27.464608,-33.226964],[26.419452,-33.61495],[25.909664,-33.66704],[25.780628,-33.944646],[25.172862,-33.796851],[24.677853,-33.987176],[23.594043,-33.794474],[22.988189,-33.916431],[22.574157,-33.864083],[21.542799,-34.258839],[20.689053,-34.417175],[20.071261,-34.795137],[19.616405,-34.819166],[19.193278,-34.462599],[18.855315,-34.444306],[18.424643,-33.997873],[18.377411,-34.136521],[18.244499,-33.867752],[18.25008,-33.281431],[17.92519,-32.611291],[18.24791,-32.429131],[18.221762,-31.661633],[17.566918,-30.725721],[17.064416,-29.878641],[17.062918,-29.875954],[16.344977,-28.576705],[16.824017,-28.082162],[17.218929,-28.355943],[17.387497,-28.783514],[17.836152,-28.856378],[18.464899,-29.045462],[19.002127,-28.972443],[19.894734,-28.461105],[19.895768,-24.76779],[20.165726,-24.917962],[20.758609,-25.868136],[20.66647,-26.477453],[20.889609,-26.828543],[21.605896,-26.726534],[22.105969,-26.280256],[22.579532,-25.979448],[22.824271,-25.500459],[23.312097,-25.26869],[23.73357,-25.390129],[24.211267,-25.670216],[25.025171,-25.71967],[25.664666,-25.486816],[25.765849,-25.174845],[25.941652,-24.696373],[26.485753,-24.616327],[26.786407,-24.240691],[27.11941,-23.574323],[28.017236,-22.827754],[29.432188,-22.091313],[29.839037,-22.102216],[30.322883,-22.271612],[30.659865,-22.151567],[31.191409,-22.25151],[31.670398,-23.658969],[31.930589,-24.369417],[31.752408,-25.484284],[31.837778,-25.843332],[31.333158,-25.660191],[31.04408,-25.731452],[30.949667,-26.022649],[30.676609,-26.398078],[30.685962,-26.743845],[31.282773,-27.285879],[31.86806,-27.177927],[32.071665,-26.73382],[32.83012,-26.742192],[32.580265,-27.470158],[32.462133,-28.301011],[32.203389,-28.752405],[31.521001,-29.257387]],[[28.978263,-28.955597],[28.5417,-28.647502],[28.074338,-28.851469],[27.532511,-29.242711],[26.999262,-29.875954],[27.749397,-30.645106],[28.107205,-30.545732],[28.291069,-30.226217],[28.8484,-30.070051],[29.018415,-29.743766],[29.325166,-29.257387],[28.978263,-28.955597]]]},"type":"Feature","id":"ZAF","properties":{"name":"South Africa","id":"ZAF","centroid":[28.11,-25.44]}},{"geometry":{"type":"Polygon","coordinates":[[[32.759375,-9.230599],[33.231388,-9.676722],[33.485688,-10.525559],[33.31531,-10.79655],[33.114289,-11.607198],[33.306422,-12.435778],[32.991764,-12.783871],[32.688165,-13.712858],[33.214025,-13.97186],[30.179481,-14.796099],[30.274256,-15.507787],[29.516834,-15.644678],[28.947463,-16.043051],[28.825869,-16.389749],[28.467906,-16.4684],[27.598243,-17.290831],[27.044427,-17.938026],[26.706773,-17.961229],[26.381935,-17.846042],[25.264226,-17.73654],[25.084443,-17.661816],[25.07695,-17.578823],[24.682349,-17.353411],[24.033862,-17.295843],[23.215048,-17.523116],[22.562478,-16.898451],[21.887843,-16.08031],[21.933886,-12.898437],[24.016137,-12.911046],[23.930922,-12.565848],[24.079905,-12.191297],[23.904154,-11.722282],[24.017894,-11.237298],[23.912215,-10.926826],[24.257155,-10.951993],[24.314516,-11.262826],[24.78317,-11.238694],[25.418118,-11.330936],[25.75231,-11.784965],[26.553088,-11.92444],[27.16442,-11.608748],[27.388799,-12.132747],[28.155109,-12.272481],[28.523562,-12.698604],[28.934286,-13.248958],[29.699614,-13.257227],[29.616001,-12.178895],[29.341548,-12.360744],[28.642417,-11.971569],[28.372253,-11.793647],[28.49607,-10.789884],[28.673682,-9.605925],[28.449871,-9.164918],[28.734867,-8.526559],[29.002912,-8.407032],[30.346086,-8.238257],[30.740015,-8.340007],[31.157751,-8.594579],[31.556348,-8.762049],[32.191865,-8.930359],[32.759375,-9.230599]]]},"type":"Feature","id":"ZMB","properties":{"name":"Zambia","id":"ZMB","centroid":[28.16,-15.28]}},{"geometry":{"type":"Polygon","coordinates":[[[103.9697265625,1.331445312499994],[103.65019531249999,1.325537109374991],[103.81796875000003,1.447070312499989],[103.9697265625,1.331445312499994]]]},"type":"Feature","id":"SGP","properties":{"childNum":1,"name":"Singapore","id":"SGP","centroid":[103.51,1.18]}},{"geometry":{"type":"Polygon","coordinates":[[[31.191409,-22.25151],[30.659865,-22.151567],[30.322883,-22.271612],[29.839037,-22.102216],[29.432188,-22.091313],[28.794656,-21.639454],[28.02137,-21.485975],[27.727228,-20.851802],[27.724747,-20.499059],[27.296505,-20.39152],[26.164791,-19.293086],[25.850391,-18.714413],[25.649163,-18.536026],[25.264226,-17.73654],[26.381935,-17.846042],[26.706773,-17.961229],[27.044427,-17.938026],[27.598243,-17.290831],[28.467906,-16.4684],[28.825869,-16.389749],[28.947463,-16.043051],[29.516834,-15.644678],[30.274256,-15.507787],[30.338955,-15.880839],[31.173064,-15.860944],[31.636498,-16.07199],[31.852041,-16.319417],[32.328239,-16.392074],[32.847639,-16.713398],[32.849861,-17.979057],[32.654886,-18.67209],[32.611994,-19.419383],[32.772708,-19.715592],[32.659743,-20.30429],[32.508693,-20.395292],[32.244988,-21.116489],[31.191409,-22.25151]]]},"type":"Feature","id":"ZWE","properties":{"name":"Zimbabwe","id":"ZWE","centroid":[31.02,-17.43]}}],"offset":{"y":90,"x":170}} \ No newline at end of file diff --git a/admin/arco-design-pro-vite/src/components/breadcrumb/index.vue b/admin/arco-design-pro-vite/src/components/breadcrumb/index.vue new file mode 100644 index 0000000..e4c9f13 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/breadcrumb/index.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/components/chart/index.vue b/admin/arco-design-pro-vite/src/components/chart/index.vue new file mode 100644 index 0000000..417c4c8 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/chart/index.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/components/footer/index.vue b/admin/arco-design-pro-vite/src/components/footer/index.vue new file mode 100644 index 0000000..9a250cc --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/footer/index.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/components/global-setting/block.vue b/admin/arco-design-pro-vite/src/components/global-setting/block.vue new file mode 100644 index 0000000..be43e8c --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/global-setting/block.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/components/global-setting/form-wrapper.vue b/admin/arco-design-pro-vite/src/components/global-setting/form-wrapper.vue new file mode 100644 index 0000000..fe3bbbe --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/global-setting/form-wrapper.vue @@ -0,0 +1,39 @@ + + + diff --git a/admin/arco-design-pro-vite/src/components/global-setting/index.vue b/admin/arco-design-pro-vite/src/components/global-setting/index.vue new file mode 100644 index 0000000..7874fbe --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/global-setting/index.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/components/index.ts b/admin/arco-design-pro-vite/src/components/index.ts new file mode 100644 index 0000000..f418972 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/index.ts @@ -0,0 +1,35 @@ +import { App } from 'vue'; +import { use } from 'echarts/core'; +import { CanvasRenderer } from 'echarts/renderers'; +import { BarChart, LineChart, PieChart, RadarChart } from 'echarts/charts'; +import { + GridComponent, + TooltipComponent, + LegendComponent, + DataZoomComponent, + GraphicComponent, +} from 'echarts/components'; +import Chart from './chart/index.vue'; +import Breadcrumb from './breadcrumb/index.vue'; + +// Manually introduce ECharts modules to reduce packing size + +use([ + CanvasRenderer, + BarChart, + LineChart, + PieChart, + RadarChart, + GridComponent, + TooltipComponent, + LegendComponent, + DataZoomComponent, + GraphicComponent, +]); + +export default { + install(Vue: App) { + Vue.component('Chart', Chart); + Vue.component('Breadcrumb', Breadcrumb); + }, +}; diff --git a/admin/arco-design-pro-vite/src/components/menu/index.vue b/admin/arco-design-pro-vite/src/components/menu/index.vue new file mode 100644 index 0000000..0702897 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/menu/index.vue @@ -0,0 +1,160 @@ + + + diff --git a/admin/arco-design-pro-vite/src/components/menu/use-menu-tree.ts b/admin/arco-design-pro-vite/src/components/menu/use-menu-tree.ts new file mode 100644 index 0000000..43620f4 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/menu/use-menu-tree.ts @@ -0,0 +1,73 @@ +import { computed } from 'vue'; +import { RouteRecordRaw, RouteRecordNormalized } from 'vue-router'; +import usePermission from '@/hooks/permission'; +import { useAppStore } from '@/store'; +import appClientMenus from '@/router/app-menus'; +import { cloneDeep } from 'lodash'; + +export default function useMenuTree() { + const permission = usePermission(); + const appStore = useAppStore(); + const appRoute = computed(() => { + if (appStore.menuFromServer) { + return appStore.appAsyncMenus; + } + return appClientMenus; + }); + const menuTree = computed(() => { + const copyRouter = cloneDeep(appRoute.value) as RouteRecordNormalized[]; + copyRouter.sort((a: RouteRecordNormalized, b: RouteRecordNormalized) => { + return (a.meta.order || 0) - (b.meta.order || 0); + }); + function travel(_routes: RouteRecordRaw[], layer: number) { + if (!_routes) return null; + + const collector: any = _routes.map((element) => { + // no access + if (!permission.accessRouter(element)) { + return null; + } + + if (element.meta?.hideInMenu) { + return null; + } + + // leaf node + if (element.meta?.hideChildrenInMenu || !element.children) { + element.children = []; + return element; + } + + // route filter hideInMenu true + element.children = element.children.filter( + (x) => x.meta?.hideInMenu !== true + ); + + // Associated child node + const subItem = travel(element.children, layer + 1); + + if (subItem.length) { + element.children = subItem; + return element; + } + // the else logic + if (layer > 1) { + element.children = subItem; + return element; + } + + if (element.meta?.hideInMenu === false) { + return element; + } + + return null; + }); + return collector.filter(Boolean); + } + return travel(copyRouter, 0); + }); + + return { + menuTree, + }; +} diff --git a/admin/arco-design-pro-vite/src/components/message-box/index.vue b/admin/arco-design-pro-vite/src/components/message-box/index.vue new file mode 100644 index 0000000..c0a24f7 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/message-box/index.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/components/message-box/list.vue b/admin/arco-design-pro-vite/src/components/message-box/list.vue new file mode 100644 index 0000000..b0c6488 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/message-box/list.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/components/message-box/locale/en-US.ts b/admin/arco-design-pro-vite/src/components/message-box/locale/en-US.ts new file mode 100644 index 0000000..8a0f68e --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/message-box/locale/en-US.ts @@ -0,0 +1,13 @@ +export default { + 'messageBox.tab.title.message': 'Message', + 'messageBox.tab.title.notice': 'Notice', + 'messageBox.tab.title.todo': 'Todo', + 'messageBox.tab.button': 'empty', + 'messageBox.allRead': 'All Read', + 'messageBox.viewMore': 'View More', + 'messageBox.noContent': 'No Content', + 'messageBox.switchRoles': 'Switch Roles', + 'messageBox.userCenter': 'User Center', + 'messageBox.userSettings': 'User Settings', + 'messageBox.logout': 'Logout', +}; diff --git a/admin/arco-design-pro-vite/src/components/message-box/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/components/message-box/locale/zh-CN.ts new file mode 100644 index 0000000..cf3e630 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/message-box/locale/zh-CN.ts @@ -0,0 +1,13 @@ +export default { + 'messageBox.tab.title.message': '消息', + 'messageBox.tab.title.notice': '通知', + 'messageBox.tab.title.todo': '待办', + 'messageBox.tab.button': '清空', + 'messageBox.allRead': '全部已读', + 'messageBox.viewMore': '查看更多', + 'messageBox.noContent': '暂无内容', + 'messageBox.switchRoles': '切换角色', + 'messageBox.userCenter': '用户中心', + 'messageBox.userSettings': '用户设置', + 'messageBox.logout': '登出登录', +}; diff --git a/admin/arco-design-pro-vite/src/components/navbar/index.vue b/admin/arco-design-pro-vite/src/components/navbar/index.vue new file mode 100644 index 0000000..2a0ca95 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/navbar/index.vue @@ -0,0 +1,323 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/components/tab-bar/index.vue b/admin/arco-design-pro-vite/src/components/tab-bar/index.vue new file mode 100644 index 0000000..609ba2a --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/tab-bar/index.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/components/tab-bar/readme.md b/admin/arco-design-pro-vite/src/components/tab-bar/readme.md new file mode 100644 index 0000000..cea5c93 --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/tab-bar/readme.md @@ -0,0 +1,12 @@ +## 组件说明 + +该组件非官方最终设计规范,以单独组件存在。 + +同时仅仅提供最基本的功能,后续进行优化及更改。 + + +## Component description + +The component unofficial final design specification exists as a separate component. + +At the same time, only the most basic functions are provided, and subsequent optimizations and changes will be made. \ No newline at end of file diff --git a/admin/arco-design-pro-vite/src/components/tab-bar/tab-item.vue b/admin/arco-design-pro-vite/src/components/tab-bar/tab-item.vue new file mode 100644 index 0000000..bc2014d --- /dev/null +++ b/admin/arco-design-pro-vite/src/components/tab-bar/tab-item.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/config/settings.json b/admin/arco-design-pro-vite/src/config/settings.json new file mode 100644 index 0000000..ef20b23 --- /dev/null +++ b/admin/arco-design-pro-vite/src/config/settings.json @@ -0,0 +1,17 @@ +{ + "theme": "light", + "colorWeak": false, + "navbar": true, + "menu": true, + "topMenu": false, + "hideMenu": false, + "menuCollapse": false, + "footer": true, + "themeColor": "#165DFF", + "menuWidth": 220, + "globalSettings": false, + "device": "desktop", + "tabBar": false, + "menuFromServer": false, + "serverMenu": [] +} diff --git a/admin/arco-design-pro-vite/src/directive/index.ts b/admin/arco-design-pro-vite/src/directive/index.ts new file mode 100644 index 0000000..85c567f --- /dev/null +++ b/admin/arco-design-pro-vite/src/directive/index.ts @@ -0,0 +1,8 @@ +import { App } from 'vue'; +import permission from './permission'; + +export default { + install(Vue: App) { + Vue.directive('permission', permission); + }, +}; diff --git a/admin/arco-design-pro-vite/src/directive/permission/index.ts b/admin/arco-design-pro-vite/src/directive/permission/index.ts new file mode 100644 index 0000000..4968e98 --- /dev/null +++ b/admin/arco-design-pro-vite/src/directive/permission/index.ts @@ -0,0 +1,30 @@ +import { DirectiveBinding } from 'vue'; +import { useUserStore } from '@/store'; + +function checkPermission(el: HTMLElement, binding: DirectiveBinding) { + const { value } = binding; + const userStore = useUserStore(); + const { role } = userStore; + + if (Array.isArray(value)) { + if (value.length > 0) { + const permissionValues = value; + + const hasPermission = permissionValues.includes(role); + if (!hasPermission && el.parentNode) { + el.parentNode.removeChild(el); + } + } + } else { + throw new Error(`need roles! Like v-permission="['admin','user']"`); + } +} + +export default { + mounted(el: HTMLElement, binding: DirectiveBinding) { + checkPermission(el, binding); + }, + updated(el: HTMLElement, binding: DirectiveBinding) { + checkPermission(el, binding); + }, +}; diff --git a/admin/arco-design-pro-vite/src/env.d.ts b/admin/arco-design-pro-vite/src/env.d.ts new file mode 100644 index 0000000..6b7fc7d --- /dev/null +++ b/admin/arco-design-pro-vite/src/env.d.ts @@ -0,0 +1,11 @@ +/// + +declare module '*.vue' { + import { DefineComponent } from 'vue'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any>; + export default component; +} +interface ImportMetaEnv { + readonly VITE_API_BASE_URL: string; +} diff --git a/admin/arco-design-pro-vite/src/hooks/chart-option.ts b/admin/arco-design-pro-vite/src/hooks/chart-option.ts new file mode 100644 index 0000000..13c3926 --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/chart-option.ts @@ -0,0 +1,27 @@ +import { computed } from 'vue'; +import { EChartsOption } from 'echarts'; +import { useAppStore } from '@/store'; + +// for code hints +// import { SeriesOption } from 'echarts'; +// Because there are so many configuration items, this provides a relatively convenient code hint. +// When using vue, pay attention to the reactive issues. It is necessary to ensure that corresponding functions can be triggered, TypeScript does not report errors, and code writing is convenient. +interface optionsFn { + (isDark: boolean): EChartsOption; +} + +export default function useChartOption(sourceOption: optionsFn) { + const appStore = useAppStore(); + const isDark = computed(() => { + return appStore.theme === 'dark'; + }); + // echarts support https://echarts.apache.org/zh/theme-builder.html + // It's not used here + // TODO echarts themes + const chartOption = computed(() => { + return sourceOption(isDark.value); + }); + return { + chartOption, + }; +} diff --git a/admin/arco-design-pro-vite/src/hooks/loading.ts b/admin/arco-design-pro-vite/src/hooks/loading.ts new file mode 100644 index 0000000..a6f2768 --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/loading.ts @@ -0,0 +1,16 @@ +import { ref } from 'vue'; + +export default function useLoading(initValue = false) { + const loading = ref(initValue); + const setLoading = (value: boolean) => { + loading.value = value; + }; + const toggle = () => { + loading.value = !loading.value; + }; + return { + loading, + setLoading, + toggle, + }; +} diff --git a/admin/arco-design-pro-vite/src/hooks/locale.ts b/admin/arco-design-pro-vite/src/hooks/locale.ts new file mode 100644 index 0000000..afe4bf7 --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/locale.ts @@ -0,0 +1,22 @@ +import { computed } from 'vue'; +import { useI18n } from 'vue-i18n'; +import { Message } from '@arco-design/web-vue'; + +export default function useLocale() { + const i18 = useI18n(); + const currentLocale = computed(() => { + return i18.locale.value; + }); + const changeLocale = (value: string) => { + if (i18.locale.value === value) { + return; + } + i18.locale.value = value; + localStorage.setItem('arco-locale', value); + Message.success(i18.t('navbar.action.locale')); + }; + return { + currentLocale, + changeLocale, + }; +} diff --git a/admin/arco-design-pro-vite/src/hooks/permission.ts b/admin/arco-design-pro-vite/src/hooks/permission.ts new file mode 100644 index 0000000..de8cdc4 --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/permission.ts @@ -0,0 +1,33 @@ +import { RouteLocationNormalized, RouteRecordRaw } from 'vue-router'; +import { useUserStore } from '@/store'; + +export default function usePermission() { + const userStore = useUserStore(); + return { + accessRouter(route: RouteLocationNormalized | RouteRecordRaw) { + return ( + !route.meta?.requiresAuth || + !route.meta?.roles || + route.meta?.roles?.includes('*') || + route.meta?.roles?.includes(userStore.role) + ); + }, + findFirstPermissionRoute(_routers: any, role = 'admin') { + const cloneRouters = [..._routers]; + while (cloneRouters.length) { + const firstElement = cloneRouters.shift(); + if ( + firstElement?.meta?.roles?.find((el: string[]) => { + return el.includes('*') || el.includes(role); + }) + ) + return { name: firstElement.name }; + if (firstElement?.children) { + cloneRouters.push(...firstElement.children); + } + } + return null; + }, + // You can add any rules you want + }; +} diff --git a/admin/arco-design-pro-vite/src/hooks/request.ts b/admin/arco-design-pro-vite/src/hooks/request.ts new file mode 100644 index 0000000..7b85336 --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/request.ts @@ -0,0 +1,26 @@ +import { ref, UnwrapRef } from 'vue'; +import { AxiosResponse } from 'axios'; +import { HttpResponse } from '@/api/interceptor'; +import useLoading from './loading'; + +// use to fetch list +// Don't use async function. It doesn't work in async function. +// Use the bind function to add parameters +// example: useRequest(api.bind(null, {})) + +export default function useRequest( + api: () => Promise>, + defaultValue = [] as unknown as T, + isLoading = true +) { + const { loading, setLoading } = useLoading(isLoading); + const response = ref(defaultValue); + api() + .then((res) => { + response.value = res.data as unknown as UnwrapRef; + }) + .finally(() => { + setLoading(false); + }); + return { loading, response }; +} diff --git a/admin/arco-design-pro-vite/src/hooks/responsive.ts b/admin/arco-design-pro-vite/src/hooks/responsive.ts new file mode 100644 index 0000000..eefee8e --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/responsive.ts @@ -0,0 +1,32 @@ +import { onMounted, onBeforeMount, onBeforeUnmount } from 'vue'; +import { useDebounceFn } from '@vueuse/core'; +import { useAppStore } from '@/store'; +import { addEventListen, removeEventListen } from '@/utils/event'; + +const WIDTH = 992; // https://arco.design/vue/component/grid#responsivevalue + +function queryDevice() { + const rect = document.body.getBoundingClientRect(); + return rect.width - 1 < WIDTH; +} + +export default function useResponsive(immediate?: boolean) { + const appStore = useAppStore(); + function resizeHandler() { + if (!document.hidden) { + const isMobile = queryDevice(); + appStore.toggleDevice(isMobile ? 'mobile' : 'desktop'); + appStore.toggleMenu(isMobile); + } + } + const debounceFn = useDebounceFn(resizeHandler, 100); + onMounted(() => { + if (immediate) debounceFn(); + }); + onBeforeMount(() => { + addEventListen(window, 'resize', debounceFn); + }); + onBeforeUnmount(() => { + removeEventListen(window, 'resize', debounceFn); + }); +} diff --git a/admin/arco-design-pro-vite/src/hooks/themes.ts b/admin/arco-design-pro-vite/src/hooks/themes.ts new file mode 100644 index 0000000..7ce85b7 --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/themes.ts @@ -0,0 +1,12 @@ +import { computed } from 'vue'; +import { useAppStore } from '@/store'; + +export default function useThemes() { + const appStore = useAppStore(); + const isDark = computed(() => { + return appStore.theme === 'dark'; + }); + return { + isDark, + }; +} diff --git a/admin/arco-design-pro-vite/src/hooks/user.ts b/admin/arco-design-pro-vite/src/hooks/user.ts new file mode 100644 index 0000000..107358c --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/user.ts @@ -0,0 +1,24 @@ +import { useRouter } from 'vue-router'; +import { Message } from '@arco-design/web-vue'; + +import { useUserStore } from '@/store'; + +export default function useUser() { + const router = useRouter(); + const userStore = useUserStore(); + const logout = async (logoutTo?: string) => { + await userStore.logout(); + const currentRoute = router.currentRoute.value; + Message.success('登出成功'); + router.push({ + name: logoutTo && typeof logoutTo === 'string' ? logoutTo : 'login', + query: { + ...router.currentRoute.value.query, + redirect: currentRoute.name as string, + }, + }); + }; + return { + logout, + }; +} diff --git a/admin/arco-design-pro-vite/src/hooks/visible.ts b/admin/arco-design-pro-vite/src/hooks/visible.ts new file mode 100644 index 0000000..211f90d --- /dev/null +++ b/admin/arco-design-pro-vite/src/hooks/visible.ts @@ -0,0 +1,16 @@ +import { ref } from 'vue'; + +export default function useVisible(initValue = false) { + const visible = ref(initValue); + const setVisible = (value: boolean) => { + visible.value = value; + }; + const toggle = () => { + visible.value = !visible.value; + }; + return { + visible, + setVisible, + toggle, + }; +} diff --git a/admin/arco-design-pro-vite/src/layout/default-layout.vue b/admin/arco-design-pro-vite/src/layout/default-layout.vue new file mode 100644 index 0000000..6e57067 --- /dev/null +++ b/admin/arco-design-pro-vite/src/layout/default-layout.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/layout/page-layout.vue b/admin/arco-design-pro-vite/src/layout/page-layout.vue new file mode 100644 index 0000000..5f60b36 --- /dev/null +++ b/admin/arco-design-pro-vite/src/layout/page-layout.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/locale/en-US.ts b/admin/arco-design-pro-vite/src/locale/en-US.ts new file mode 100644 index 0000000..c514d77 --- /dev/null +++ b/admin/arco-design-pro-vite/src/locale/en-US.ts @@ -0,0 +1,87 @@ +import localeMessageBox from '@/components/message-box/locale/en-US'; +import localeLogin from '@/views/login/locale/en-US'; + +import localeWorkplace from '@/views/dashboard/workplace/locale/en-US'; +/** simple */ +import localeMonitor from '@/views/dashboard/monitor/locale/en-US'; + +import localeSearchTable from '@/views/list/search-table/locale/en-US'; +import localeCardList from '@/views/list/card/locale/en-US'; + +import localeStepForm from '@/views/form/step/locale/en-US'; +import localeGroupForm from '@/views/form/group/locale/en-US'; + +import localeBasicProfile from '@/views/profile/basic/locale/en-US'; + +import localeDataAnalysis from '@/views/visualization/data-analysis/locale/en-US'; +import localeMultiDAnalysis from '@/views/visualization/multi-dimension-data-analysis/locale/en-US'; + +import localeSuccess from '@/views/result/success/locale/en-US'; +import localeError from '@/views/result/error/locale/en-US'; + +import locale403 from '@/views/exception/403/locale/en-US'; +import locale404 from '@/views/exception/404/locale/en-US'; +import locale500 from '@/views/exception/500/locale/en-US'; + +import localeUserInfo from '@/views/user/info/locale/en-US'; +import localeUserSetting from '@/views/user/setting/locale/en-US'; +/** simple end */ +import localeSettings from './en-US/settings'; + +export default { + 'menu.dashboard': 'Dashboard', + 'menu.activity': 'Activity Management', + 'menu.activity.list': 'Activity List', + 'menu.activity.verify': '4-Digit Code Board', + 'menu.companion': 'Companion Management', + 'menu.companion.list': 'Companion Roster', + 'menu.companion.audit': 'Qualification Audit', + 'menu.order': 'Order & Fulfillment', + 'menu.order.list': 'Order Records', + 'menu.order.arbitration': 'Dispute Arbitration', + 'menu.finance': 'Finance & Referral', + 'menu.finance.records': 'Transaction Ledger', + 'menu.finance.withdraw': 'Withdrawal Audit', + 'menu.finance.config': 'Rate & Commission', + 'menu.safety': 'Safety & Risk Control', + 'menu.safety.places': 'Approved Venues', + 'menu.safety.auditLog': 'Risk Intercept Log', + 'menu.server.dashboard': 'Dashboard-Server', + 'menu.server.workplace': 'Workplace-Server', + 'menu.server.monitor': 'Monitor-Server', + 'menu.list': 'List', + 'menu.result': 'Result', + 'menu.exception': 'Exception', + 'menu.form': 'Form', + 'menu.profile': 'Profile', + 'menu.visualization': 'Data Visualization', + 'menu.user': 'User Management', + 'menu.user.list': 'User List', + 'menu.user.info': 'Admin Info', + 'menu.user.setting': 'Admin Settings', + 'menu.arcoWebsite': 'Arco Design', + 'menu.faq': 'FAQ', + 'navbar.docs': 'Docs', + 'navbar.action.locale': 'Switch to English', + ...localeSettings, + ...localeMessageBox, + ...localeLogin, + ...localeWorkplace, + /** simple */ + ...localeMonitor, + ...localeSearchTable, + ...localeCardList, + ...localeStepForm, + ...localeGroupForm, + ...localeBasicProfile, + ...localeDataAnalysis, + ...localeMultiDAnalysis, + ...localeSuccess, + ...localeError, + ...locale403, + ...locale404, + ...locale500, + ...localeUserInfo, + ...localeUserSetting, + /** simple end */ +}; diff --git a/admin/arco-design-pro-vite/src/locale/en-US/settings.ts b/admin/arco-design-pro-vite/src/locale/en-US/settings.ts new file mode 100644 index 0000000..f929e50 --- /dev/null +++ b/admin/arco-design-pro-vite/src/locale/en-US/settings.ts @@ -0,0 +1,29 @@ +export default { + 'settings.title': 'Settings', + 'settings.themeColor': 'Theme Color', + 'settings.content': 'Content Setting', + 'settings.search': 'Search', + 'settings.language': 'Language', + 'settings.navbar': 'Navbar', + 'settings.menuWidth': 'Menu Width (px)', + 'settings.navbar.theme.toLight': 'Click to use light mode', + 'settings.navbar.theme.toDark': 'Click to use dark mode', + 'settings.navbar.screen.toFull': 'Click to switch to full screen mode', + 'settings.navbar.screen.toExit': 'Click to exit the full screen mode', + 'settings.navbar.alerts': 'alerts', + 'settings.menu': 'Menu', + 'settings.topMenu': 'Top Menu', + 'settings.tabBar': 'Tab Bar', + 'settings.footer': 'Footer', + 'settings.otherSettings': 'Other Settings', + 'settings.colorWeak': 'Color Weak', + 'settings.alertContent': + 'After the configuration is only temporarily effective, if you want to really affect the project, click the "Copy Settings" button below and replace the configuration in settings.json.', + 'settings.copySettings': 'Copy Settings', + 'settings.copySettings.message': + 'Copy succeeded, please paste to file src/settings.json.', + 'settings.close': 'Close', + 'settings.color.tooltip': + '10 gradient colors generated according to the theme color', + 'settings.menuFromServer': 'Menu From Server', +}; diff --git a/admin/arco-design-pro-vite/src/locale/index.ts b/admin/arco-design-pro-vite/src/locale/index.ts new file mode 100644 index 0000000..68349ce --- /dev/null +++ b/admin/arco-design-pro-vite/src/locale/index.ts @@ -0,0 +1,22 @@ +import { createI18n } from 'vue-i18n'; +import en from './en-US'; +import cn from './zh-CN'; + +export const LOCALE_OPTIONS = [ + { label: '中文', value: 'zh-CN' }, + { label: 'English', value: 'en-US' }, +]; +const defaultLocale = localStorage.getItem('arco-locale') || 'zh-CN'; + +const i18n = createI18n({ + locale: defaultLocale, + fallbackLocale: 'en-US', + legacy: false, + allowComposition: true, + messages: { + 'en-US': en, + 'zh-CN': cn, + }, +}); + +export default i18n; diff --git a/admin/arco-design-pro-vite/src/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/locale/zh-CN.ts new file mode 100644 index 0000000..1953827 --- /dev/null +++ b/admin/arco-design-pro-vite/src/locale/zh-CN.ts @@ -0,0 +1,87 @@ +import localeMessageBox from '@/components/message-box/locale/zh-CN'; +import localeLogin from '@/views/login/locale/zh-CN'; + +import localeWorkplace from '@/views/dashboard/workplace/locale/zh-CN'; +/** simple */ +import localeMonitor from '@/views/dashboard/monitor/locale/zh-CN'; + +import localeSearchTable from '@/views/list/search-table/locale/zh-CN'; +import localeCardList from '@/views/list/card/locale/zh-CN'; + +import localeStepForm from '@/views/form/step/locale/zh-CN'; +import localeGroupForm from '@/views/form/group/locale/zh-CN'; + +import localeBasicProfile from '@/views/profile/basic/locale/zh-CN'; + +import localeDataAnalysis from '@/views/visualization/data-analysis/locale/zh-CN'; +import localeMultiDAnalysis from '@/views/visualization/multi-dimension-data-analysis/locale/zh-CN'; + +import localeSuccess from '@/views/result/success/locale/zh-CN'; +import localeError from '@/views/result/error/locale/zh-CN'; + +import locale403 from '@/views/exception/403/locale/zh-CN'; +import locale404 from '@/views/exception/404/locale/zh-CN'; +import locale500 from '@/views/exception/500/locale/zh-CN'; + +import localeUserInfo from '@/views/user/info/locale/zh-CN'; +import localeUserSetting from '@/views/user/setting/locale/zh-CN'; +/** simple end */ +import localeSettings from './zh-CN/settings'; + +export default { + 'menu.dashboard': '运营大盘', + 'menu.activity': '活动与组局监管', + 'menu.activity.list': '同城组局列表', + 'menu.activity.verify': '4位核销码看板', + 'menu.companion': '陪玩与大神管理', + 'menu.companion.list': '大神档案库', + 'menu.companion.audit': '入驻资质审核', + 'menu.order': '订单与履约中心', + 'menu.order.list': '全量订单流转', + 'menu.order.arbitration': '争议仲裁介入', + 'menu.finance': '财务与分销管理', + 'menu.finance.records': '资金交易流水', + 'menu.finance.withdraw': '提现申请审核', + 'menu.finance.config': '分销与抽成配置', + 'menu.safety': '履约安全与风控', + 'menu.safety.places': '线下商圈场所库', + 'menu.safety.auditLog': '场所与内容拦截日志', + 'menu.server.dashboard': '仪表盘-服务端', + 'menu.server.workplace': '工作台-服务端', + 'menu.server.monitor': '实时监控-服务端', + 'menu.list': '列表页', + 'menu.result': '结果页', + 'menu.exception': '异常页', + 'menu.form': '表单页', + 'menu.profile': '详情页', + 'menu.visualization': '数据可视化', + 'menu.user': '用户与个人中心', + 'menu.user.list': '全平台用户列表', + 'menu.user.info': '管理员资料', + 'menu.user.setting': '账号偏好设置', + 'menu.arcoWebsite': 'Arco Design', + 'menu.faq': '常见问题', + 'navbar.docs': '文档中心', + 'navbar.action.locale': '切换为中文', + ...localeSettings, + ...localeMessageBox, + ...localeLogin, + ...localeWorkplace, + /** simple */ + ...localeMonitor, + ...localeSearchTable, + ...localeCardList, + ...localeStepForm, + ...localeGroupForm, + ...localeBasicProfile, + ...localeDataAnalysis, + ...localeMultiDAnalysis, + ...localeSuccess, + ...localeError, + ...locale403, + ...locale404, + ...locale500, + ...localeUserInfo, + ...localeUserSetting, + /** simple end */ +}; diff --git a/admin/arco-design-pro-vite/src/locale/zh-CN/settings.ts b/admin/arco-design-pro-vite/src/locale/zh-CN/settings.ts new file mode 100644 index 0000000..e42021d --- /dev/null +++ b/admin/arco-design-pro-vite/src/locale/zh-CN/settings.ts @@ -0,0 +1,29 @@ +export default { + 'settings.title': '页面配置', + 'settings.themeColor': '主题色', + 'settings.content': '内容区域', + 'settings.search': '搜索', + 'settings.language': '语言', + 'settings.navbar': '导航栏', + 'settings.menuWidth': '菜单宽度 (px)', + 'settings.navbar.theme.toLight': '点击切换为亮色模式', + 'settings.navbar.theme.toDark': '点击切换为暗黑模式', + 'settings.navbar.screen.toFull': '点击切换全屏模式', + 'settings.navbar.screen.toExit': '点击退出全屏模式', + 'settings.navbar.alerts': '消息通知', + 'settings.menu': '菜单栏', + 'settings.topMenu': '顶部菜单栏', + 'settings.tabBar': '多页签', + 'settings.footer': '底部', + 'settings.otherSettings': '其他设置', + 'settings.colorWeak': '色弱模式', + 'settings.alertContent': + '配置之后仅是临时生效,要想真正作用于项目,点击下方的 "复制配置" 按钮,将配置替换到 settings.json 中即可。', + 'settings.copySettings': '复制配置', + 'settings.copySettings.message': + '复制成功,请粘贴到 src/settings.json 文件中', + 'settings.close': '关闭', + 'settings.color.tooltip': + '根据主题颜色生成的 10 个梯度色(将配置复制到项目中,主题色才能对亮色 / 暗黑模式同时生效)', + 'settings.menuFromServer': '菜单来源于后台', +}; diff --git a/admin/arco-design-pro-vite/src/main.ts b/admin/arco-design-pro-vite/src/main.ts new file mode 100644 index 0000000..9b34d2e --- /dev/null +++ b/admin/arco-design-pro-vite/src/main.ts @@ -0,0 +1,28 @@ +import { createApp } from 'vue'; +import ArcoVue from '@arco-design/web-vue'; +import ArcoVueIcon from '@arco-design/web-vue/es/icon'; +import globalComponents from '@/components'; +import router from './router'; +import store from './store'; +import i18n from './locale'; +import directive from './directive'; +import './mock'; +import App from './App.vue'; +// Styles are imported via arco-plugin. See config/plugin/arcoStyleImport.ts in the directory for details +// 样式通过 arco-plugin 插件导入。详见目录文件 config/plugin/arcoStyleImport.ts +// https://arco.design/docs/designlab/use-theme-package +import '@/assets/style/global.less'; +import '@/api/interceptor'; + +const app = createApp(App); + +app.use(ArcoVue, {}); +app.use(ArcoVueIcon); + +app.use(router); +app.use(store); +app.use(i18n); +app.use(globalComponents); +app.use(directive); + +app.mount('#app'); diff --git a/admin/arco-design-pro-vite/src/mock/index.ts b/admin/arco-design-pro-vite/src/mock/index.ts new file mode 100644 index 0000000..cc1b572 --- /dev/null +++ b/admin/arco-design-pro-vite/src/mock/index.ts @@ -0,0 +1,26 @@ +import Mock from 'mockjs'; + +import './user'; +import './message-box'; + +import '@/views/dashboard/workplace/mock'; +/** simple */ +import '@/views/dashboard/monitor/mock'; + +import '@/views/list/card/mock'; +import '@/views/list/search-table/mock'; + +import '@/views/form/step/mock'; + +import '@/views/profile/basic/mock'; + +import '@/views/visualization/data-analysis/mock'; +import '@/views/visualization/multi-dimension-data-analysis/mock'; + +import '@/views/user/info/mock'; +import '@/views/user/setting/mock'; +/** simple end */ + +Mock.setup({ + timeout: '600-1000', +}); diff --git a/admin/arco-design-pro-vite/src/mock/message-box.ts b/admin/arco-design-pro-vite/src/mock/message-box.ts new file mode 100644 index 0000000..6449e68 --- /dev/null +++ b/admin/arco-design-pro-vite/src/mock/message-box.ts @@ -0,0 +1,85 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +const haveReadIds: number[] = []; +const getMessageList = () => { + return [ + { + id: 1, + type: 'message', + title: '郑曦月', + subTitle: '的私信', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/8361eeb82904210b4f55fab888fe8416.png~tplv-uwbnlip3yd-webp.webp', + content: '审批请求已发送,请查收', + time: '今天 12:30:01', + }, + { + id: 2, + type: 'message', + title: '宁波', + subTitle: '的回复', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp', + content: '此处 bug 已经修复', + time: '今天 12:30:01', + }, + { + id: 3, + type: 'message', + title: '宁波', + subTitle: '的回复', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp', + content: '此处 bug 已经修复', + time: '今天 12:20:01', + }, + { + id: 4, + type: 'notice', + title: '续费通知', + subTitle: '', + avatar: '', + content: '您的产品使用期限即将截止,如需继续使用产品请前往购…', + time: '今天 12:20:01', + messageType: 3, + }, + { + id: 5, + type: 'notice', + title: '规则开通成功', + subTitle: '', + avatar: '', + content: '内容屏蔽规则于 2021-12-01 开通成功并生效', + time: '今天 12:20:01', + messageType: 1, + }, + { + id: 6, + type: 'todo', + title: '质检队列变更', + subTitle: '', + avatar: '', + content: '内容质检队列于 2021-12-01 19:50:23 进行变更,请重新…', + time: '今天 12:20:01', + messageType: 0, + }, + ].map((item) => ({ + ...item, + status: haveReadIds.indexOf(item.id) === -1 ? 0 : 1, + })); +}; + +setupMock({ + setup: () => { + Mock.mock(new RegExp('/api/message/list'), () => { + return successResponseWrap(getMessageList()); + }); + + Mock.mock(new RegExp('/api/message/read'), (params: { body: string }) => { + const { ids } = JSON.parse(params.body); + haveReadIds.push(...(ids || [])); + return successResponseWrap(true); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/mock/user.ts b/admin/arco-design-pro-vite/src/mock/user.ts new file mode 100644 index 0000000..a628017 --- /dev/null +++ b/admin/arco-design-pro-vite/src/mock/user.ts @@ -0,0 +1,105 @@ +import Mock from 'mockjs'; +import setupMock, { + successResponseWrap, + failResponseWrap, +} from '@/utils/setup-mock'; + +import { MockParams } from '@/types/mock'; +import { isLogin } from '@/utils/auth'; + +setupMock({ + setup() { + // Mock.XHR.prototype.withCredentials = true; + + // 用户信息 + Mock.mock(new RegExp('/api/user/info'), () => { + if (isLogin()) { + const role = window.localStorage.getItem('userRole') || 'admin'; + return successResponseWrap({ + name: 'admin', + avatar: + 'data:image/svg+xml;utf8,AD', + email: 'wangliqun@email.com', + job: 'frontend', + jobName: '前端艺术家', + organization: 'Frontend', + organizationName: '前端', + location: 'beijing', + locationName: '北京', + introduction: '人潇洒,性温存', + personalWebsite: 'https://www.arco.design', + phone: '150****0000', + registrationDate: '2013-05-10 12:10:00', + accountId: '15012312300', + certification: 1, + role, + }); + } + return failResponseWrap(null, '未登录', 50008); + }); + + // 登录 + Mock.mock(new RegExp('/api/user/login'), (params: MockParams) => { + const { username, password } = JSON.parse(params.body); + if (!username) { + return failResponseWrap(null, '用户名不能为空', 50000); + } + if (!password) { + return failResponseWrap(null, '密码不能为空', 50000); + } + if (username === 'admin' && password === 'admin') { + window.localStorage.setItem('userRole', 'admin'); + return successResponseWrap({ + token: '12345', + }); + } + if (username === 'user' && password === 'user') { + window.localStorage.setItem('userRole', 'user'); + return successResponseWrap({ + token: '54321', + }); + } + return failResponseWrap(null, '账号或者密码错误', 50000); + }); + + // 登出 + Mock.mock(new RegExp('/api/user/logout'), () => { + return successResponseWrap(null); + }); + + // 用户的服务端菜单 + Mock.mock(new RegExp('/api/user/menu'), () => { + const menuList = [ + { + path: '/dashboard', + name: 'dashboard', + meta: { + locale: 'menu.server.dashboard', + requiresAuth: true, + icon: 'icon-dashboard', + order: 1, + }, + children: [ + { + path: 'workplace', + name: 'Workplace', + meta: { + locale: 'menu.server.workplace', + requiresAuth: true, + }, + }, + { + path: 'https://arco.design', + name: 'arcoWebsite', + meta: { + locale: 'menu.arcoWebsite', + requiresAuth: true, + }, + }, + ], + }, + ]; + return successResponseWrap(menuList); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/router/app-menus/index.ts b/admin/arco-design-pro-vite/src/router/app-menus/index.ts new file mode 100644 index 0000000..2136c96 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/app-menus/index.ts @@ -0,0 +1,16 @@ +import { appRoutes, appExternalRoutes } from '../routes'; + +const mixinRoutes = [...appRoutes, ...appExternalRoutes]; + +const appClientMenus = mixinRoutes.map((el) => { + const { name, path, meta, redirect, children } = el; + return { + name, + path, + meta, + redirect, + children, + }; +}); + +export default appClientMenus; diff --git a/admin/arco-design-pro-vite/src/router/constants.ts b/admin/arco-design-pro-vite/src/router/constants.ts new file mode 100644 index 0000000..7daef7f --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/constants.ts @@ -0,0 +1,18 @@ +export const WHITE_LIST = [ + { name: 'notFound', children: [] }, + { name: 'login', children: [] }, +]; + +export const NOT_FOUND = { + name: 'notFound', +}; + +export const REDIRECT_ROUTE_NAME = 'Redirect'; + +export const DEFAULT_ROUTE_NAME = 'Workplace'; + +export const DEFAULT_ROUTE = { + title: 'menu.dashboard.workplace', + name: DEFAULT_ROUTE_NAME, + fullPath: '/dashboard/workplace', +}; diff --git a/admin/arco-design-pro-vite/src/router/guard/index.ts b/admin/arco-design-pro-vite/src/router/guard/index.ts new file mode 100644 index 0000000..bedc28d --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/guard/index.ts @@ -0,0 +1,17 @@ +import type { Router } from 'vue-router'; +import { setRouteEmitter } from '@/utils/route-listener'; +import setupUserLoginInfoGuard from './userLoginInfo'; +import setupPermissionGuard from './permission'; + +function setupPageGuard(router: Router) { + router.beforeEach(async (to) => { + // emit route change + setRouteEmitter(to); + }); +} + +export default function createRouteGuard(router: Router) { + setupPageGuard(router); + setupUserLoginInfoGuard(router); + setupPermissionGuard(router); +} diff --git a/admin/arco-design-pro-vite/src/router/guard/permission.ts b/admin/arco-design-pro-vite/src/router/guard/permission.ts new file mode 100644 index 0000000..ad3724e --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/guard/permission.ts @@ -0,0 +1,55 @@ +import type { Router, RouteRecordNormalized } from 'vue-router'; +import NProgress from 'nprogress'; // progress bar + +import usePermission from '@/hooks/permission'; +import { useUserStore, useAppStore } from '@/store'; +import { appRoutes } from '../routes'; +import { WHITE_LIST, NOT_FOUND } from '../constants'; + +export default function setupPermissionGuard(router: Router) { + router.beforeEach(async (to, from, next) => { + const appStore = useAppStore(); + const userStore = useUserStore(); + const Permission = usePermission(); + const permissionsAllow = Permission.accessRouter(to); + if (appStore.menuFromServer) { + // 针对来自服务端的菜单配置进行处理 + // Handle routing configuration from the server + + // 根据需要自行完善来源于服务端的菜单配置的permission逻辑 + // Refine the permission logic from the server's menu configuration as needed + if ( + !appStore.appAsyncMenus.length && + !WHITE_LIST.find((el) => el.name === to.name) + ) { + await appStore.fetchServerMenuConfig(); + } + const serverMenuConfig = [...appStore.appAsyncMenus, ...WHITE_LIST]; + + let exist = false; + while (serverMenuConfig.length && !exist) { + const element = serverMenuConfig.shift(); + if (element?.name === to.name) exist = true; + + if (element?.children) { + serverMenuConfig.push( + ...(element.children as unknown as RouteRecordNormalized[]) + ); + } + } + if (exist && permissionsAllow) { + next(); + } else next(NOT_FOUND); + } else { + // eslint-disable-next-line no-lonely-if + if (permissionsAllow) next(); + else { + const destination = + Permission.findFirstPermissionRoute(appRoutes, userStore.role) || + NOT_FOUND; + next(destination); + } + } + NProgress.done(); + }); +} diff --git a/admin/arco-design-pro-vite/src/router/guard/userLoginInfo.ts b/admin/arco-design-pro-vite/src/router/guard/userLoginInfo.ts new file mode 100644 index 0000000..7a06895 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/guard/userLoginInfo.ts @@ -0,0 +1,43 @@ +import type { Router, LocationQueryRaw } from 'vue-router'; +import NProgress from 'nprogress'; // progress bar + +import { useUserStore } from '@/store'; +import { isLogin } from '@/utils/auth'; + +export default function setupUserLoginInfoGuard(router: Router) { + router.beforeEach(async (to, from, next) => { + NProgress.start(); + const userStore = useUserStore(); + if (isLogin()) { + if (userStore.role) { + next(); + } else { + try { + await userStore.info(); + next(); + } catch (error) { + await userStore.logout(); + next({ + name: 'login', + query: { + redirect: to.name, + ...to.query, + } as LocationQueryRaw, + }); + } + } + } else { + if (to.name === 'login') { + next(); + return; + } + next({ + name: 'login', + query: { + redirect: to.name, + ...to.query, + } as LocationQueryRaw, + }); + } + }); +} diff --git a/admin/arco-design-pro-vite/src/router/index.ts b/admin/arco-design-pro-vite/src/router/index.ts new file mode 100644 index 0000000..69bcc66 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/index.ts @@ -0,0 +1,37 @@ +import { createRouter, createWebHistory } from 'vue-router'; +import NProgress from 'nprogress'; // progress bar +import 'nprogress/nprogress.css'; + +import { appRoutes } from './routes'; +import { REDIRECT_MAIN, NOT_FOUND_ROUTE } from './routes/base'; +import createRouteGuard from './guard'; + +NProgress.configure({ showSpinner: false }); // NProgress Configuration + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + redirect: 'login', + }, + { + path: '/login', + name: 'login', + component: () => import('@/views/login/index.vue'), + meta: { + requiresAuth: false, + }, + }, + ...appRoutes, + REDIRECT_MAIN, + NOT_FOUND_ROUTE, + ], + scrollBehavior() { + return { top: 0 }; + }, +}); + +createRouteGuard(router); + +export default router; diff --git a/admin/arco-design-pro-vite/src/router/routes/base.ts b/admin/arco-design-pro-vite/src/router/routes/base.ts new file mode 100644 index 0000000..4ee02d1 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/base.ts @@ -0,0 +1,31 @@ +import type { RouteRecordRaw } from 'vue-router'; +import { REDIRECT_ROUTE_NAME } from '@/router/constants'; + +export const DEFAULT_LAYOUT = () => import('@/layout/default-layout.vue'); + +export const REDIRECT_MAIN: RouteRecordRaw = { + path: '/redirect', + name: 'redirectWrapper', + component: DEFAULT_LAYOUT, + meta: { + requiresAuth: true, + hideInMenu: true, + }, + children: [ + { + path: '/redirect/:path', + name: REDIRECT_ROUTE_NAME, + component: () => import('@/views/redirect/index.vue'), + meta: { + requiresAuth: true, + hideInMenu: true, + }, + }, + ], +}; + +export const NOT_FOUND_ROUTE: RouteRecordRaw = { + path: '/:pathMatch(.*)*', + name: 'notFound', + component: () => import('@/views/not-found/index.vue'), +}; diff --git a/admin/arco-design-pro-vite/src/router/routes/externalModules/arco.ts b/admin/arco-design-pro-vite/src/router/routes/externalModules/arco.ts new file mode 100644 index 0000000..d9a76eb --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/externalModules/arco.ts @@ -0,0 +1,10 @@ +export default { + path: 'https://arco.design', + name: 'arcoWebsite', + meta: { + locale: 'menu.arcoWebsite', + icon: 'icon-link', + requiresAuth: true, + order: 8, + }, +}; diff --git a/admin/arco-design-pro-vite/src/router/routes/externalModules/faq.ts b/admin/arco-design-pro-vite/src/router/routes/externalModules/faq.ts new file mode 100644 index 0000000..232b81d --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/externalModules/faq.ts @@ -0,0 +1,10 @@ +export default { + path: 'https://arco.design/vue/docs/pro/faq', + name: 'faq', + meta: { + locale: 'menu.faq', + icon: 'icon-question-circle', + requiresAuth: true, + order: 9, + }, +}; diff --git a/admin/arco-design-pro-vite/src/router/routes/index.ts b/admin/arco-design-pro-vite/src/router/routes/index.ts new file mode 100644 index 0000000..7e640ec --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/index.ts @@ -0,0 +1,22 @@ +import type { RouteRecordNormalized } from 'vue-router'; + +const modules = import.meta.glob('./modules/*.ts', { eager: true }); +const externalModules = import.meta.glob('./externalModules/*.ts', { + eager: true, +}); + +function formatModules(_modules: any, result: RouteRecordNormalized[]) { + Object.keys(_modules).forEach((key) => { + const defaultModule = _modules[key].default; + if (!defaultModule) return; + const moduleList = Array.isArray(defaultModule) + ? [...defaultModule] + : [defaultModule]; + result.push(...moduleList); + }); + return result; +} + +export const appRoutes: RouteRecordNormalized[] = formatModules(modules, []); + +export const appExternalRoutes: RouteRecordNormalized[] = []; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/activity.ts b/admin/arco-design-pro-vite/src/router/routes/modules/activity.ts new file mode 100644 index 0000000..02d93f3 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/activity.ts @@ -0,0 +1,38 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const ACTIVITY: AppRouteRecordRaw = { + path: '/activity', + name: 'activity', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.activity', + requiresAuth: true, + icon: 'icon-calendar', + order: 1, + }, + children: [ + { + path: 'list', + name: 'ActivityList', + component: () => import('@/views/activity/list/index.vue'), + meta: { + locale: 'menu.activity.list', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'verify', + name: 'ActivityVerify', + component: () => import('@/views/activity/verify/index.vue'), + meta: { + locale: 'menu.activity.verify', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default ACTIVITY; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/companion.ts b/admin/arco-design-pro-vite/src/router/routes/modules/companion.ts new file mode 100644 index 0000000..c727808 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/companion.ts @@ -0,0 +1,38 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const COMPANION: AppRouteRecordRaw = { + path: '/companion', + name: 'companion', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.companion', + requiresAuth: true, + icon: 'icon-user-group', + order: 2, + }, + children: [ + { + path: 'list', + name: 'CompanionList', + component: () => import('@/views/companion/list/index.vue'), + meta: { + locale: 'menu.companion.list', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'audit', + name: 'CompanionAudit', + component: () => import('@/views/companion/audit/index.vue'), + meta: { + locale: 'menu.companion.audit', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default COMPANION; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/dashboard.ts b/admin/arco-design-pro-vite/src/router/routes/modules/dashboard.ts new file mode 100644 index 0000000..27ffba0 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/dashboard.ts @@ -0,0 +1,28 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const DASHBOARD: AppRouteRecordRaw = { + path: '/dashboard', + name: 'dashboard', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.dashboard', + requiresAuth: true, + icon: 'icon-dashboard', + order: 0, + }, + children: [ + { + path: 'workplace', + name: 'Workplace', + component: () => import('@/views/dashboard/workplace/index.vue'), + meta: { + locale: 'menu.dashboard.workplace', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default DASHBOARD; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/exception.ts b/admin/arco-design-pro-vite/src/router/routes/modules/exception.ts new file mode 100644 index 0000000..4d93949 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/exception.ts @@ -0,0 +1,49 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const EXCEPTION: AppRouteRecordRaw = { + path: '/exception', + name: 'exception', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.exception', + requiresAuth: true, + icon: 'icon-exclamation-circle', + order: 6, + hideInMenu: true, + }, + children: [ + { + path: '403', + name: '403', + component: () => import('@/views/exception/403/index.vue'), + meta: { + locale: 'menu.exception.403', + requiresAuth: true, + roles: ['admin'], + }, + }, + { + path: '404', + name: '404', + component: () => import('@/views/exception/404/index.vue'), + meta: { + locale: 'menu.exception.404', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: '500', + name: '500', + component: () => import('@/views/exception/500/index.vue'), + meta: { + locale: 'menu.exception.500', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default EXCEPTION; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/finance.ts b/admin/arco-design-pro-vite/src/router/routes/modules/finance.ts new file mode 100644 index 0000000..78a2def --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/finance.ts @@ -0,0 +1,48 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const FINANCE: AppRouteRecordRaw = { + path: '/finance', + name: 'finance', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.finance', + requiresAuth: true, + icon: 'icon-storage', + order: 4, + }, + children: [ + { + path: 'records', + name: 'FinanceRecords', + component: () => import('@/views/finance/records/index.vue'), + meta: { + locale: 'menu.finance.records', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'withdraw', + name: 'FinanceWithdraw', + component: () => import('@/views/finance/withdraw/index.vue'), + meta: { + locale: 'menu.finance.withdraw', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'config', + name: 'FinanceConfig', + component: () => import('@/views/finance/config/index.vue'), + meta: { + locale: 'menu.finance.config', + requiresAuth: true, + roles: ['admin'], + }, + }, + ], +}; + +export default FINANCE; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/form.ts b/admin/arco-design-pro-vite/src/router/routes/modules/form.ts new file mode 100644 index 0000000..319d90c --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/form.ts @@ -0,0 +1,39 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const FORM: AppRouteRecordRaw = { + path: '/form', + name: 'form', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.form', + icon: 'icon-settings', + requiresAuth: true, + order: 3, + hideInMenu: true, + }, + children: [ + { + path: 'step', + name: 'Step', + component: () => import('@/views/form/step/index.vue'), + meta: { + locale: 'menu.form.step', + requiresAuth: true, + roles: ['admin'], + }, + }, + { + path: 'group', + name: 'Group', + component: () => import('@/views/form/group/index.vue'), + meta: { + locale: 'menu.form.group', + requiresAuth: true, + roles: ['admin'], + }, + }, + ], +}; + +export default FORM; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/list.ts b/admin/arco-design-pro-vite/src/router/routes/modules/list.ts new file mode 100644 index 0000000..0d16566 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/list.ts @@ -0,0 +1,39 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const LIST: AppRouteRecordRaw = { + path: '/list', + name: 'list', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.list', + requiresAuth: true, + icon: 'icon-list', + order: 2, + hideInMenu: true, + }, + children: [ + { + path: 'search-table', // The midline path complies with SEO specifications + name: 'SearchTable', + component: () => import('@/views/list/search-table/index.vue'), + meta: { + locale: 'menu.list.searchTable', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'card', + name: 'Card', + component: () => import('@/views/list/card/index.vue'), + meta: { + locale: 'menu.list.cardList', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default LIST; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/order.ts b/admin/arco-design-pro-vite/src/router/routes/modules/order.ts new file mode 100644 index 0000000..3c2fbad --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/order.ts @@ -0,0 +1,38 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const ORDER: AppRouteRecordRaw = { + path: '/order', + name: 'order', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.order', + requiresAuth: true, + icon: 'icon-ordered-list', + order: 3, + }, + children: [ + { + path: 'list', + name: 'OrderList', + component: () => import('@/views/order/list/index.vue'), + meta: { + locale: 'menu.order.list', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'arbitration', + name: 'OrderArbitration', + component: () => import('@/views/order/arbitration/index.vue'), + meta: { + locale: 'menu.order.arbitration', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default ORDER; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/profile.ts b/admin/arco-design-pro-vite/src/router/routes/modules/profile.ts new file mode 100644 index 0000000..1a154c8 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/profile.ts @@ -0,0 +1,29 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const PROFILE: AppRouteRecordRaw = { + path: '/profile', + name: 'profile', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.profile', + requiresAuth: true, + icon: 'icon-file', + order: 4, + hideInMenu: true, + }, + children: [ + { + path: 'basic', + name: 'Basic', + component: () => import('@/views/profile/basic/index.vue'), + meta: { + locale: 'menu.profile.basic', + requiresAuth: true, + roles: ['admin'], + }, + }, + ], +}; + +export default PROFILE; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/result.ts b/admin/arco-design-pro-vite/src/router/routes/modules/result.ts new file mode 100644 index 0000000..7f89dad --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/result.ts @@ -0,0 +1,39 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const RESULT: AppRouteRecordRaw = { + path: '/result', + name: 'result', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.result', + icon: 'icon-check-circle', + requiresAuth: true, + order: 5, + hideInMenu: true, + }, + children: [ + { + path: 'success', + name: 'Success', + component: () => import('@/views/result/success/index.vue'), + meta: { + locale: 'menu.result.success', + requiresAuth: true, + roles: ['admin'], + }, + }, + { + path: 'error', + name: 'Error', + component: () => import('@/views/result/error/index.vue'), + meta: { + locale: 'menu.result.error', + requiresAuth: true, + roles: ['admin'], + }, + }, + ], +}; + +export default RESULT; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/safety.ts b/admin/arco-design-pro-vite/src/router/routes/modules/safety.ts new file mode 100644 index 0000000..96c6004 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/safety.ts @@ -0,0 +1,38 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const SAFETY: AppRouteRecordRaw = { + path: '/safety', + name: 'safety', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.safety', + requiresAuth: true, + icon: 'icon-safe', + order: 5, + }, + children: [ + { + path: 'places', + name: 'SafetyPlaces', + component: () => import('@/views/safety/places/index.vue'), + meta: { + locale: 'menu.safety.places', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'audit-log', + name: 'SafetyAuditLog', + component: () => import('@/views/safety/audit-log/index.vue'), + meta: { + locale: 'menu.safety.auditLog', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default SAFETY; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/user.ts b/admin/arco-design-pro-vite/src/router/routes/modules/user.ts new file mode 100644 index 0000000..1de8c81 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/user.ts @@ -0,0 +1,48 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const USER: AppRouteRecordRaw = { + path: '/user', + name: 'user', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.user', + icon: 'icon-user-group', + requiresAuth: true, + order: 3, + }, + children: [ + { + path: 'list', + name: 'UserList', + component: () => import('@/views/user/list/index.vue'), + meta: { + locale: 'menu.user.list', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'info', + name: 'Info', + component: () => import('@/views/user/info/index.vue'), + meta: { + locale: 'menu.user.info', + requiresAuth: true, + roles: ['*'], + }, + }, + { + path: 'setting', + name: 'Setting', + component: () => import('@/views/user/setting/index.vue'), + meta: { + locale: 'menu.user.setting', + requiresAuth: true, + roles: ['*'], + }, + }, + ], +}; + +export default USER; diff --git a/admin/arco-design-pro-vite/src/router/routes/modules/visualization.ts b/admin/arco-design-pro-vite/src/router/routes/modules/visualization.ts new file mode 100644 index 0000000..416f757 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/modules/visualization.ts @@ -0,0 +1,40 @@ +import { DEFAULT_LAYOUT } from '../base'; +import { AppRouteRecordRaw } from '../types'; + +const VISUALIZATION: AppRouteRecordRaw = { + path: '/visualization', + name: 'visualization', + component: DEFAULT_LAYOUT, + meta: { + locale: 'menu.visualization', + requiresAuth: true, + icon: 'icon-apps', + order: 1, + hideInMenu: true, + }, + children: [ + { + path: 'data-analysis', + name: 'DataAnalysis', + component: () => import('@/views/visualization/data-analysis/index.vue'), + meta: { + locale: 'menu.visualization.dataAnalysis', + requiresAuth: true, + roles: ['admin'], + }, + }, + { + path: 'multi-dimension-data-analysis', + name: 'MultiDimensionDataAnalysis', + component: () => + import('@/views/visualization/multi-dimension-data-analysis/index.vue'), + meta: { + locale: 'menu.visualization.multiDimensionDataAnalysis', + requiresAuth: true, + roles: ['admin'], + }, + }, + ], +}; + +export default VISUALIZATION; diff --git a/admin/arco-design-pro-vite/src/router/routes/types.ts b/admin/arco-design-pro-vite/src/router/routes/types.ts new file mode 100644 index 0000000..6b8e8d7 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/routes/types.ts @@ -0,0 +1,20 @@ +import { defineComponent } from 'vue'; +import type { RouteMeta, NavigationGuard } from 'vue-router'; + +export type Component = + | ReturnType + | (() => Promise) + | (() => Promise); + +export interface AppRouteRecordRaw { + path: string; + name?: string | symbol; + meta?: RouteMeta; + redirect?: string; + component: Component | string; + children?: AppRouteRecordRaw[]; + alias?: string | string[]; + props?: Record; + beforeEnter?: NavigationGuard | NavigationGuard[]; + fullPath?: string; +} diff --git a/admin/arco-design-pro-vite/src/router/typings.d.ts b/admin/arco-design-pro-vite/src/router/typings.d.ts new file mode 100644 index 0000000..5ccaa70 --- /dev/null +++ b/admin/arco-design-pro-vite/src/router/typings.d.ts @@ -0,0 +1,16 @@ +import 'vue-router'; + +declare module 'vue-router' { + interface RouteMeta { + roles?: string[]; // Controls roles that have access to the page + requiresAuth: boolean; // Whether login is required to access the current page (every route must declare) + icon?: string; // The icon show in the side menu + locale?: string; // The locale name show in side menu and breadcrumb + hideInMenu?: boolean; // If true, it is not displayed in the side menu + hideChildrenInMenu?: boolean; // if set true, the children are not displayed in the side menu + activeMenu?: string; // if set name, the menu will be highlighted according to the name you set + order?: number; // Sort routing menu items. If set key, the higher the value, the more forward it is + noAffix?: boolean; // if set true, the tag will not affix in the tab-bar + ignoreCache?: boolean; // if set true, the page will not be cached + } +} diff --git a/admin/arco-design-pro-vite/src/store/index.ts b/admin/arco-design-pro-vite/src/store/index.ts new file mode 100644 index 0000000..3d3035f --- /dev/null +++ b/admin/arco-design-pro-vite/src/store/index.ts @@ -0,0 +1,9 @@ +import { createPinia } from 'pinia'; +import useAppStore from './modules/app'; +import useUserStore from './modules/user'; +import useTabBarStore from './modules/tab-bar'; + +const pinia = createPinia(); + +export { useAppStore, useUserStore, useTabBarStore }; +export default pinia; diff --git a/admin/arco-design-pro-vite/src/store/modules/app/index.ts b/admin/arco-design-pro-vite/src/store/modules/app/index.ts new file mode 100644 index 0000000..77c6c35 --- /dev/null +++ b/admin/arco-design-pro-vite/src/store/modules/app/index.ts @@ -0,0 +1,77 @@ +import { defineStore } from 'pinia'; +import { Notification } from '@arco-design/web-vue'; +import type { NotificationReturn } from '@arco-design/web-vue/es/notification/interface'; +import type { RouteRecordNormalized } from 'vue-router'; +import defaultSettings from '@/config/settings.json'; +import { getMenuList } from '@/api/user'; +import { AppState } from './types'; + +const useAppStore = defineStore('app', { + state: (): AppState => ({ ...defaultSettings }), + + getters: { + appCurrentSetting(state: AppState): AppState { + return { ...state }; + }, + appDevice(state: AppState) { + return state.device; + }, + appAsyncMenus(state: AppState): RouteRecordNormalized[] { + return state.serverMenu as unknown as RouteRecordNormalized[]; + }, + }, + + actions: { + // Update app settings + updateSettings(partial: Partial) { + // @ts-ignore-next-line + this.$patch(partial); + }, + + // Change theme color + toggleTheme(dark: boolean) { + if (dark) { + this.theme = 'dark'; + document.body.setAttribute('arco-theme', 'dark'); + } else { + this.theme = 'light'; + document.body.removeAttribute('arco-theme'); + } + }, + toggleDevice(device: string) { + this.device = device; + }, + toggleMenu(value: boolean) { + this.hideMenu = value; + }, + async fetchServerMenuConfig() { + let notifyInstance: NotificationReturn | null = null; + try { + notifyInstance = Notification.info({ + id: 'menuNotice', // Keep the instance id the same + content: 'loading', + closable: true, + }); + const { data } = await getMenuList(); + this.serverMenu = data; + notifyInstance = Notification.success({ + id: 'menuNotice', + content: 'success', + closable: true, + }); + } catch (error) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + notifyInstance = Notification.error({ + id: 'menuNotice', + content: 'error', + closable: true, + }); + } + }, + clearServerMenu() { + this.serverMenu = []; + }, + }, +}); + +export default useAppStore; diff --git a/admin/arco-design-pro-vite/src/store/modules/app/types.ts b/admin/arco-design-pro-vite/src/store/modules/app/types.ts new file mode 100644 index 0000000..4229f83 --- /dev/null +++ b/admin/arco-design-pro-vite/src/store/modules/app/types.ts @@ -0,0 +1,20 @@ +import type { RouteRecordNormalized } from 'vue-router'; + +export interface AppState { + theme: string; + colorWeak: boolean; + navbar: boolean; + menu: boolean; + topMenu: boolean; + hideMenu: boolean; + menuCollapse: boolean; + footer: boolean; + themeColor: string; + menuWidth: number; + globalSettings: boolean; + device: string; + tabBar: boolean; + menuFromServer: boolean; + serverMenu: RouteRecordNormalized[]; + [key: string]: unknown; +} diff --git a/admin/arco-design-pro-vite/src/store/modules/tab-bar/index.ts b/admin/arco-design-pro-vite/src/store/modules/tab-bar/index.ts new file mode 100644 index 0000000..6072e1d --- /dev/null +++ b/admin/arco-design-pro-vite/src/store/modules/tab-bar/index.ts @@ -0,0 +1,74 @@ +import type { RouteLocationNormalized } from 'vue-router'; +import { defineStore } from 'pinia'; +import { + DEFAULT_ROUTE, + DEFAULT_ROUTE_NAME, + REDIRECT_ROUTE_NAME, +} from '@/router/constants'; +import { isString } from '@/utils/is'; +import { TabBarState, TagProps } from './types'; + +const formatTag = (route: RouteLocationNormalized): TagProps => { + const { name, meta, fullPath, query } = route; + return { + title: meta.locale || '', + name: String(name), + fullPath, + query, + ignoreCache: meta.ignoreCache, + }; +}; + +const BAN_LIST = [REDIRECT_ROUTE_NAME]; + +const useAppStore = defineStore('tabBar', { + state: (): TabBarState => ({ + cacheTabList: new Set([DEFAULT_ROUTE_NAME]), + tagList: [DEFAULT_ROUTE], + }), + + getters: { + getTabList(): TagProps[] { + return this.tagList; + }, + getCacheList(): string[] { + return Array.from(this.cacheTabList); + }, + }, + + actions: { + updateTabList(route: RouteLocationNormalized) { + if (BAN_LIST.includes(route.name as string)) return; + this.tagList.push(formatTag(route)); + if (!route.meta.ignoreCache) { + this.cacheTabList.add(route.name as string); + } + }, + deleteTag(idx: number, tag: TagProps) { + this.tagList.splice(idx, 1); + this.cacheTabList.delete(tag.name); + }, + addCache(name: string) { + if (isString(name) && name !== '') this.cacheTabList.add(name); + }, + deleteCache(tag: TagProps) { + this.cacheTabList.delete(tag.name); + }, + freshTabList(tags: TagProps[]) { + this.tagList = tags; + this.cacheTabList.clear(); + // 要先判断ignoreCache + this.tagList + .filter((el) => !el.ignoreCache) + .map((el) => el.name) + .forEach((x) => this.cacheTabList.add(x)); + }, + resetTabList() { + this.tagList = [DEFAULT_ROUTE]; + this.cacheTabList.clear(); + this.cacheTabList.add(DEFAULT_ROUTE_NAME); + }, + }, +}); + +export default useAppStore; diff --git a/admin/arco-design-pro-vite/src/store/modules/tab-bar/types.ts b/admin/arco-design-pro-vite/src/store/modules/tab-bar/types.ts new file mode 100644 index 0000000..29c1c53 --- /dev/null +++ b/admin/arco-design-pro-vite/src/store/modules/tab-bar/types.ts @@ -0,0 +1,12 @@ +export interface TagProps { + title: string; + name: string; + fullPath: string; + query?: any; + ignoreCache?: boolean; +} + +export interface TabBarState { + tagList: TagProps[]; + cacheTabList: Set; +} diff --git a/admin/arco-design-pro-vite/src/store/modules/user/index.ts b/admin/arco-design-pro-vite/src/store/modules/user/index.ts new file mode 100644 index 0000000..2c9316e --- /dev/null +++ b/admin/arco-design-pro-vite/src/store/modules/user/index.ts @@ -0,0 +1,91 @@ +import { defineStore } from 'pinia'; +import { + login as userLogin, + logout as userLogout, + getUserInfo, + LoginData, +} from '@/api/user'; +import { setToken, clearToken } from '@/utils/auth'; +import { removeRouteListener } from '@/utils/route-listener'; +import { UserState } from './types'; +import useAppStore from '../app'; + +const useUserStore = defineStore('user', { + state: (): UserState => ({ + name: undefined, + avatar: undefined, + job: undefined, + organization: undefined, + location: undefined, + email: undefined, + introduction: undefined, + personalWebsite: undefined, + jobName: undefined, + organizationName: undefined, + locationName: undefined, + phone: undefined, + registrationDate: undefined, + accountId: undefined, + certification: undefined, + role: '', + }), + + getters: { + userInfo(state: UserState): UserState { + return { ...state }; + }, + }, + + actions: { + switchRoles() { + return new Promise((resolve) => { + this.role = this.role === 'user' ? 'admin' : 'user'; + resolve(this.role); + }); + }, + // Set user's information + setInfo(partial: Partial) { + this.$patch(partial); + }, + + // Reset user's information + resetInfo() { + this.$reset(); + }, + + // Get user's information + async info() { + const res = await getUserInfo(); + + this.setInfo(res.data); + }, + + // Login + async login(loginForm: LoginData) { + try { + const res = await userLogin(loginForm); + setToken(res.data.token); + } catch (err) { + clearToken(); + throw err; + } + }, + logoutCallBack() { + const appStore = useAppStore(); + this.resetInfo(); + clearToken(); + removeRouteListener(); + appStore.clearServerMenu(); + }, + // Logout + async logout() { + try { + await userLogout(); + } finally { + this.logoutCallBack(); + } + }, + }, +}); + +export default useUserStore; diff --git a/admin/arco-design-pro-vite/src/store/modules/user/types.ts b/admin/arco-design-pro-vite/src/store/modules/user/types.ts new file mode 100644 index 0000000..75fd784 --- /dev/null +++ b/admin/arco-design-pro-vite/src/store/modules/user/types.ts @@ -0,0 +1,19 @@ +export type RoleType = '' | '*' | 'admin' | 'user'; +export interface UserState { + name?: string; + avatar?: string; + job?: string; + organization?: string; + location?: string; + email?: string; + introduction?: string; + personalWebsite?: string; + jobName?: string; + organizationName?: string; + locationName?: string; + phone?: string; + registrationDate?: string; + accountId?: string; + certification?: number; + role: RoleType; +} diff --git a/admin/arco-design-pro-vite/src/types/echarts.ts b/admin/arco-design-pro-vite/src/types/echarts.ts new file mode 100644 index 0000000..ac4578a --- /dev/null +++ b/admin/arco-design-pro-vite/src/types/echarts.ts @@ -0,0 +1,10 @@ +import { CallbackDataParams } from 'echarts/types/dist/shared'; + +export interface ToolTipFormatterParams extends CallbackDataParams { + axisDim: string; + axisIndex: number; + axisType: string; + axisId: string; + axisValue: string; + axisValueLabel: string; +} diff --git a/admin/arco-design-pro-vite/src/types/global.ts b/admin/arco-design-pro-vite/src/types/global.ts new file mode 100644 index 0000000..30ac3af --- /dev/null +++ b/admin/arco-design-pro-vite/src/types/global.ts @@ -0,0 +1,37 @@ +export interface AnyObject { + [key: string]: unknown; +} + +export interface Options { + value: unknown; + label: string; +} + +export interface NodeOptions extends Options { + children?: NodeOptions[]; +} + +export interface GetParams { + body: null; + type: string; + url: string; +} + +export interface PostData { + body: string; + type: string; + url: string; +} + +export interface Pagination { + current: number; + pageSize: number; + total?: number; +} + +export type TimeRanger = [string, string]; + +export interface GeneralChart { + xAxis: string[]; + data: Array<{ name: string; value: number[] }>; +} diff --git a/admin/arco-design-pro-vite/src/types/mock.ts b/admin/arco-design-pro-vite/src/types/mock.ts new file mode 100644 index 0000000..9219ef4 --- /dev/null +++ b/admin/arco-design-pro-vite/src/types/mock.ts @@ -0,0 +1,5 @@ +export interface MockParams { + url: string; + type: string; + body: string; +} diff --git a/admin/arco-design-pro-vite/src/utils/auth.ts b/admin/arco-design-pro-vite/src/utils/auth.ts new file mode 100644 index 0000000..1a87c0a --- /dev/null +++ b/admin/arco-design-pro-vite/src/utils/auth.ts @@ -0,0 +1,19 @@ +const TOKEN_KEY = 'token'; + +const isLogin = () => { + return !!localStorage.getItem(TOKEN_KEY); +}; + +const getToken = () => { + return localStorage.getItem(TOKEN_KEY); +}; + +const setToken = (token: string) => { + localStorage.setItem(TOKEN_KEY, token); +}; + +const clearToken = () => { + localStorage.removeItem(TOKEN_KEY); +}; + +export { isLogin, getToken, setToken, clearToken }; diff --git a/admin/arco-design-pro-vite/src/utils/env.ts b/admin/arco-design-pro-vite/src/utils/env.ts new file mode 100644 index 0000000..4147b35 --- /dev/null +++ b/admin/arco-design-pro-vite/src/utils/env.ts @@ -0,0 +1,3 @@ +const debug = import.meta.env.MODE !== 'production'; + +export default debug; diff --git a/admin/arco-design-pro-vite/src/utils/event.ts b/admin/arco-design-pro-vite/src/utils/event.ts new file mode 100644 index 0000000..c700d3d --- /dev/null +++ b/admin/arco-design-pro-vite/src/utils/event.ts @@ -0,0 +1,27 @@ +export function addEventListen( + target: Window | HTMLElement, + event: string, + handler: EventListenerOrEventListenerObject, + capture = false +) { + if ( + target.addEventListener && + typeof target.addEventListener === 'function' + ) { + target.addEventListener(event, handler, capture); + } +} + +export function removeEventListen( + target: Window | HTMLElement, + event: string, + handler: EventListenerOrEventListenerObject, + capture = false +) { + if ( + target.removeEventListener && + typeof target.removeEventListener === 'function' + ) { + target.removeEventListener(event, handler, capture); + } +} diff --git a/admin/arco-design-pro-vite/src/utils/index.ts b/admin/arco-design-pro-vite/src/utils/index.ts new file mode 100644 index 0000000..197bab3 --- /dev/null +++ b/admin/arco-design-pro-vite/src/utils/index.ts @@ -0,0 +1,25 @@ +type TargetContext = '_self' | '_parent' | '_blank' | '_top'; + +export const openWindow = ( + url: string, + opts?: { target?: TargetContext; [key: string]: any } +) => { + const { target = '_blank', ...others } = opts || {}; + window.open( + url, + target, + Object.entries(others) + .reduce((preValue: string[], curValue) => { + const [key, value] = curValue; + return [...preValue, `${key}=${value}`]; + }, []) + .join(',') + ); +}; + +export const regexUrl = new RegExp( + '^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', + 'i' +); + +export default null; diff --git a/admin/arco-design-pro-vite/src/utils/is.ts b/admin/arco-design-pro-vite/src/utils/is.ts new file mode 100644 index 0000000..99deea8 --- /dev/null +++ b/admin/arco-design-pro-vite/src/utils/is.ts @@ -0,0 +1,53 @@ +const opt = Object.prototype.toString; + +export function isArray(obj: any): obj is any[] { + return opt.call(obj) === '[object Array]'; +} + +export function isObject(obj: any): obj is { [key: string]: any } { + return opt.call(obj) === '[object Object]'; +} + +export function isString(obj: any): obj is string { + return opt.call(obj) === '[object String]'; +} + +export function isNumber(obj: any): obj is number { + return opt.call(obj) === '[object Number]' && obj === obj; // eslint-disable-line +} + +export function isRegExp(obj: any) { + return opt.call(obj) === '[object RegExp]'; +} + +export function isFile(obj: any): obj is File { + return opt.call(obj) === '[object File]'; +} + +export function isBlob(obj: any): obj is Blob { + return opt.call(obj) === '[object Blob]'; +} + +export function isUndefined(obj: any): obj is undefined { + return obj === undefined; +} + +export function isNull(obj: any): obj is null { + return obj === null; +} + +export function isFunction(obj: any): obj is (...args: any[]) => any { + return typeof obj === 'function'; +} + +export function isEmptyObject(obj: any): boolean { + return isObject(obj) && Object.keys(obj).length === 0; +} + +export function isExist(obj: any): boolean { + return obj || obj === 0; +} + +export function isWindow(el: any): el is Window { + return el === window; +} diff --git a/admin/arco-design-pro-vite/src/utils/monitor.ts b/admin/arco-design-pro-vite/src/utils/monitor.ts new file mode 100644 index 0000000..7b49015 --- /dev/null +++ b/admin/arco-design-pro-vite/src/utils/monitor.ts @@ -0,0 +1,28 @@ +import { App, ComponentPublicInstance } from 'vue'; +import axios from 'axios'; + +export default function handleError(Vue: App, baseUrl: string) { + if (!baseUrl) { + return; + } + Vue.config.errorHandler = ( + err: unknown, + instance: ComponentPublicInstance | null, + info: string + ) => { + // send error info + axios.post(`${baseUrl}/report-error`, { + err, + instance, + info, + // location: window.location.href, + // message: err.message, + // stack: err.stack, + // browserInfo: getBrowserInfo(), + // user info + // dom info + // url info + // ... + }); + }; +} diff --git a/admin/arco-design-pro-vite/src/utils/route-listener.ts b/admin/arco-design-pro-vite/src/utils/route-listener.ts new file mode 100644 index 0000000..0b79591 --- /dev/null +++ b/admin/arco-design-pro-vite/src/utils/route-listener.ts @@ -0,0 +1,31 @@ +/** + * Listening to routes alone would waste rendering performance. Use the publish-subscribe model for distribution management + * 单独监听路由会浪费渲染性能。使用发布订阅模式去进行分发管理。 + */ +import mitt, { Handler } from 'mitt'; +import type { RouteLocationNormalized } from 'vue-router'; + +const emitter = mitt(); + +const key = Symbol('ROUTE_CHANGE'); + +let latestRoute: RouteLocationNormalized; + +export function setRouteEmitter(to: RouteLocationNormalized) { + emitter.emit(key, to); + latestRoute = to; +} + +export function listenerRouteChange( + handler: (route: RouteLocationNormalized) => void, + immediate = true +) { + emitter.on(key, handler as Handler); + if (immediate && latestRoute) { + handler(latestRoute); + } +} + +export function removeRouteListener() { + emitter.off(key); +} diff --git a/admin/arco-design-pro-vite/src/utils/setup-mock.ts b/admin/arco-design-pro-vite/src/utils/setup-mock.ts new file mode 100644 index 0000000..257da5d --- /dev/null +++ b/admin/arco-design-pro-vite/src/utils/setup-mock.ts @@ -0,0 +1,23 @@ +import debug from './env'; + +export default ({ mock, setup }: { mock?: boolean; setup: () => void }) => { + if (mock !== false && debug) setup(); +}; + +export const successResponseWrap = (data: unknown) => { + return { + data, + status: 'ok', + msg: '请求成功', + code: 20000, + }; +}; + +export const failResponseWrap = (data: unknown, msg: string, code = 50000) => { + return { + data, + status: 'fail', + msg, + code, + }; +}; diff --git a/admin/arco-design-pro-vite/src/views/activity/list/index.vue b/admin/arco-design-pro-vite/src/views/activity/list/index.vue new file mode 100644 index 0000000..b2bc256 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/activity/list/index.vue @@ -0,0 +1,391 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/activity/verify/index.vue b/admin/arco-design-pro-vite/src/views/activity/verify/index.vue new file mode 100644 index 0000000..88c9e2f --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/activity/verify/index.vue @@ -0,0 +1,297 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/companion/audit/index.vue b/admin/arco-design-pro-vite/src/views/companion/audit/index.vue new file mode 100644 index 0000000..25aa7e1 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/companion/audit/index.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/companion/list/index.vue b/admin/arco-design-pro-vite/src/views/companion/list/index.vue new file mode 100644 index 0000000..a4d0980 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/companion/list/index.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-item.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-item.vue new file mode 100644 index 0000000..7900366 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-item.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-list.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-list.vue new file mode 100644 index 0000000..87b6db3 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-list.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-panel.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-panel.vue new file mode 100644 index 0000000..25ffdb9 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/chat-panel.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/data-statistic-list.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/data-statistic-list.vue new file mode 100644 index 0000000..8b00394 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/data-statistic-list.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/data-statistic.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/data-statistic.vue new file mode 100644 index 0000000..5b6a6b5 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/data-statistic.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/quick-operation.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/quick-operation.vue new file mode 100644 index 0000000..c37db88 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/quick-operation.vue @@ -0,0 +1,32 @@ + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio-information.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio-information.vue new file mode 100644 index 0000000..ba3f756 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio-information.vue @@ -0,0 +1,34 @@ + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio-status.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio-status.vue new file mode 100644 index 0000000..d6ecc6c --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio-status.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio.vue new file mode 100644 index 0000000..9bd3e09 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/components/studio.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/index.vue b/admin/arco-design-pro-vite/src/views/dashboard/monitor/index.vue new file mode 100644 index 0000000..421e11f --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/index.vue @@ -0,0 +1,87 @@ + + + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/dashboard/monitor/locale/en-US.ts new file mode 100644 index 0000000..e3af3a4 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/locale/en-US.ts @@ -0,0 +1,48 @@ +export default { + 'menu.dashboard.monitor': 'Real-time Monitor', + 'monitor.title.chatPanel': 'Chat Window', + 'monitor.title.quickOperation': 'Quick Operation', + 'monitor.title.studioInfo': 'Studio Information', + 'monitor.title.studioPreview': 'Studio Preview', + 'monitor.chat.options.all': 'All', + 'monitor.chat.placeholder.searchCategory': 'Search Category', + 'monitor.chat.update': 'Update', + 'monitor.list.title.order': 'Order', + 'monitor.list.title.cover': 'Cover', + 'monitor.list.title.name': 'Name', + 'monitor.list.title.duration': 'Duration', + 'monitor.list.title.id': 'ID', + 'monitor.list.tip.rotations': 'Rotations ', + 'monitor.list.tip.rest': ', The program list is not visible to viewers', + 'monitor.list.tag.auditFailed': 'Audit Failed', + 'monitor.tab.title.liveMethod': 'Live Method', + 'monitor.tab.title.onlinePopulation': 'Online Population', + 'monitor.liveMethod.normal': 'Normal Live', + 'monitor.liveMethod.flowControl': 'Flow Control Live', + 'monitor.liveMethod.video': 'Video Live', + 'monitor.liveMethod.web': 'Web Live', + 'monitor.editCarousel': 'Edit', + 'monitor.startCarousel': 'Start', + 'monitor.quickOperation.changeClarity': 'Change the Clarity', + 'monitor.quickOperation.switchStream': 'Switch Stream', + 'monitor.quickOperation.removeClarity': 'Remove the Clarity', + 'monitor.quickOperation.pushFlowGasket': 'Push Flow Gasket', + 'monitor.studioInfo.label.studioTitle': 'Studio Title', + 'monitor.studioInfo.label.onlineNotification': 'Online Notification', + 'monitor.studioInfo.label.studioCategory': 'Studio Category', + 'monitor.studioInfo.placeholder.studioTitle': "'s Studio", + 'monitor.studioInfo.btn.fresh': 'Fresh', + 'monitor.studioStatus.title.studioStatus': 'Studio Status', + 'monitor.studioStatus.title.pictureInfo': 'Picture Information', + 'monitor.studioStatus.smooth': 'Smooth', + 'monitor.studioStatus.frameRate': 'Frame', + 'monitor.studioStatus.bitRate': 'Bit', + 'monitor.studioStatus.mainstream': 'Main', + 'monitor.studioStatus.hotStandby': 'Hot', + 'monitor.studioStatus.coldStandby': 'Cold', + 'monitor.studioStatus.line': 'Line', + 'monitor.studioStatus.play': 'Format', + 'monitor.studioStatus.pictureQuality': 'Quality', + 'monitor.studioPreview.studio': 'Studio', + 'monitor.studioPreview.watching': 'watching', +}; diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/dashboard/monitor/locale/zh-CN.ts new file mode 100644 index 0000000..70962a0 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/locale/zh-CN.ts @@ -0,0 +1,48 @@ +export default { + 'menu.dashboard.monitor': '实时监控', + 'monitor.title.chatPanel': '聊天窗口', + 'monitor.title.quickOperation': '快捷操作', + 'monitor.title.studioInfo': '直播信息', + 'monitor.title.studioPreview': '直播预览', + 'monitor.chat.options.all': '全部', + 'monitor.chat.placeholder.searchCategory': '搜索类目', + 'monitor.chat.update': '更新', + 'monitor.list.title.order': '序号', + 'monitor.list.title.cover': '封面', + 'monitor.list.title.name': '名称', + 'monitor.list.title.duration': '视频时长', + 'monitor.list.title.id': '视频Id', + 'monitor.list.tip.rotations': '轮播次数', + 'monitor.list.tip.rest': ',节目单观众不可见', + 'monitor.list.tag.auditFailed': '审核未通过', + 'monitor.tab.title.liveMethod': '直播方式', + 'monitor.tab.title.onlinePopulation': '在线人数', + 'monitor.liveMethod.normal': '普通直播', + 'monitor.liveMethod.flowControl': '控流直播', + 'monitor.liveMethod.video': '视频直播', + 'monitor.liveMethod.web': '网页开播', + 'monitor.editCarousel': '编辑轮播', + 'monitor.startCarousel': '开始轮播', + 'monitor.quickOperation.changeClarity': '切换清晰度', + 'monitor.quickOperation.switchStream': '主备流切换', + 'monitor.quickOperation.removeClarity': '摘除清晰度', + 'monitor.quickOperation.pushFlowGasket': '推流垫片', + 'monitor.studioInfo.label.studioTitle': '直播标题', + 'monitor.studioInfo.label.onlineNotification': '上线通知', + 'monitor.studioInfo.label.studioCategory': '直播类目', + 'monitor.studioInfo.placeholder.studioTitle': '的直播间', + 'monitor.studioInfo.btn.fresh': '更新', + 'monitor.studioStatus.title.studioStatus': '直播状态', + 'monitor.studioStatus.title.pictureInfo': '画面信息', + 'monitor.studioStatus.smooth': '流畅', + 'monitor.studioStatus.frameRate': '帧率', + 'monitor.studioStatus.bitRate': '码率', + 'monitor.studioStatus.mainstream': '主流', + 'monitor.studioStatus.hotStandby': '热备', + 'monitor.studioStatus.coldStandby': '冷备', + 'monitor.studioStatus.line': '线路', + 'monitor.studioStatus.play': '播放格式', + 'monitor.studioStatus.pictureQuality': '画质', + 'monitor.studioPreview.studio': '直播间', + 'monitor.studioPreview.watching': '在看', +}; diff --git a/admin/arco-design-pro-vite/src/views/dashboard/monitor/mock.ts b/admin/arco-design-pro-vite/src/views/dashboard/monitor/mock.ts new file mode 100644 index 0000000..47bee2d --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/monitor/mock.ts @@ -0,0 +1,26 @@ +import Mock from 'mockjs'; + +import setupMock, { + successResponseWrap, + // failResponseWrap, +} from '@/utils/setup-mock'; + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/chat/list'), () => { + // return failResponseWrap(null, '重新登陆', 50008); + const data = Mock.mock({ + 'data|4-6': [ + { + 'id|+1': 1, + 'username': '用户7352772', + 'content': '马上就开始了,好激动!', + 'time': '13:09:12', + 'isCollect|2': true, + }, + ], + }); + return successResponseWrap(data.data); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/action-hub.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/action-hub.vue new file mode 100644 index 0000000..d4aad14 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/action-hub.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/announcement.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/announcement.vue new file mode 100644 index 0000000..3fae2e3 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/announcement.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/banner.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/banner.vue new file mode 100644 index 0000000..a94c922 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/banner.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/carousel.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/carousel.vue new file mode 100644 index 0000000..2dbbbde --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/carousel.vue @@ -0,0 +1,24 @@ + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/categories-percent.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/categories-percent.vue new file mode 100644 index 0000000..68a7e74 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/categories-percent.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/content-chart.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/content-chart.vue new file mode 100644 index 0000000..56d28d1 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/content-chart.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/data-panel.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/data-panel.vue new file mode 100644 index 0000000..db9e139 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/data-panel.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/docs.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/docs.vue new file mode 100644 index 0000000..506fae2 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/docs.vue @@ -0,0 +1,42 @@ + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/popular-content.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/popular-content.vue new file mode 100644 index 0000000..053571b --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/popular-content.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-operation.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-operation.vue new file mode 100644 index 0000000..a6745eb --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-operation.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-todo-list.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-todo-list.vue new file mode 100644 index 0000000..563e808 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-todo-list.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-verifier.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-verifier.vue new file mode 100644 index 0000000..61741da --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/quick-verifier.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/recently-visited.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/recently-visited.vue new file mode 100644 index 0000000..805c4f7 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/components/recently-visited.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/index.vue b/admin/arco-design-pro-vite/src/views/dashboard/workplace/index.vue new file mode 100644 index 0000000..5d83c58 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/index.vue @@ -0,0 +1,155 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/dashboard/workplace/locale/en-US.ts new file mode 100644 index 0000000..5eef6ad --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/locale/en-US.ts @@ -0,0 +1,38 @@ +export default { + 'menu.dashboard.workplace': 'Workplace', + 'workplace.welcome': 'Welcome!', + 'workplace.balance': 'Balance (CNY)', + 'workplace.order.pending': 'Pending', + 'workplace.order.pendingRenewal': 'Renewal Order', + 'workplace.onlineContent': 'Online Content', + 'workplace.putIn': 'Put In', + 'workplace.newDay': 'Daily Additional Comments', + 'workplace.newFromYesterday': 'New From Yesterday', + 'workplace.minute': 'Min', + 'workplace.docs': 'Documents', + 'workplace.docs.productOverview': 'Product Overview', + 'workplace.docs.userGuide': 'User Guide', + 'workplace.docs.workflow': 'Workflow', + 'workplace.docs.interfaceDocs': 'Interface Docs', + // + 'workplace.contentManagement': 'Content Management', + 'workplace.contentStatistical': 'Content Statistical', + 'workplace.advanced': 'Advanced', + 'workplace.onlinePromotion': 'Online Promotion', + 'workplace.contentPutIn': 'Put In', + 'workplace.announcement': 'Announcement', + 'workplace.recently.visited': 'Recently Visited', + 'workplace.record.nodata': 'No data', + 'workplace.quick.operation': 'Quick Operation', + 'workplace.quickOperation.setup': 'Setup', + 'workplace.allProject': 'All', + 'workplace.loadMore': 'More', + 'workplace.viewMore': 'More', + 'workplace.contentData': 'Content Data', + 'workplace.popularContent': 'Popular Content', + 'workplace.popularContent.text': 'text', + 'workplace.popularContent.image': 'image', + 'workplace.popularContent.video': 'video', + 'workplace.categoriesPercent': 'Categories Percent', + 'workplace.pecs': 'pecs', +}; diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/dashboard/workplace/locale/zh-CN.ts new file mode 100644 index 0000000..db4ef57 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/locale/zh-CN.ts @@ -0,0 +1,37 @@ +export default { + 'menu.dashboard.workplace': '工作台', + 'workplace.welcome': '欢迎回来!', + 'workplace.balance': '平台资金池(元)', + 'workplace.order.pending': '待核销', + 'workplace.order.pendingRenewal': '争议待处理', + 'workplace.onlineContent': '今日平台流水 GMV', + 'workplace.putIn': '今日支付订单', + 'workplace.newDay': '在线接单大神', + 'workplace.newFromYesterday': '今日活跃用户', + 'workplace.minute': '分钟', + 'workplace.docs': '平台规范指南', + 'workplace.docs.productOverview': '线下场所合规安全红线', + 'workplace.docs.userGuide': '4位数字核销码核验指引', + 'workplace.docs.workflow': '多轮改价与补退差额机制', + 'workplace.docs.interfaceDocs': '二级分销与提现打款规约', + 'workplace.contentManagement': '组局监管', + 'workplace.contentStatistical': '核销看板', + 'workplace.advanced': '资质审核', + 'workplace.onlinePromotion': '争议仲裁', + 'workplace.contentPutIn': '财务流水', + 'workplace.announcement': '风控合规公告', + 'workplace.recently.visited': '最近访问', + 'workplace.record.nodata': '暂无数据', + 'workplace.quick.operation': '运营快捷入口', + 'workplace.quickOperation.setup': '配置', + 'workplace.allProject': '全部业务', + 'workplace.loadMore': '加载更多', + 'workplace.viewMore': '查看更多', + 'workplace.contentData': '最近7日流水趋势 (GMV)', + 'workplace.popularContent': '热门组局与履约动态', + 'workplace.popularContent.text': '同城陪吃/喝', + 'workplace.popularContent.image': '线下KTV陪唱', + 'workplace.popularContent.video': '电竞上分局', + 'workplace.categoriesPercent': '核心主打品类营收占比', + 'workplace.pecs': '人', +}; diff --git a/admin/arco-design-pro-vite/src/views/dashboard/workplace/mock.ts b/admin/arco-design-pro-vite/src/views/dashboard/workplace/mock.ts new file mode 100644 index 0000000..00ffb4a --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/dashboard/workplace/mock.ts @@ -0,0 +1,129 @@ +import Mock from 'mockjs'; +import qs from 'query-string'; +import dayjs from 'dayjs'; +import { GetParams } from '@/types/global'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +const textList = [ + { + key: 1, + clickNumber: '346.3w+', + title: '经济日报:财政政策要精准提升…', + increases: 35, + }, + { + key: 2, + clickNumber: '324.2w+', + title: '双12遇冷,消费者厌倦了电商平…', + increases: 22, + }, + { + key: 3, + clickNumber: '318.9w+', + title: '致敬坚守战“疫”一线的社区工作…', + increases: 9, + }, + { + key: 4, + clickNumber: '257.9w+', + title: '普高还是职高?家长们陷入选择…', + increases: 17, + }, + { + key: 5, + clickNumber: '124.2w+', + title: '人民快评:没想到“浓眉大眼”的…', + increases: 37, + }, +]; +const imageList = [ + { + key: 1, + clickNumber: '15.3w+', + title: '杨涛接替陆慷出任外交部美大司…', + increases: 15, + }, + { + key: 2, + clickNumber: '12.2w+', + title: '图集:龙卷风袭击美国多州房屋…', + increases: 26, + }, + { + key: 3, + clickNumber: '18.9w+', + title: '52岁大姐贴钱照顾自闭症儿童八…', + increases: 9, + }, + { + key: 4, + clickNumber: '7.9w+', + title: '杭州一家三口公园宿营取暖中毒', + increases: 0, + }, + { + key: 5, + clickNumber: '5.2w+', + title: '派出所副所长威胁市民?警方调…', + increases: 4, + }, +]; +const videoList = [ + { + key: 1, + clickNumber: '367.6w+', + title: '这是今日10点的南京', + increases: 5, + }, + { + key: 2, + clickNumber: '352.2w+', + title: '立陶宛不断挑衅致经济受损民众…', + increases: 17, + }, + { + key: 3, + clickNumber: '348.9w+', + title: '韩国艺人刘在石确诊新冠', + increases: 30, + }, + { + key: 4, + clickNumber: '346.3w+', + title: '关于北京冬奥会,文在寅表态', + increases: 12, + }, + { + key: 5, + clickNumber: '271.2w+', + title: '95后现役军人荣立一等功', + increases: 2, + }, +]; +setupMock({ + setup() { + Mock.mock(new RegExp('/api/content-data'), () => { + const presetData = [58, 81, 53, 90, 64, 88, 49, 79]; + const getLineData = () => { + const count = 8; + return new Array(count).fill(0).map((el, idx) => ({ + x: dayjs() + .day(idx - 2) + .format('YYYY-MM-DD'), + y: presetData[idx], + })); + }; + return successResponseWrap([...getLineData()]); + }); + Mock.mock(new RegExp('/api/popular/list'), (params: GetParams) => { + const { type = 'text' } = qs.parseUrl(params.url).query; + if (type === 'image') { + return successResponseWrap([...videoList]); + } + if (type === 'video') { + return successResponseWrap([...imageList]); + } + return successResponseWrap([...textList]); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/exception/403/index.vue b/admin/arco-design-pro-vite/src/views/exception/403/index.vue new file mode 100644 index 0000000..792ccdb --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/403/index.vue @@ -0,0 +1,41 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/exception/403/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/exception/403/locale/en-US.ts new file mode 100644 index 0000000..aecf6f6 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/403/locale/en-US.ts @@ -0,0 +1,6 @@ +export default { + 'menu.exception.403': '403', + 'exception.result.403.description': + 'Access to this resource on the server is denied.', + 'exception.result.403.back': 'Back', +}; diff --git a/admin/arco-design-pro-vite/src/views/exception/403/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/exception/403/locale/zh-CN.ts new file mode 100644 index 0000000..040d26a --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/403/locale/zh-CN.ts @@ -0,0 +1,5 @@ +export default { + 'menu.exception.403': '403', + 'exception.result.403.description': '对不起,您没有访问该资源的权限', + 'exception.result.403.back': '返回', +}; diff --git a/admin/arco-design-pro-vite/src/views/exception/404/index.vue b/admin/arco-design-pro-vite/src/views/exception/404/index.vue new file mode 100644 index 0000000..cdc3795 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/404/index.vue @@ -0,0 +1,47 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/exception/404/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/exception/404/locale/en-US.ts new file mode 100644 index 0000000..6b8839a --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/404/locale/en-US.ts @@ -0,0 +1,6 @@ +export default { + 'menu.exception.404': '404', + 'exception.result.404.description': 'Whoops, this page is gone.', + 'exception.result.404.retry': 'Retry', + 'exception.result.404.back': 'Back', +}; diff --git a/admin/arco-design-pro-vite/src/views/exception/404/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/exception/404/locale/zh-CN.ts new file mode 100644 index 0000000..bf4d1ec --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/404/locale/zh-CN.ts @@ -0,0 +1,6 @@ +export default { + 'menu.exception.404': '404', + 'exception.result.404.description': '抱歉,页面不见了~', + 'exception.result.404.retry': '重试', + 'exception.result.404.back': '返回', +}; diff --git a/admin/arco-design-pro-vite/src/views/exception/500/index.vue b/admin/arco-design-pro-vite/src/views/exception/500/index.vue new file mode 100644 index 0000000..e830b72 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/500/index.vue @@ -0,0 +1,41 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/exception/500/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/exception/500/locale/en-US.ts new file mode 100644 index 0000000..4228ae3 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/500/locale/en-US.ts @@ -0,0 +1,5 @@ +export default { + 'menu.exception.500': '500', + 'exception.result.500.description': 'Internal server error', + 'exception.result.500.back': 'Back', +}; diff --git a/admin/arco-design-pro-vite/src/views/exception/500/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/exception/500/locale/zh-CN.ts new file mode 100644 index 0000000..590a908 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/exception/500/locale/zh-CN.ts @@ -0,0 +1,5 @@ +export default { + 'menu.exception.500': '500', + 'exception.result.500.description': '抱歉,服务器出了点问题~', + 'exception.result.500.back': '返回', +}; diff --git a/admin/arco-design-pro-vite/src/views/finance/config/index.vue b/admin/arco-design-pro-vite/src/views/finance/config/index.vue new file mode 100644 index 0000000..70d66c8 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/finance/config/index.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/finance/records/index.vue b/admin/arco-design-pro-vite/src/views/finance/records/index.vue new file mode 100644 index 0000000..c28b09b --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/finance/records/index.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/finance/withdraw/index.vue b/admin/arco-design-pro-vite/src/views/finance/withdraw/index.vue new file mode 100644 index 0000000..2468319 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/finance/withdraw/index.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/form/group/index.vue b/admin/arco-design-pro-vite/src/views/form/group/index.vue new file mode 100644 index 0000000..baa0f09 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/group/index.vue @@ -0,0 +1,293 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/form/group/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/form/group/locale/en-US.ts new file mode 100644 index 0000000..dde2786 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/group/locale/en-US.ts @@ -0,0 +1,41 @@ +export default { + 'menu.form.group': 'Group Form', + 'groupForm.title.video': 'Video Parameters', + 'groupForm.title.audio': 'Audio Parameters', + 'groupForm.title.description': 'Enter Description', + 'groupForm.form.label.video.mode': 'Match Mode', + 'groupForm.form.label.video.acquisition.resolution': 'Acquisition Resolution', + 'groupForm.form.label.video.acquisition.frameRate': 'Acquisition Frame Rate', + 'groupForm.form.label.video.encoding.resolution': 'Encoding Resolution', + 'groupForm.form.label.video.encoding.rate.min': 'Encoding Min Rate', + 'groupForm.form.label.video.encoding.rate.max': 'Encoding Max Rate', + 'groupForm.form.label.video.encoding.rate.default': 'Encoding Default Rate', + 'groupForm.form.label.video.encoding.frameRate': 'Encoding Frame Rate', + 'groupForm.form.label.video.encoding.profile': 'Encoding Profile', + 'groupForm.placeholder.video.mode': 'Please Select', + 'groupForm.placeholder.video.acquisition.resolution': 'Please Select', + 'groupForm.placeholder.video.acquisition.frameRate': 'Enter Range [1, 30]', + 'groupForm.placeholder.video.encoding.resolution': 'Please Select', + 'groupForm.placeholder.video.encoding.rate.min': 'Enter Range [150, 1800]', + 'groupForm.placeholder.video.encoding.rate.max': 'Enter Range [150, 1800]', + 'groupForm.placeholder.video.encoding.rate.default': + 'Enter Range [150, 1800]', + 'groupForm.placeholder.video.encoding.frameRate': 'Enter Range [1, 30]', + 'groupForm.placeholder.video.encoding.profile': 'Enter Range [150, 1800]', + 'groupForm.form.label.audio.mode': 'Match Mode', + 'groupForm.form.label.audio.acquisition.channels': 'Acquisition Channels', + 'groupForm.form.label.audio.encoding.rate': 'Encoding Rate', + 'groupForm.form.label.audio.encoding.channels': 'Encoding Channels', + 'groupForm.placeholder.audio.encoding.channels': 'Enter Range [150, 1800]', + 'groupForm.form.label.audio.encoding.profile': 'Encoding Profile', + 'groupForm.placeholder.audio.mode': 'Please Select', + 'groupForm.placeholder.audio.acquisition.channels': 'Please Select', + 'groupForm.placeholder.audio.encoding.rate': 'Enter Range [150, 1800]', + 'groupForm.placeholder.audio.encoding.profile': 'Enter Range [1, 30]', + 'groupForm.form.label.parameterDescription': 'Parameter Description', + // https://vue-i18n.intlify.dev/guide/essentials/syntax.html#list-interpolation + 'groupForm.placeholder.description': `Please fill in the parameter description with a maximum of 200 words`, + 'groupForm.submit': 'Submit', + 'groupForm.reset': 'Reset', + 'groupForm.submitSuccess': 'Submit Success', +}; diff --git a/admin/arco-design-pro-vite/src/views/form/group/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/form/group/locale/zh-CN.ts new file mode 100644 index 0000000..d096bce --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/group/locale/zh-CN.ts @@ -0,0 +1,40 @@ +export default { + 'menu.form.group': '分组表单', + 'groupForm.title.video': '视频参数', + 'groupForm.title.audio': '音频参数', + 'groupForm.title.description': '填写说明', + 'groupForm.form.label.video.mode': '匹配模式', + 'groupForm.form.label.video.acquisition.resolution': '采集分辨率', + 'groupForm.form.label.video.acquisition.frameRate': '采集帧率', + 'groupForm.form.label.video.encoding.resolution': '编码分辨率', + 'groupForm.form.label.video.encoding.rate.min': '编码码率最小值', + 'groupForm.form.label.video.encoding.rate.max': '编码码率最大值', + 'groupForm.form.label.video.encoding.rate.default': '编码码率默认值', + 'groupForm.form.label.video.encoding.frameRate': '编码帧率', + 'groupForm.form.label.video.encoding.profile': '编码profile', + 'groupForm.placeholder.video.mode': '请选择', + 'groupForm.placeholder.video.acquisition.resolution': '请选择', + 'groupForm.placeholder.video.acquisition.frameRate': '输入范围[1, 30]', + 'groupForm.placeholder.video.encoding.resolution': '请选择', + 'groupForm.placeholder.video.encoding.rate.min': '输入范围[150, 1800]', + 'groupForm.placeholder.video.encoding.rate.max': '输入范围[150, 1800]', + 'groupForm.placeholder.video.encoding.rate.default': '输入范围[150, 1800]', + 'groupForm.placeholder.video.encoding.frameRate': '输入范围[1, 30]', + 'groupForm.placeholder.video.encoding.profile': '输入范围[150, 1800]', + 'groupForm.form.label.audio.mode': '匹配模式', + 'groupForm.form.label.audio.acquisition.channels': '采集声道数', + 'groupForm.form.label.audio.encoding.rate': '编码码率', + 'groupForm.form.label.audio.encoding.channels': '编码声道数', + 'groupForm.placeholder.audio.encoding.channels': '输入范围[150, 1800]', + 'groupForm.form.label.audio.encoding.profile': '编码profile', + 'groupForm.placeholder.audio.mode': '请选择', + 'groupForm.placeholder.audio.acquisition.channels': '请选择', + 'groupForm.placeholder.audio.encoding.rate': '输入范围[150, 1800]', + 'groupForm.placeholder.audio.encoding.profile': '输入范围[1, 30]', + 'groupForm.form.label.parameterDescription': '参数说明', + // https://vue-i18n.intlify.dev/guide/essentials/syntax.html#list-interpolation + 'groupForm.placeholder.description': `请填写参数说明,最多不超多200字。`, + 'groupForm.submit': '提交', + 'groupForm.reset': '重置', + 'groupForm.submitSuccess': '提交成功', +}; diff --git a/admin/arco-design-pro-vite/src/views/form/step/components/base-info.vue b/admin/arco-design-pro-vite/src/views/form/step/components/base-info.vue new file mode 100644 index 0000000..984f445 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/step/components/base-info.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/form/step/components/channel-info.vue b/admin/arco-design-pro-vite/src/views/form/step/components/channel-info.vue new file mode 100644 index 0000000..88c4078 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/step/components/channel-info.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/form/step/components/success.vue b/admin/arco-design-pro-vite/src/views/form/step/components/success.vue new file mode 100644 index 0000000..c78a645 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/step/components/success.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/form/step/index.vue b/admin/arco-design-pro-vite/src/views/form/step/index.vue new file mode 100644 index 0000000..f9b1cfd --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/step/index.vue @@ -0,0 +1,118 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/form/step/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/form/step/locale/en-US.ts new file mode 100644 index 0000000..cf1dbc0 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/step/locale/en-US.ts @@ -0,0 +1,66 @@ +export default { + 'menu.form.step': 'Step Form', + 'stepForm.step.title': 'Create Channel Forms', + 'stepForm.step.title.baseInfo': 'Select Basic Information', + 'stepForm.step.subTitle.baseInfo': 'Channel creation activities', + 'stepForm.step.title.channel': 'Channel Information', + 'stepForm.step.subTitle.channel': 'Select upstream of domain', + 'stepForm.step.title.finish': 'Finish', + 'stepForm.step.subTitle.finish': 'Submit success', + 'stepForm.success.title': 'Success', + 'stepForm.success.subTitle': 'The form is submitted successfully!', + 'stepForm.button.next': 'Next', + 'stepForm.button.prev': 'Prev', + 'stepForm.button.submit': 'Submit', + 'stepForm.button.again': 'Again', + 'stepForm.button.view': 'Detail', + 'stepForm.label.type.web': 'web domain', + 'stepForm.label.type.api': 'api domain', + // form -1 + 'stepForm.form.label.activityName': 'Activity Name', + 'stepForm.placeholder.activityName': + 'Enter a maximum of 20 Chinese characters, letters, or digits', + 'stepForm.form.error.activityName.pattern': + 'Enter a maximum of 20 Chinese characters, letters, or digits', + 'stepForm.form.error.activityName.required': 'Please enter the activity name', + 'stepForm.form.label.channelType': 'Channel Type', + 'stepForm.placeholder.channelType': 'Select a channel type', + 'stepForm.form.error.channelType.required': 'Please select a channel type', + 'stepForm.form.label.promotionTime': 'Promotion Time', + 'stepForm.form.error.promotionTime.required': + 'Please select the promotion time', + 'stepForm.form.label.promoteLink': 'Promote Link', + 'stepForm.form.error.promoteLink.required': 'Please enter the promotion link', + 'stepForm.form.error.promoteLink.pattern': + 'For example, the download address of Android or iOS or the intermediate URL must start with http:// or https://', + 'stepForm.form.tip.promoteLink': + 'For example, the download address of Android or iOS or the intermediate URL must start with http:// or https://', + 'stepForm.placeholder.promoteLink': 'Please enter the promotion page Link', + + // form -1 end + // form -2 + 'stepForm.form.label.advertisingSource': 'Advertising Source', + 'stepForm.placeholder.advertisingSource': + 'Introduction source address: Sohu, Sina', + 'stepForm.form.error.advertisingSource.required': + 'Please enter the advertising source', + 'stepForm.form.label.advertisingMedia': 'Advertising Media', + 'stepForm.placeholder.advertisingMedia': 'Marketing media: CPC, Banner, EDM', + 'stepForm.form.error.advertisingMedia.required': + 'Please enter the advertising media', + 'stepForm.form.label.keyword': 'keyword', + 'stepForm.placeholder.keyword': 'Please select keyword', + 'stepForm.form.error.keyword.required': 'Please select keyword', + 'stepForm.form.label.pushNotify': 'Push Notify', + 'stepForm.form.label.advertisingContent': 'Advertising Content', + 'stepForm.placeholder.advertisingContent': + 'Please enter the description of advertisement content, the maximum is 200 words', + 'stepForm.form.error.advertisingContent.required': + 'Please enter the description of advertisement content', + 'stepForm.form.error.advertisingContent.maxLength': + 'the maximum is 200 words', + // form -2 end + 'stepForm.form.description.title': 'Channel Form Description', + 'stepForm.form.description.text': + 'Advertiser channel promotion supports tracking of users who download apps by placing ads on third-party advertisers, such as toutiao channel, and tracking users who activate apps by downloading apps through channels.', +}; diff --git a/admin/arco-design-pro-vite/src/views/form/step/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/form/step/locale/zh-CN.ts new file mode 100644 index 0000000..5458b51 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/step/locale/zh-CN.ts @@ -0,0 +1,52 @@ +export default { + 'menu.form.step': '分步表单', + 'stepForm.step.title': '创建渠道表单', + 'stepForm.step.title.baseInfo': '选择基本信息', + 'stepForm.step.subTitle.baseInfo': '创建渠道活动', + 'stepForm.step.title.channel': '输入渠道信息', + 'stepForm.step.subTitle.channel': '输入详细的渠道信息', + 'stepForm.step.title.finish': '完成创建', + 'stepForm.step.subTitle.finish': '创建成功', + 'stepForm.success.title': '提交成功', + 'stepForm.success.subTitle': '表单提交成功!', + 'stepForm.button.next': '下一步', + 'stepForm.button.prev': '上一步', + 'stepForm.button.submit': '提交', + 'stepForm.button.again': '再次创建', + 'stepForm.button.view': '查看详情', + 'stepForm.form.label.activityName': '活动名称', + 'stepForm.placeholder.activityName': '输入汉字、字母或数字,最多20字符', + 'stepForm.form.error.activityName.required': '请输入活动名称', + 'stepForm.form.error.activityName.pattern': + '输入汉字、字母或数字,最多20字符', + 'stepForm.form.label.channelType': '渠道类型', + 'stepForm.placeholder.channelType': '请选择渠道类型', + 'stepForm.form.error.channelType.required': '请选择渠道类型', + 'stepForm.form.label.promotionTime': '推广时间', + 'stepForm.form.error.promotionTime.required': '请选择推广时间', + 'stepForm.form.label.promoteLink': '推广地址', + 'stepForm.form.error.promoteLink.required': '请输入推广地址', + 'stepForm.form.error.promoteLink.pattern': + '如 Android 或 iOS 的下载地址、中间跳转URL,网址必须以 http:// 或 https:// 开头', + 'stepForm.form.tip.promoteLink': + '如 Android 或 iOS 的下载地址、中间跳转URL,网址必须以 http:// 或 https:// 开头', + 'stepForm.placeholder.promoteLink': '请输入推广页面地址', + 'stepForm.form.label.advertisingSource': '广告来源', + 'stepForm.placeholder.advertisingSource': '引荐来源地址:sohu、sina', + 'stepForm.form.error.advertisingSource.required': '请输入广告来源', + 'stepForm.form.label.advertisingMedia': '广告媒介', + 'stepForm.placeholder.advertisingMedia': '营销媒介:cpc、banner、edm', + 'stepForm.form.error.advertisingMedia.required': '请输入广告媒介', + 'stepForm.form.label.keyword': '关键词', + 'stepForm.placeholder.keyword': '请选择关键词', + 'stepForm.form.error.keyword.required': '请选择关键词', + 'stepForm.form.label.pushNotify': '推送提醒', + 'stepForm.form.label.advertisingContent': '广告内容', + 'stepForm.placeholder.advertisingContent': + '请输入广告内容介绍,最多不超过200字。', + 'stepForm.form.error.advertisingContent.required': '请输入广告内容', + 'stepForm.form.error.advertisingContent.maxLength': '最多不超过200字', + 'stepForm.form.description.title': '渠道表单说明', + 'stepForm.form.description.text': + '广告商渠道推广支持追踪在第三方广告商投放广告下载App用户的场景,例如在今日头条渠道投放下载App广告,追踪通过在渠道下载激活App的用户。', +}; diff --git a/admin/arco-design-pro-vite/src/views/form/step/mock.ts b/admin/arco-design-pro-vite/src/views/form/step/mock.ts new file mode 100644 index 0000000..c4228db --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/form/step/mock.ts @@ -0,0 +1,11 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +setupMock({ + setup() { + // submit + Mock.mock(new RegExp('/api/channel-form/submit'), () => { + return successResponseWrap('ok'); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/list/card/components/card-wrap.vue b/admin/arco-design-pro-vite/src/views/list/card/components/card-wrap.vue new file mode 100644 index 0000000..9b876d8 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/card/components/card-wrap.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/list/card/components/quality-inspection.vue b/admin/arco-design-pro-vite/src/views/list/card/components/quality-inspection.vue new file mode 100644 index 0000000..88167b6 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/card/components/quality-inspection.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/list/card/components/rules-preset.vue b/admin/arco-design-pro-vite/src/views/list/card/components/rules-preset.vue new file mode 100644 index 0000000..e5a2878 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/card/components/rules-preset.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/list/card/components/the-service.vue b/admin/arco-design-pro-vite/src/views/list/card/components/the-service.vue new file mode 100644 index 0000000..2f4748e --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/card/components/the-service.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/list/card/index.vue b/admin/arco-design-pro-vite/src/views/list/card/index.vue new file mode 100644 index 0000000..038cf87 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/card/index.vue @@ -0,0 +1,92 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/list/card/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/list/card/locale/en-US.ts new file mode 100644 index 0000000..6b0681e --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/card/locale/en-US.ts @@ -0,0 +1,19 @@ +export default { + 'menu.list.cardList': 'Card List', + 'cardList.tab.title.all': 'All', + 'cardList.tab.title.content': 'Quality Inspection', + 'cardList.tab.title.service': 'The service', + 'cardList.tab.title.preset': 'Rules Preset', + 'cardList.searchInput.placeholder': 'Search', + 'cardList.enable': 'Enable', + 'cardList.disable': 'Disable', + 'cardList.content.delete': 'Delete', + 'cardList.content.inspection': 'Inspection', + 'cardList.content.action': 'Click Create Qc Content queue', + 'cardList.service.open': 'Open', + 'cardList.service.cancel': 'Cancel', + 'cardList.service.renew': 'Contract of service', + 'cardList.service.tag': 'Opened', + 'cardList.service.expiresTag': 'Expired', + 'cardList.preset.tag': 'Enable', +}; diff --git a/admin/arco-design-pro-vite/src/views/list/card/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/list/card/locale/zh-CN.ts new file mode 100644 index 0000000..0cd29e7 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/card/locale/zh-CN.ts @@ -0,0 +1,19 @@ +export default { + 'menu.list.cardList': '卡片列表', + 'cardList.tab.title.all': '全部', + 'cardList.tab.title.content': '内容质检', + 'cardList.tab.title.service': '开通服务', + 'cardList.tab.title.preset': '规则预置', + 'cardList.searchInput.placeholder': '搜索', + // 'cardList.statistic.enable': '已启用', + // 'cardList.statistic.disable': '未启用', + 'cardList.content.delete': '删除', + 'cardList.content.inspection': '质检', + 'cardList.content.action': '点击创建质检内容队列', + 'cardList.service.open': '开通服务', + 'cardList.service.cancel': '取消服务', + 'cardList.service.renew': '续约服务', + 'cardList.service.tag': '已开通', + 'cardList.service.expiresTag': '已过期', + 'cardList.preset.tag': '已启用', +}; diff --git a/admin/arco-design-pro-vite/src/views/list/card/mock.ts b/admin/arco-design-pro-vite/src/views/list/card/mock.ts new file mode 100644 index 0000000..68cf096 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/card/mock.ts @@ -0,0 +1,186 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; +import { ServiceRecord } from '@/api/list'; + +const qualityInspectionList: ServiceRecord[] = [ + { + id: 1, + name: 'quality', + title: '视频类-历史导入', + description: '2021-10-12 00:00:00', + data: [ + { + label: '待质检数', + value: '120', + }, + { + label: '积压时长', + value: '60s', + }, + { + label: '待抽检数', + value: '0', + }, + ], + }, + { + id: 2, + name: 'quality', + title: '图文类-图片版权', + description: '2021-12-11 18:30:00', + data: [ + { + label: '待质检数', + value: '120', + }, + { + label: '积压时长', + value: '60s', + }, + { + label: '待抽检数', + value: '0', + }, + ], + }, + { + id: 3, + name: 'quality', + title: '图文类-高清图片', + description: '2021-10-15 08:10:00', + data: [ + { + label: '待质检数', + value: '120', + }, + { + label: '积压时长', + value: '60s', + }, + { + label: '待抽检数', + value: '0', + }, + ], + }, +]; +const theServiceList: ServiceRecord[] = [ + { + id: 1, + icon: 'code', + title: '漏斗分析', + description: + '用户行为分析之漏斗分析模型是企业实现精细化运营、进行用户行为分析的重要数据分析模型。', + enable: true, + actionType: 'button', + }, + { + id: 2, + icon: 'edit', + title: '用户分布', + description: + '快速诊断用户人群,地域细分情况,了解数据分布的集中度,以及主要的数据分布的区间段是什么。', + enable: true, + actionType: 'button', + expires: true, + }, + { + id: 3, + icon: 'user', + title: '资源分发', + description: + '移动端动态化资源分发解决方案。提供稳定大流量服务支持、灵活定制的分发圈选规则,通过离线化预加载。', + enable: false, + actionType: 'button', + }, + { + id: 4, + icon: 'user', + title: '用户画像分析', + description: + '用户画像就是将典型用户信息标签化,根据用户特征、业务场景和用户行为等信息,构建一个标签化的用户模型。', + enable: true, + actionType: 'button', + }, +]; +const rulesPresetList: ServiceRecord[] = [ + { + id: 1, + title: '内容屏蔽规则', + description: + '用户在执行特定的内容分发任务时,可使用内容屏蔽规则根据特定标签,过滤内容集合。', + enable: true, + actionType: 'switch', + }, + { + id: 2, + title: '内容置顶规则', + description: + '该规则支持用户在执行特定内容分发任务时,对固定的几条内容置顶。', + enable: true, + actionType: 'switch', + }, + { + id: 3, + title: '内容加权规则', + description: '选定内容加权规则后可自定义从不同内容集合获取内容的概率。', + enable: false, + actionType: 'switch', + }, + { + id: 4, + title: '内容分发规则', + description: '内容分发时,对某些内容需要固定在C端展示的位置。', + enable: true, + actionType: 'switch', + }, + { + id: 5, + title: '违禁内容识别', + description: '精准识别赌博、刀枪、毒品、造假、贩假等违规物品和违规行为。', + enable: false, + actionType: 'switch', + }, + { + id: 6, + title: '多语言文字符号识别', + description: + '精准识别英语、维语、藏语、蒙古语、朝鲜语等多种语言以及emoji表情形态的语义识别。', + enable: false, + actionType: 'switch', + }, +]; + +setupMock({ + setup() { + // Quality Inspection + Mock.mock(new RegExp('/api/list/quality-inspection'), () => { + return successResponseWrap( + qualityInspectionList.map((_, index) => ({ + ...qualityInspectionList[index % qualityInspectionList.length], + id: Mock.Random.guid(), + })) + ); + }); + + // the service + Mock.mock(new RegExp('/api/list/the-service'), () => { + return successResponseWrap( + theServiceList.map((_, index) => ({ + ...theServiceList[index % theServiceList.length], + id: Mock.Random.guid(), + })) + ); + }); + + // rules preset + Mock.mock(new RegExp('/api/list/rules-preset'), () => { + return successResponseWrap( + rulesPresetList.map((_, index) => ({ + ...rulesPresetList[index % rulesPresetList.length], + id: Mock.Random.guid(), + })) + ); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/list/search-table/index.vue b/admin/arco-design-pro-vite/src/views/list/search-table/index.vue new file mode 100644 index 0000000..e232195 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/search-table/index.vue @@ -0,0 +1,514 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/list/search-table/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/list/search-table/locale/en-US.ts new file mode 100644 index 0000000..c5ac332 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/search-table/locale/en-US.ts @@ -0,0 +1,44 @@ +export default { + 'menu.list.searchTable': 'Search Table', + 'searchTable.form.number': 'Set Number', + 'searchTable.form.number.placeholder': 'Please enter Set Number', + 'searchTable.form.name': 'Set Name', + 'searchTable.form.name.placeholder': 'Please enter Set Name', + 'searchTable.form.contentType': 'Content Type', + 'searchTable.form.contentType.img': 'image-text', + 'searchTable.form.contentType.horizontalVideo': 'Horizontal short video', + 'searchTable.form.contentType.verticalVideo': 'Vertical short video', + 'searchTable.form.filterType': 'Filter Type', + 'searchTable.form.filterType.artificial': 'artificial', + 'searchTable.form.filterType.rules': 'Rules', + 'searchTable.form.createdTime': 'Create Date', + 'searchTable.form.status': 'Status', + 'searchTable.form.status.online': 'Online', + 'searchTable.form.status.offline': 'Offline', + 'searchTable.form.search': 'Search', + 'searchTable.form.reset': 'Reset', + 'searchTable.form.selectDefault': 'All', + 'searchTable.operation.create': 'Create', + 'searchTable.operation.import': 'Import', + 'searchTable.operation.download': 'Download', + // columns + 'searchTable.columns.index': '#', + 'searchTable.columns.number': 'Set Number', + 'searchTable.columns.name': 'Set Name', + 'searchTable.columns.contentType': 'Content Type', + 'searchTable.columns.filterType': 'Filter Type', + 'searchTable.columns.count': 'Count', + 'searchTable.columns.createdTime': 'CreatedTime', + 'searchTable.columns.status': 'Status', + 'searchTable.columns.operations': 'Operations', + 'searchTable.columns.operations.view': 'View', + // size + 'searchTable.size.mini': 'mini', + 'searchTable.size.small': 'small', + 'searchTable.size.medium': 'middle', + 'searchTable.size.large': 'large', + // actions + 'searchTable.actions.refresh': 'refresh', + 'searchTable.actions.density': 'density', + 'searchTable.actions.columnSetting': 'columnSetting', +}; diff --git a/admin/arco-design-pro-vite/src/views/list/search-table/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/list/search-table/locale/zh-CN.ts new file mode 100644 index 0000000..ca4cd44 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/search-table/locale/zh-CN.ts @@ -0,0 +1,45 @@ +export default { + 'menu.list.searchTable': '查询表格', + 'searchTable.form.number': '集合编号', + 'searchTable.form.number.placeholder': '请输入集合编号', + 'searchTable.form.name': '集合名称', + 'searchTable.form.name.placeholder': '请输入集合名称', + 'searchTable.form.contentType': '内容体裁', + 'searchTable.form.contentType.img': '图文', + 'searchTable.form.contentType.horizontalVideo': '横版短视频', + 'searchTable.form.contentType.verticalVideo': '竖版小视频', + 'searchTable.form.filterType': '筛选方式', + 'searchTable.form.filterType.artificial': '人工筛选', + 'searchTable.form.filterType.rules': '规则筛选', + 'searchTable.form.createdTime': '创建时间', + 'searchTable.form.status': '状态', + 'searchTable.form.status.online': '已上线', + 'searchTable.form.status.offline': '已下线', + 'searchTable.form.search': '查询', + 'searchTable.form.reset': '重置', + 'searchTable.form.selectDefault': '全部', + 'searchTable.operation.create': '新建', + 'searchTable.operation.import': '批量导入', + 'searchTable.operation.download': '下载', + // columns + 'searchTable.columns.index': '#', + 'searchTable.columns.number': '集合编号', + 'searchTable.columns.name': '集合名称', + 'searchTable.columns.contentType': '内容体裁', + 'searchTable.columns.filterType': '筛选方式', + 'searchTable.columns.count': '内容量', + 'searchTable.columns.createdTime': '创建时间', + 'searchTable.columns.status': '状态', + 'searchTable.columns.operations': '操作', + 'searchTable.columns.operations.view': '查看', + + // size + 'searchTable.size.mini': '迷你', + 'searchTable.size.small': '偏小', + 'searchTable.size.medium': '中等', + 'searchTable.size.large': '偏大', + // actions + 'searchTable.actions.refresh': '刷新', + 'searchTable.actions.density': '密度', + 'searchTable.actions.columnSetting': '列设置', +}; diff --git a/admin/arco-design-pro-vite/src/views/list/search-table/mock.ts b/admin/arco-design-pro-vite/src/views/list/search-table/mock.ts new file mode 100644 index 0000000..2742c1b --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/list/search-table/mock.ts @@ -0,0 +1,35 @@ +import Mock from 'mockjs'; +import qs from 'query-string'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; +import { GetParams } from '@/types/global'; + +const { Random } = Mock; + +const data = Mock.mock({ + 'list|55': [ + { + 'id|8': /[A-Z][a-z][-][0-9]/, + 'number|2-3': /[0-9]/, + 'name|4-8': /[A-Z]/, + 'contentType|1': ['img', 'horizontalVideo', 'verticalVideo'], + 'count|2-3': /[0-9]/, + 'status|1': ['online', 'offline'], + 'filterType|1': ['artificial', 'rules'], + 'createdTime': Random.datetime(), + }, + ], +}); + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/list/policy'), (params: GetParams) => { + const { current = 1, pageSize = 10 } = qs.parseUrl(params.url).query; + const p = current as number; + const ps = pageSize as number; + return successResponseWrap({ + list: data.list.slice((p - 1) * ps, p * ps), + total: 55, + }); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/login/components/banner.vue b/admin/arco-design-pro-vite/src/views/login/components/banner.vue new file mode 100644 index 0000000..aabb110 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/login/components/banner.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/login/components/login-form.vue b/admin/arco-design-pro-vite/src/views/login/components/login-form.vue new file mode 100644 index 0000000..2c3b21c --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/login/components/login-form.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/login/index.vue b/admin/arco-design-pro-vite/src/views/login/index.vue new file mode 100644 index 0000000..1b518df --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/login/index.vue @@ -0,0 +1,81 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/login/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/login/locale/en-US.ts new file mode 100644 index 0000000..81a50a4 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/login/locale/en-US.ts @@ -0,0 +1,21 @@ +export default { + 'login.form.title': 'Login to Arco Design Pro', + 'login.form.userName.errMsg': 'Username cannot be empty', + 'login.form.password.errMsg': 'Password cannot be empty', + 'login.form.login.errMsg': 'Login error, refresh and try again', + 'login.form.login.success': 'welcome to use', + 'login.form.userName.placeholder': 'Username: admin', + 'login.form.password.placeholder': 'Password: admin', + 'login.form.rememberPassword': 'Remember password', + 'login.form.forgetPassword': 'Forgot password', + 'login.form.login': 'login', + 'login.form.register': 'register account', + 'login.banner.slogan1': 'Out-of-the-box high-quality template', + 'login.banner.subSlogan1': + 'Rich page templates, covering most typical business scenarios', + 'login.banner.slogan2': 'Built-in solutions to common problems', + 'login.banner.subSlogan2': + 'Internationalization, routing configuration, state management everything', + 'login.banner.slogan3': 'Access visualization enhancement tool AUX', + 'login.banner.subSlogan3': 'Realize flexible block development', +}; diff --git a/admin/arco-design-pro-vite/src/views/login/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/login/locale/zh-CN.ts new file mode 100644 index 0000000..c2de7b5 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/login/locale/zh-CN.ts @@ -0,0 +1,19 @@ +export default { + 'login.form.title': '登录同城陪伴运营控制台', + 'login.form.userName.errMsg': '用户名不能为空', + 'login.form.password.errMsg': '密码不能为空', + 'login.form.login.errMsg': '登录出错,轻刷新重试', + 'login.form.login.success': '欢迎使用', + 'login.form.userName.placeholder': '用户名:admin', + 'login.form.password.placeholder': '密码:admin', + 'login.form.rememberPassword': '记住密码', + 'login.form.forgetPassword': '忘记密码', + 'login.form.login': '登录', + 'login.form.register': '注册账号', + 'login.banner.slogan1': '开箱即用的高质量模板', + 'login.banner.subSlogan1': '丰富的的页面模板,覆盖大多数典型业务场景', + 'login.banner.slogan2': '内置了常见问题的解决方案', + 'login.banner.subSlogan2': '国际化,路由配置,状态管理应有尽有', + 'login.banner.slogan3': '接入可视化增强工具AUX', + 'login.banner.subSlogan3': '实现灵活的区块式开发', +}; diff --git a/admin/arco-design-pro-vite/src/views/not-found/index.vue b/admin/arco-design-pro-vite/src/views/not-found/index.vue new file mode 100644 index 0000000..c525f3c --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/not-found/index.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/order/arbitration/index.vue b/admin/arco-design-pro-vite/src/views/order/arbitration/index.vue new file mode 100644 index 0000000..d49a601 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/order/arbitration/index.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/order/list/index.vue b/admin/arco-design-pro-vite/src/views/order/list/index.vue new file mode 100644 index 0000000..9216257 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/order/list/index.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/profile/basic/components/operation-log.vue b/admin/arco-design-pro-vite/src/views/profile/basic/components/operation-log.vue new file mode 100644 index 0000000..82804e1 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/profile/basic/components/operation-log.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/profile/basic/components/profile-item.vue b/admin/arco-design-pro-vite/src/views/profile/basic/components/profile-item.vue new file mode 100644 index 0000000..460aee6 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/profile/basic/components/profile-item.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/profile/basic/index.vue b/admin/arco-design-pro-vite/src/views/profile/basic/index.vue new file mode 100644 index 0000000..25f78a5 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/profile/basic/index.vue @@ -0,0 +1,83 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/profile/basic/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/profile/basic/locale/en-US.ts new file mode 100644 index 0000000..38a3ad6 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/profile/basic/locale/en-US.ts @@ -0,0 +1,39 @@ +export default { + 'menu.profile.basic': 'Basic Profile', + 'basicProfile.title.form': 'Parameter Approval Process Table', + 'basicProfile.steps.commit': 'Commit', + 'basicProfile.steps.approval': 'Approval', + 'basicProfile.steps.finish': 'Finish', + 'basicProfile.title.currentParams': 'Current Parameters', + 'basicProfile.title.originParams': 'Original Parameters', + 'basicProfile.title.video': 'Video Parameters', + 'basicProfile.title.audio': 'Audio Parameters', + 'basicProfile.title.preVideo': 'Original video parameters', + 'basicProfile.title.preAudio': 'Original audio parameters', + 'basicProfile.label.video.mode': 'Match Mode', + 'basicProfile.label.video.acquisition.resolution': 'Acquisition Resolution', + 'basicProfile.label.video.acquisition.frameRate': 'Acquisition Frame Rate', + 'basicProfile.label.video.encoding.resolution': 'Encoding Resolution', + 'basicProfile.label.video.encoding.rate.min': 'Encoding Min Rate', + 'basicProfile.label.video.encoding.rate.max': 'Encoding Max Rate', + 'basicProfile.label.video.encoding.rate.default': 'Encoding Default Rate', + 'basicProfile.label.video.encoding.frameRate': 'Encoding Frame Rate', + 'basicProfile.label.video.encoding.profile': 'Encoding Profile', + 'basicProfile.label.audio.mode': 'Match Mode', + 'basicProfile.label.audio.acquisition.channels': 'Acquisition Channels', + 'basicProfile.label.audio.encoding.channels': 'Encoding Channels', + 'basicProfile.label.audio.encoding.rate': 'Encoding Rate', + 'basicProfile.label.audio.encoding.profile': 'Encoding Profile', + 'basicProfile.unit.audio.channels': 'channels', + 'basicProfile.goBack': 'GoBack', + 'basicProfile.cancel': 'Cancel Process', + 'basicProfile.title.operationLog': 'Operation Log', + 'basicProfile.column.contentNumber': 'Content Number', + 'basicProfile.column.updateContent': 'Update Content', + 'basicProfile.column.status': 'Status', + 'basicProfile.column.updateTime': 'Update Time', + 'basicProfile.column.operation': 'Operation', + 'basicProfile.cell.pass': 'Pass', + 'basicProfile.cell.auditing': 'Auditing', + 'basicProfile.cell.view': 'View', +}; diff --git a/admin/arco-design-pro-vite/src/views/profile/basic/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/profile/basic/locale/zh-CN.ts new file mode 100644 index 0000000..1715e96 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/profile/basic/locale/zh-CN.ts @@ -0,0 +1,39 @@ +export default { + 'menu.profile.basic': '基础详情页', + 'basicProfile.title.form': '参数审批流程表', + 'basicProfile.steps.commit': '提交修改', + 'basicProfile.steps.approval': '审批中', + 'basicProfile.steps.finish': '修改完成', + 'basicProfile.title.currentParams': '修改后参数', + 'basicProfile.title.originParams': '原参数', + 'basicProfile.title.video': '现视频参数', + 'basicProfile.title.preVideo': '原视频参数', + 'basicProfile.title.audio': '现音频参数', + 'basicProfile.title.preAudio': '原音频参数', + 'basicProfile.label.video.mode': '匹配模式', + 'basicProfile.label.video.acquisition.resolution': '采集分辨率', + 'basicProfile.label.video.acquisition.frameRate': '采集帧率', + 'basicProfile.label.video.encoding.resolution': '编码分辨率', + 'basicProfile.label.video.encoding.rate.min': '编码码率最小值', + 'basicProfile.label.video.encoding.rate.max': '编码码率最大值', + 'basicProfile.label.video.encoding.rate.default': '编码码率默认值', + 'basicProfile.label.video.encoding.frameRate': '编码帧率', + 'basicProfile.label.video.encoding.profile': '编码profile', + 'basicProfile.label.audio.mode': '匹配模式', + 'basicProfile.label.audio.acquisition.channels': '采集声道数', + 'basicProfile.label.audio.encoding.channels': '编码声道数', + 'basicProfile.label.audio.encoding.rate': '编码码率', + 'basicProfile.label.audio.encoding.profile': '编码 profile', + 'basicProfile.unit.audio.channels': '声道', + 'basicProfile.goBack': '返回', + 'basicProfile.cancel': '取消流程', + 'basicProfile.title.operationLog': '参数调整记录', + 'basicProfile.column.contentNumber': '内容编号', + 'basicProfile.column.updateContent': '调整内容', + 'basicProfile.column.status': '当前状态', + 'basicProfile.column.updateTime': '修改时间', + 'basicProfile.column.operation': '操作', + 'basicProfile.cell.pass': '已通过', + 'basicProfile.cell.auditing': '审核中', + 'basicProfile.cell.view': '查看', +}; diff --git a/admin/arco-design-pro-vite/src/views/profile/basic/mock.ts b/admin/arco-design-pro-vite/src/views/profile/basic/mock.ts new file mode 100644 index 0000000..ea0bb1a --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/profile/basic/mock.ts @@ -0,0 +1,58 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/profile/basic'), () => { + return successResponseWrap({ + status: 2, + video: { + mode: '自定义', + acquisition: { + resolution: '720*1280', + frameRate: 15, + }, + encoding: { + resolution: '720*1280', + rate: { + min: 300, + max: 800, + default: 1500, + }, + frameRate: 15, + profile: 'high', + }, + }, + audio: { + mode: '自定义', + acquisition: { + channels: 8, + }, + encoding: { + channels: 8, + rate: 128, + profile: 'ACC-LC', + }, + }, + }); + }); + Mock.mock(new RegExp('/api/operation/log'), () => { + return successResponseWrap([ + { + key: '1', + contentNumber: '视频类001003', + updateContent: '视频参数变更', + status: 0, + updateTime: '2021-02-28 10:30:50', + }, + { + key: '2', + contentNumber: '视频类058212', + updateContent: '视频参数变更;音频参数变更', + status: 1, + updateTime: '2020-05-13 08:00:00', + }, + ]); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/redirect/index.vue b/admin/arco-design-pro-vite/src/views/redirect/index.vue new file mode 100644 index 0000000..59930af --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/redirect/index.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/result/error/index.vue b/admin/arco-design-pro-vite/src/views/result/error/index.vue new file mode 100644 index 0000000..bf56264 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/result/error/index.vue @@ -0,0 +1,77 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/result/error/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/result/error/locale/en-US.ts new file mode 100644 index 0000000..a1dab33 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/result/error/locale/en-US.ts @@ -0,0 +1,13 @@ +export default { + 'menu.result.error': 'Error', + 'error.result.title': 'Submit Error', + 'error.result.subTitle': 'Submit form error', + 'error.result.goBack': 'Go Back', + 'error.result.retry': 'return for correction', + 'error.detailTitle': 'Details of Error', + 'error.detailLine.record': + 'The current domain name has not been registered, please check the registration process: ', + 'error.detailLine.record.link': 'Registration Process', + 'error.detailLine.auth': + 'Your user group does not have the authority to perform this operation;', +}; diff --git a/admin/arco-design-pro-vite/src/views/result/error/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/result/error/locale/zh-CN.ts new file mode 100644 index 0000000..3e64cdb --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/result/error/locale/zh-CN.ts @@ -0,0 +1,11 @@ +export default { + 'menu.result.error': '失败页', + 'error.result.title': '提交失败', + 'error.result.subTitle': '表单提交失败,请重试。', + 'error.result.goBack': '回到首页', + 'error.result.retry': '返回修改', + 'error.detailTitle': '错误详情', + 'error.detailLine.record': '当前域名未备案,备案流程请查看:', + 'error.detailLine.record.link': '备案流程', + 'error.detailLine.auth': '你的用户组不具有进行此操作的权限;', +}; diff --git a/admin/arco-design-pro-vite/src/views/result/success/index.vue b/admin/arco-design-pro-vite/src/views/result/success/index.vue new file mode 100644 index 0000000..3ae92b5 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/result/success/index.vue @@ -0,0 +1,99 @@ + + + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/result/success/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/result/success/locale/en-US.ts new file mode 100644 index 0000000..a3d8af0 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/result/success/locale/en-US.ts @@ -0,0 +1,15 @@ +export default { + 'menu.result.success': 'Success', + 'success.result.title': 'Submit Success', + 'success.result.subTitle': 'Submit form success!', + 'success.result.printResult': 'Print result', + 'success.result.projectList': 'Project List', + 'success.result.progress': 'Progress', + 'success.submitApplication': 'Submit Application', + 'success.leaderReview': 'Leader Review', + 'success.purchaseCertificate': 'Purchase Certificate', + 'success.safetyTest': 'Safety Test', + 'success.launched': 'Officially launched', + 'success.waiting': 'Waiting', + 'success.processing': 'Processing', +}; diff --git a/admin/arco-design-pro-vite/src/views/result/success/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/result/success/locale/zh-CN.ts new file mode 100644 index 0000000..24dbe32 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/result/success/locale/zh-CN.ts @@ -0,0 +1,15 @@ +export default { + 'menu.result.success': '成功页', + 'success.result.title': '提交成功', + 'success.result.subTitle': '表单提交成功!', + 'success.result.printResult': '打印结果', + 'success.result.projectList': '返回项目列表', + 'success.result.progress': '当前进度', + 'success.submitApplication': '提交申请', + 'success.leaderReview': '直属领导审核', + 'success.purchaseCertificate': '购买证书', + 'success.safetyTest': '安全测试', + 'success.launched': '正式上线', + 'success.waiting': '未开始', + 'success.processing': '进行中', +}; diff --git a/admin/arco-design-pro-vite/src/views/safety/audit-log/index.vue b/admin/arco-design-pro-vite/src/views/safety/audit-log/index.vue new file mode 100644 index 0000000..464e99c --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/safety/audit-log/index.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/safety/places/index.vue b/admin/arco-design-pro-vite/src/views/safety/places/index.vue new file mode 100644 index 0000000..7991fcd --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/safety/places/index.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/info/components/latest-activity.vue b/admin/arco-design-pro-vite/src/views/user/info/components/latest-activity.vue new file mode 100644 index 0000000..3d67a9a --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/components/latest-activity.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/info/components/latest-notification.vue b/admin/arco-design-pro-vite/src/views/user/info/components/latest-notification.vue new file mode 100644 index 0000000..fc39afe --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/components/latest-notification.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/info/components/my-project.vue b/admin/arco-design-pro-vite/src/views/user/info/components/my-project.vue new file mode 100644 index 0000000..6905a99 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/components/my-project.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/info/components/my-team.vue b/admin/arco-design-pro-vite/src/views/user/info/components/my-team.vue new file mode 100644 index 0000000..51eda3e --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/components/my-team.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/info/components/user-info-header.vue b/admin/arco-design-pro-vite/src/views/user/info/components/user-info-header.vue new file mode 100644 index 0000000..57c4959 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/components/user-info-header.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/info/index.vue b/admin/arco-design-pro-vite/src/views/user/info/index.vue new file mode 100644 index 0000000..0b99563 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/index.vue @@ -0,0 +1,87 @@ + + + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/info/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/user/info/locale/en-US.ts new file mode 100644 index 0000000..d81fba6 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/locale/en-US.ts @@ -0,0 +1,15 @@ +export default { + 'menu.user.info': 'User Info', + 'userInfo.editUserInfo': 'Edit Info', + 'userInfo.tab.title.overview': 'Overview', + 'userInfo.tab.title.project': 'Project', + 'userInfo.tab.title.team': 'My Team', + 'userInfo.title.latestActivity': 'Latest Activity', + 'userInfo.title.latestNotification': 'In-site Notification', + 'userInfo.title.myProject': 'My Project', + 'userInfo.showMore': 'Show More', + 'userInfo.viewAll': 'View All', + 'userInfo.nodata': 'No Data', + 'userInfo.visits.unit': 'times', + 'userInfo.visits.lastMonth': 'Last Month', +}; diff --git a/admin/arco-design-pro-vite/src/views/user/info/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/user/info/locale/zh-CN.ts new file mode 100644 index 0000000..e2d3844 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/locale/zh-CN.ts @@ -0,0 +1,15 @@ +export default { + 'menu.user.info': '用户信息', + 'userInfo.editUserInfo': '编辑信息', + 'userInfo.tab.title.overview': '总览', + 'userInfo.tab.title.project': '项目', + 'userInfo.tab.title.team': '我的团队', + 'userInfo.title.latestActivity': '最新动态', + 'userInfo.title.latestNotification': '站内通知', + 'userInfo.title.myProject': '我的项目', + 'userInfo.showMore': '查看更多', + 'userInfo.viewAll': '查看全部', + 'userInfo.nodata': '暂无数据', + 'userInfo.visits.unit': '人次', + 'userInfo.visits.lastMonth': '较上月', +}; diff --git a/admin/arco-design-pro-vite/src/views/user/info/mock.ts b/admin/arco-design-pro-vite/src/views/user/info/mock.ts new file mode 100644 index 0000000..7f6913e --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/info/mock.ts @@ -0,0 +1,162 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +setupMock({ + setup() { + // 最新项目 + Mock.mock(new RegExp('/api/user/my-project/list'), () => { + const contributors = [ + { + name: '秦臻宇', + email: 'qingzhenyu@arco.design', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp', + }, + { + name: '于涛', + email: 'yuebao@arco.design', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp', + }, + { + name: '宁波', + email: 'ningbo@arco.design', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp', + }, + { + name: '郑曦月', + email: 'zhengxiyue@arco.design', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/8361eeb82904210b4f55fab888fe8416.png~tplv-uwbnlip3yd-webp.webp', + }, + { + name: '宁波', + email: 'ningbo@arco.design', + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp', + }, + ]; + const units = [ + { + name: '企业级产品设计系统', + description: 'Arco Design System', + }, + { + name: '火山引擎智能应用', + description: 'The Volcano Engine', + }, + { + name: 'OCR文本识别', + description: 'OCR text recognition', + }, + { + name: '内容资源管理', + description: 'Content resource management ', + }, + { + name: '今日头条内容管理', + description: 'Toutiao content management', + }, + { + name: '智能机器人', + description: 'Intelligent Robot Project', + }, + ]; + return successResponseWrap( + new Array(6).fill(null).map((_item, index) => ({ + id: index, + name: units[index].name, + description: units[index].description, + peopleNumber: Mock.Random.natural(10, 1000), + contributors, + })) + ); + }); + + // 最新动态 + Mock.mock(new RegExp('/api/user/latest-activity'), () => { + return successResponseWrap( + new Array(7).fill(null).map((_item, index) => ({ + id: index, + title: '发布了项目 Arco Design System', + description: '企业级产品设计系统', + avatar: + '//lf1-xgcdn-tos.pstatp.com/obj/vcloud/vadmin/start.8e0e4855ee346a46ccff8ff3e24db27b.png', + })) + ); + }); + + // 访问量 + Mock.mock(new RegExp('/api/user/visits'), () => { + return successResponseWrap([ + { + name: '主页访问量', + visits: 5670, + growth: 206.32, + }, + { + name: '项目访问量', + visits: 5670, + growth: 206.32, + }, + ]); + }); + + // 项目和团队列表 + Mock.mock(new RegExp('/api/user/project-and-team/list'), () => { + return successResponseWrap([ + { + id: 1, + content: '他创建的项目', + }, + { + id: 2, + content: '他参与的项目', + }, + { + id: 3, + content: '他创建的团队', + }, + { + id: 4, + content: '他加入的团队', + }, + ]); + }); + + // 团队列表 + Mock.mock(new RegExp('/api/user/my-team/list'), () => { + return successResponseWrap([ + { + id: 1, + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp', + name: '火山引擎智能应用团队', + peopleNumber: Mock.Random.natural(10, 100), + }, + { + id: 2, + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp', + name: '企业级产品设计团队', + peopleNumber: Mock.Random.natural(5000, 6000), + }, + { + id: 3, + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp', + name: '前端/UE小分队', + peopleNumber: Mock.Random.natural(10, 5000), + }, + { + id: 4, + avatar: + '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/8361eeb82904210b4f55fab888fe8416.png~tplv-uwbnlip3yd-webp.webp', + name: '内容识别插件小分队', + peopleNumber: Mock.Random.natural(10, 100), + }, + ]); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/user/list/index.vue b/admin/arco-design-pro-vite/src/views/user/list/index.vue new file mode 100644 index 0000000..42c4681 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/list/index.vue @@ -0,0 +1,978 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/setting/components/basic-information.vue b/admin/arco-design-pro-vite/src/views/user/setting/components/basic-information.vue new file mode 100644 index 0000000..84c938b --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/components/basic-information.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/setting/components/certification-records.vue b/admin/arco-design-pro-vite/src/views/user/setting/components/certification-records.vue new file mode 100644 index 0000000..4c57696 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/components/certification-records.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/setting/components/certification.vue b/admin/arco-design-pro-vite/src/views/user/setting/components/certification.vue new file mode 100644 index 0000000..1cc5e8e --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/components/certification.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/setting/components/enterprise-certification.vue b/admin/arco-design-pro-vite/src/views/user/setting/components/enterprise-certification.vue new file mode 100644 index 0000000..9a2bdee --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/components/enterprise-certification.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/setting/components/security-settings.vue b/admin/arco-design-pro-vite/src/views/user/setting/components/security-settings.vue new file mode 100644 index 0000000..a60f561 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/components/security-settings.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/setting/components/user-panel.vue b/admin/arco-design-pro-vite/src/views/user/setting/components/user-panel.vue new file mode 100644 index 0000000..e86106f --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/components/user-panel.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/setting/index.vue b/admin/arco-design-pro-vite/src/views/user/setting/index.vue new file mode 100644 index 0000000..7305c82 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/index.vue @@ -0,0 +1,57 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/user/setting/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/user/setting/locale/en-US.ts new file mode 100644 index 0000000..a15cf87 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/locale/en-US.ts @@ -0,0 +1,91 @@ +export default { + 'menu.user.setting': 'User Setting', + 'userSetting.menu.title.info': 'Personal Information', + 'userSetting.menu.title.account': 'Account Setting', + 'userSetting.menu.title.password': 'Password', + 'userSetting.menu.title.message': 'Message Notification', + 'userSetting.menu.title.result': 'Result', + 'userSetting.menu.title.data': 'Export Data', + 'userSetting.saveSuccess': 'Save Success', + 'userSetting.title.basicInfo': 'Basic Information', + 'userSetting.title.socialInfo': 'Social Information', + 'userSetting.label.avatar': 'Avatar', + 'userSetting.label.name': 'User Name', + 'userSetting.label.location': 'Office Location', + 'userSetting.label.introduction': 'Introduction', + 'userSetting.label.personalWebsite': 'Website', + 'userSetting.save': 'Save', + 'userSetting.cancel': 'Cancel', + 'userSetting.reset': 'Reset', + // new + 'userSetting.label.certification': 'Certification', + 'userSetting.label.phone': 'Phone', + 'userSetting.label.accountId': 'Account Id', + 'userSetting.label.registrationDate': 'Registration Date', + 'userSetting.tab.basicInformation': 'Basic Information', + 'userSetting.tab.securitySettings': 'Security Settings', + 'userSetting.tab.certification': 'Certification', + 'userSetting.basicInfo.form.label.email': 'Email', + 'userSetting.basicInfo.placeholder.email': `Please enter your email address, such as xxx{'@'}bytedance.com`, + 'userSetting.form.error.email.required': 'Please enter email address', + 'userSetting.basicInfo.form.label.nickname': 'Nickname', + 'userSetting.basicInfo.placeholder.nickname': 'Please enter nickname', + 'userSetting.form.error.nickname.required': 'Please enter nickname', + 'userSetting.basicInfo.form.label.countryRegion': 'Country/region', + 'userSetting.basicInfo.placeholder.countryRegion': + 'Please select country/region', + 'userSetting.form.error.countryRegion.required': + 'Please select country/region', + 'userSetting.basicInfo.form.label.area': 'Area', + 'userSetting.basicInfo.placeholder.area': 'Please select area', + 'userSetting.form.error.area.required': 'Please Select a area', + 'userSetting.basicInfo.form.label.address': 'Address', + 'userSetting.basicInfo.placeholder.address': 'Please enter address', + 'userSetting.basicInfo.form.label.profile': 'Personal profile', + 'userSetting.basicInfo.placeholder.profile': + 'Please enter your profile, no more than 200 words', + 'userSetting.form.error.profile.maxLength': 'No more than 200 words', + 'userSetting.SecuritySettings.form.label.password': 'Login Password', + 'userSetting.SecuritySettings.placeholder.password': + 'Has been set. The password must contain at least six letters, digits, and special characters except Spaces. The password must contain both uppercase and lowercase letters.', + 'userSetting.SecuritySettings.form.label.securityQuestion': + 'Security Question', + 'userSetting.SecuritySettings.placeholder.securityQuestion': + 'You have not set the password protection question. The password protection question can effectively protect the account security.', + 'userSetting.SecuritySettings.form.label.phone': 'Phone', + // 'userSetting.SecuritySettings.placeholder.phone': '已绑定:150******50', + 'userSetting.SecuritySettings.form.label.email': 'Email', + 'userSetting.SecuritySettings.placeholder.email': + 'You have not set a mailbox yet. The mailbox binding can be used to retrieve passwords and receive notifications.', + 'userSetting.SecuritySettings.button.settings': 'Settings', + 'userSetting.SecuritySettings.button.update': 'Update', + 'userSetting.certification.title.enterprise': + 'Enterprise Real Name Authentication', + 'userSetting.certification.extra.enterprise': + 'Modifying an Authentication Body', + 'userSetting.certification.label.accountType': 'Account Type', + 'userSetting.certification.label.status': 'status', + 'userSetting.certification.label.time': 'time', + 'userSetting.certification.label.legalPerson': 'Legal Person Name', + 'userSetting.certification.label.certificateType': + 'Types of legal person documents', + 'userSetting.certification.label.authenticationNumber': + 'Legal person certification number', + 'userSetting.certification.label.enterpriseName': 'Enterprise Name', + 'userSetting.certification.label.enterpriseCertificateType': + 'Types of corporate certificates', + 'userSetting.certification.label.organizationCode': 'Organization Code', + 'userSetting.certification.title.record': 'Certification Records', + 'userSetting.certification.columns.certificationType': 'Certification Type', + 'userSetting.certification.cell.certificationType': + 'Enterprise certificate Certification', + 'userSetting.certification.columns.certificationContent': + 'Certification Content', + 'userSetting.certification.columns.status': 'Status', + 'userSetting.certification.cell.pass': 'Pass', + 'userSetting.certification.cell.auditing': 'Auditing', + 'userSetting.certification.columns.time': 'Time', + 'userSetting.certification.columns.operation': 'Operation', + 'userSetting.certification.button.check': 'Check', + 'userSetting.certification.button.withdraw': 'Withdraw', +}; diff --git a/admin/arco-design-pro-vite/src/views/user/setting/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/user/setting/locale/zh-CN.ts new file mode 100644 index 0000000..9ad6332 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/locale/zh-CN.ts @@ -0,0 +1,81 @@ +export default { + 'menu.user.setting': '用户设置', + 'userSetting.menu.title.info': '个人信息', + 'userSetting.menu.title.account': '账号设置', + 'userSetting.menu.title.password': '密码', + 'userSetting.menu.title.message': '消息通知', + 'userSetting.menu.title.result': '结果页', + 'userSetting.menu.title.data': '导出数据', + 'userSetting.saveSuccess': '保存成功', + 'userSetting.title.basicInfo': '基本信息', + 'userSetting.title.socialInfo': '社交信息', + 'userSetting.label.avatar': '头像', + 'userSetting.label.name': '用户名', + 'userSetting.label.location': '办公地点', + 'userSetting.label.introduction': '个人简介', + 'userSetting.label.personalWebsite': '个人网站', + 'userSetting.save': '保存', + 'userSetting.cancel': '取消', + 'userSetting.reset': '重置', + // new + 'userSetting.label.certification': '实名认证', + 'userSetting.label.phone': '手机号码', + 'userSetting.label.accountId': '账号ID', + 'userSetting.label.registrationDate': '注册时间', + 'userSetting.tab.basicInformation': '基础信息', + 'userSetting.tab.securitySettings': '安全设置', + 'userSetting.tab.certification': '实名认证', + 'userSetting.basicInfo.form.label.email': '邮箱', + 'userSetting.basicInfo.placeholder.email': `请输入邮箱地址,如xxx{'@'}bytedance.com`, + 'userSetting.form.error.email.required': '请输入邮箱', + 'userSetting.basicInfo.form.label.nickname': '昵称', + 'userSetting.basicInfo.placeholder.nickname': '请输入您的昵称', + 'userSetting.form.error.nickname.required': '请输入昵称', + 'userSetting.basicInfo.form.label.countryRegion': '国家/地区', + 'userSetting.basicInfo.placeholder.countryRegion': '请选择', + 'userSetting.form.error.countryRegion.required': '请选择国家/地区', + 'userSetting.basicInfo.form.label.area': '所在区域', + 'userSetting.basicInfo.placeholder.area': '请选择', + 'userSetting.form.error.area.required': '请选择所在区域', + 'userSetting.basicInfo.form.label.address': '具体地址', + 'userSetting.basicInfo.placeholder.address': '请输入您的地址', + 'userSetting.basicInfo.form.label.profile': '个人简介', + 'userSetting.basicInfo.placeholder.profile': + '请输入您的个人简介,最多不超过200字。', + 'userSetting.form.error.profile.maxLength': '最多不超过200字', + 'userSetting.SecuritySettings.form.label.password': '登录密码', + 'userSetting.SecuritySettings.placeholder.password': + '已设置。密码至少6位字符,支持数字、字母和除空格外的特殊字符,且必须同时包含数字和大小写字母。', + 'userSetting.SecuritySettings.form.label.securityQuestion': '密保问题', + 'userSetting.SecuritySettings.placeholder.securityQuestion': + '您暂未设置密保问题,密保问题可以有效的保护账号的安全。', + 'userSetting.SecuritySettings.form.label.phone': '安全手机', + // 'userSetting.SecuritySettings.placeholder.phone': '已绑定:150******50', + 'userSetting.SecuritySettings.form.label.email': '安全邮箱', + 'userSetting.SecuritySettings.placeholder.email': + '您暂未设置邮箱,绑定邮箱可以用来找回密码、接收通知等。', + 'userSetting.SecuritySettings.button.settings': '设置', + 'userSetting.SecuritySettings.button.update': '修改', + 'userSetting.certification.title.enterprise': '企业实名认证', + 'userSetting.certification.extra.enterprise': '修改认证主体', + 'userSetting.certification.label.accountType': '账号类型', + 'userSetting.certification.label.status': '认证状态', + 'userSetting.certification.label.time': '认证时间', + 'userSetting.certification.label.legalPerson': '法人姓名', + 'userSetting.certification.label.certificateType': '法人证件类型', + 'userSetting.certification.label.authenticationNumber': '法人认证号码', + 'userSetting.certification.label.enterpriseName': '企业名称', + 'userSetting.certification.label.enterpriseCertificateType': '企业证件类型', + 'userSetting.certification.label.organizationCode': '组织机构代码', + 'userSetting.certification.title.record': '认证记录', + 'userSetting.certification.columns.certificationType': '认证类型', + 'userSetting.certification.cell.certificationType': '企业证件认证', + 'userSetting.certification.columns.certificationContent': '认证内容', + 'userSetting.certification.columns.status': '当前状态', + 'userSetting.certification.cell.pass': '已通过', + 'userSetting.certification.cell.auditing': '审核中', + 'userSetting.certification.columns.time': '创建时间', + 'userSetting.certification.columns.operation': '操作', + 'userSetting.certification.button.check': '查看', + 'userSetting.certification.button.withdraw': '撤回', +}; diff --git a/admin/arco-design-pro-vite/src/views/user/setting/mock.ts b/admin/arco-design-pro-vite/src/views/user/setting/mock.ts new file mode 100644 index 0000000..99e1045 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/user/setting/mock.ts @@ -0,0 +1,42 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/user/save-info'), () => { + return successResponseWrap('ok'); + }); + Mock.mock(new RegExp('/api/user/certification'), () => { + return successResponseWrap({ + enterpriseInfo: { + accountType: '企业账号', + status: 0, + time: '2018-10-22 14:53:12', + legalPerson: '李**', + certificateType: '中国身份证', + authenticationNumber: '130************123', + enterpriseName: '低调有实力的企业', + enterpriseCertificateType: '企业营业执照', + organizationCode: '7*******9', + }, + record: [ + { + certificationType: 1, + certificationContent: '企业实名认证,法人姓名:李**', + status: 0, + time: '2021-02-28 10:30:50', + }, + { + certificationType: 1, + certificationContent: '企业实名认证,法人姓名:李**', + status: 1, + time: '2020-05-13 08:00:00', + }, + ], + }); + }); + Mock.mock(new RegExp('/api/user/upload'), () => { + return successResponseWrap('ok'); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/chain-item.vue b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/chain-item.vue new file mode 100644 index 0000000..6eba77e --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/chain-item.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/content-period-analysis.vue b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/content-period-analysis.vue new file mode 100644 index 0000000..acf0a9f --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/content-period-analysis.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/content-publish-ratio.vue b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/content-publish-ratio.vue new file mode 100644 index 0000000..128952c --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/content-publish-ratio.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/popular-author.vue b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/popular-author.vue new file mode 100644 index 0000000..648d69f --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/popular-author.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/public-opinion.vue b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/public-opinion.vue new file mode 100644 index 0000000..c0c59b9 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/components/public-opinion.vue @@ -0,0 +1,65 @@ + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/index.vue b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/index.vue new file mode 100644 index 0000000..0c4417a --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/index.vue @@ -0,0 +1,65 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/locale/en-US.ts new file mode 100644 index 0000000..476af0d --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/locale/en-US.ts @@ -0,0 +1,16 @@ +export default { + 'menu.visualization.dataAnalysis': 'Analysis', + 'dataAnalysis.title.publicOpinion': 'Public Opinion Analysis', + 'dataAnalysis.card.title.allVisitors': 'All Visitors', + 'dataAnalysis.card.title.contentPublished': 'Content Published', + 'dataAnalysis.card.title.totalComment': 'Total Comment', + 'dataAnalysis.card.title.totalShare': 'Total Share', + 'dataAnalysis.card.yesterday': 'Yesterday', + 'dataAnalysis.contentPublishRatio': 'Content Publishing Ratio', + 'dataAnalysis.popularAuthor': 'Popular Author', + 'dataAnalysis.popularAuthor.column.ranking': 'ranking', + 'dataAnalysis.popularAuthor.column.author': 'author', + 'dataAnalysis.popularAuthor.column.content': 'Content Number', + 'dataAnalysis.popularAuthor.column.click': 'Click Number', + 'dataAnalysis.contentPeriodAnalysis': 'Content Period Analysis', +}; diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/locale/zh-CN.ts new file mode 100644 index 0000000..7003ebc --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/locale/zh-CN.ts @@ -0,0 +1,16 @@ +export default { + 'menu.visualization.dataAnalysis': '分析页', + 'dataAnalysis.title.publicOpinion': '舆情分析', + 'dataAnalysis.card.title.allVisitors': '访问总人次', + 'dataAnalysis.card.title.contentPublished': '内容发布量', + 'dataAnalysis.card.title.totalComment': '评论总量', + 'dataAnalysis.card.title.totalShare': '分享总量', + 'dataAnalysis.card.yesterday': '较昨日', + 'dataAnalysis.contentPublishRatio': '内容发布比例', + 'dataAnalysis.popularAuthor': '热门作者榜单', + 'dataAnalysis.popularAuthor.column.ranking': '排名', + 'dataAnalysis.popularAuthor.column.author': '作者', + 'dataAnalysis.popularAuthor.column.content': '内容量', + 'dataAnalysis.popularAuthor.column.click': '点击量', + 'dataAnalysis.contentPeriodAnalysis': '内容时段分析', +}; diff --git a/admin/arco-design-pro-vite/src/views/visualization/data-analysis/mock.ts b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/mock.ts new file mode 100644 index 0000000..ff216eb --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/data-analysis/mock.ts @@ -0,0 +1,108 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; +import { PostData } from '@/types/global'; + +setupMock({ + setup() { + Mock.mock( + new RegExp('/api/public-opinion-analysis'), + (params: PostData) => { + const { quota = 'visitors' } = JSON.parse(params.body); + if (['visitors', 'comment'].includes(quota)) { + const year = new Date().getFullYear(); + const getLineData = (name: number) => { + return new Array(12).fill(0).map((_item, index) => ({ + x: `${index + 1}月`, + y: Mock.Random.natural(0, 100), + name: String(name), + })); + }; + return successResponseWrap({ + count: 5670, + growth: 206.32, + chartData: [...getLineData(year), ...getLineData(year - 1)], + }); + } + if (['published'].includes(quota)) { + const year = new Date().getFullYear(); + const getLineData = (name: number) => { + return new Array(12).fill(0).map((_item, index) => ({ + x: `${index + 1}日`, + y: Mock.Random.natural(20, 100), + name: String(name), + })); + }; + return successResponseWrap({ + count: 5670, + growth: 206.32, + chartData: [...getLineData(year)], + }); + } + return successResponseWrap({ + count: 5670, + growth: 206.32, + chartData: [ + // itemStyle for demo + { name: '文本类', value: 25, itemStyle: { color: '#8D4EDA' } }, + { name: '图文类', value: 35, itemStyle: { color: '#165DFF' } }, + { name: '视频类', value: 40, itemStyle: { color: '#00B2FF' } }, + ], + }); + } + ); + + Mock.mock(new RegExp('/api/content-period-analysis'), () => { + const getLineData = (name: string) => { + return { + name, + value: new Array(12).fill(0).map(() => Mock.Random.natural(30, 90)), + }; + }; + return successResponseWrap({ + xAxis: new Array(12).fill(0).map((_item, index) => `${index * 2}:00`), + data: [ + getLineData('纯文本'), + getLineData('图文类'), + getLineData('视频类'), + ], + }); + }); + + Mock.mock(new RegExp('/api/content-publish'), () => { + const generateLineData = (name: string) => { + const result = { + name, + x: [] as string[], + y: [] as number[], + }; + new Array(12).fill(0).forEach((_item, index) => { + result.x.push(`${index * 2}:00`); + result.y.push(Mock.Random.natural(1000, 3000)); + }); + return result; + }; + return successResponseWrap([ + generateLineData('纯文本'), + generateLineData('图文类'), + generateLineData('视频类'), + ]); + }); + + Mock.mock(new RegExp('/api/popular-author/list'), () => { + const generateData = () => { + const list = new Array(7).fill(0).map((_item, index) => ({ + ranking: index + 1, + author: Mock.mock('@ctitle(5)'), + contentCount: Mock.mock(/[0-9]{4}/), + clickCount: Mock.mock(/[0-9]{4}/), + })); + return { + list, + }; + }; + return successResponseWrap({ + ...generateData(), + }); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/chain-item.vue b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/chain-item.vue new file mode 100644 index 0000000..9fbdd11 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/chain-item.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/content-publishing-source.vue b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/content-publishing-source.vue new file mode 100644 index 0000000..c549e34 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/content-publishing-source.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/content-type-distribution.vue b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/content-type-distribution.vue new file mode 100644 index 0000000..850b524 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/content-type-distribution.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/data-chain-growth.vue b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/data-chain-growth.vue new file mode 100644 index 0000000..168d9d0 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/data-chain-growth.vue @@ -0,0 +1,38 @@ + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/data-overview.vue b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/data-overview.vue new file mode 100644 index 0000000..bb1bab5 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/data-overview.vue @@ -0,0 +1,310 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/user-actions.vue b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/user-actions.vue new file mode 100644 index 0000000..60949c7 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/components/user-actions.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/index.vue b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/index.vue new file mode 100644 index 0000000..d52296c --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/index.vue @@ -0,0 +1,55 @@ + + + + + + + diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/locale/en-US.ts b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/locale/en-US.ts new file mode 100644 index 0000000..6d1ed02 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/locale/en-US.ts @@ -0,0 +1,18 @@ +export default { + 'menu.visualization.multiDimensionDataAnalysis': 'Multi-D Analysis', + 'multiDAnalysis.card.title.dataOverview': 'Overview', + 'multiDAnalysis.dataOverview.contentProduction': 'Content Production', + 'multiDAnalysis.dataOverview.contentClick': 'Content Click', + 'multiDAnalysis.dataOverview.contentExposure': 'Content Exposure', + 'multiDAnalysis.dataOverview.activeUsers': 'Active Users', + 'multiDAnalysis.card.title.userActions': 'User Actions', + 'multiDAnalysis.card.title.contentTypeDistribution': + 'Content Type Distribution', + 'multiDAnalysis.card.title.retentionTrends': 'Retention Trends', + 'multiDAnalysis.card.title.userRetention': 'User Retention', + 'multiDAnalysis.card.title.contentConsumptionTrends': + 'Content Consumption Trends', + 'multiDAnalysis.card.title.contentConsumption': 'Content Consumption', + 'multiDAnalysis.card.title.contentPublishingSource': + 'Content Publishing Source', +}; diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/locale/zh-CN.ts b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/locale/zh-CN.ts new file mode 100644 index 0000000..d61edb5 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/locale/zh-CN.ts @@ -0,0 +1,15 @@ +export default { + 'menu.visualization.multiDimensionDataAnalysis': '多维数据分析', + 'multiDAnalysis.card.title.dataOverview': '数据总览', + 'multiDAnalysis.dataOverview.contentProduction': '内容生产量', + 'multiDAnalysis.dataOverview.contentClick': '内容点击量', + 'multiDAnalysis.dataOverview.contentExposure': '内容曝光量', + 'multiDAnalysis.dataOverview.activeUsers': '活跃用户数', + 'multiDAnalysis.card.title.userActions': '今日转评赞统计', + 'multiDAnalysis.card.title.contentTypeDistribution': '内容题材分布', + 'multiDAnalysis.card.title.retentionTrends': '用户留存趋势', + 'multiDAnalysis.card.title.userRetention': '用户留存量', + 'multiDAnalysis.card.title.contentConsumptionTrends': '内容消费趋势', + 'multiDAnalysis.card.title.contentConsumption': '内容消费量', + 'multiDAnalysis.card.title.contentPublishingSource': '内容发布来源', +}; diff --git a/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/mock.ts b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/mock.ts new file mode 100644 index 0000000..3f233d1 --- /dev/null +++ b/admin/arco-design-pro-vite/src/views/visualization/multi-dimension-data-analysis/mock.ts @@ -0,0 +1,49 @@ +import Mock from 'mockjs'; +import setupMock, { successResponseWrap } from '@/utils/setup-mock'; +import { PostData } from '@/types/global'; + +setupMock({ + setup() { + Mock.mock(new RegExp('/api/data-chain-growth'), (params: PostData) => { + const { quota } = JSON.parse(params.body); + const getLineData = () => { + return { + xAxis: new Array(12).fill(0).map((_item, index) => `${index + 1}日`), + data: { + name: quota, + value: new Array(12) + .fill(0) + .map(() => Mock.Random.natural(1000, 3000)), + }, + }; + }; + return successResponseWrap({ + count: Mock.Random.natural(1000, 3000), + growth: Mock.Random.float(20, 100, 2, 2), + chartData: getLineData(), + }); + }); + // v2 + Mock.mock(new RegExp('/api/data-overview'), () => { + const generateLineData = (name: string) => { + return { + name, + count: Mock.Random.natural(20, 2000), + value: new Array(8).fill(0).map(() => Mock.Random.natural(800, 4000)), + }; + }; + const xAxis = new Array(8).fill(0).map((_item, index) => { + return `12.1${index}`; + }); + return successResponseWrap({ + xAxis, + data: [ + generateLineData('内容生产量'), + generateLineData('内容点击量'), + generateLineData('内容曝光量'), + generateLineData('活跃用户数'), + ], + }); + }); + }, +}); diff --git a/admin/arco-design-pro-vite/tsconfig.json b/admin/arco-design-pro-vite/tsconfig.json new file mode 100644 index 0000000..c025998 --- /dev/null +++ b/admin/arco-design-pro-vite/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ES2020", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + }, + "lib": ["es2020", "dom"], + "skipLibCheck": true + }, + "include": ["src/**/*", "src/**/*.vue"], + "exclude": ["node_modules"] +} diff --git a/admin/commitlint.config.js b/admin/commitlint.config.js new file mode 100644 index 0000000..84dcb12 --- /dev/null +++ b/admin/commitlint.config.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['@commitlint/config-conventional'], +}; diff --git a/admin/docs/changelog.md b/admin/docs/changelog.md new file mode 100644 index 0000000..e4cf8b2 --- /dev/null +++ b/admin/docs/changelog.md @@ -0,0 +1,396 @@ +# Arco Design Pro Vue v2.0 + +## v2.7.3 + +`2023-04-26` + +### 🐛 Bugfix + +- Use 'admin' instead. + +## v2.7.2 + +`2023-04-11` + +### 🐛 Bugfix + +- Use @arco-plugins/vite-vue to replace vite-plugin-style-import. + +`2023-04-04` + +### 🐛 Bugfix + +- Environmental parameter adjustment.[#253](https://github.com/arco-design/arco-design-pro-vue/pull/253) +- Update the unplugin-vue-components plugin and component library.[#275](https://github.com/arco-design/arco-design-pro-vue/issues/275) + +## v2.7.0 + +`2023-03-21` + +### 🆕 Feature + +- Replace yarn with pnpm. [#247](https://github.com/arco-design/arco-design-pro-vue/pull/247) + +### 🐛 Bugfix + +- Added legacy configuration to i18n.[#253](https://github.com/arco-design/arco-design-pro-vue/pull/253) + +## v2.6.1 + +`2023-02-07` + +### 💎 Optimization + +- Added the status of the language switch button in the top navigation bar.[#243](https://github.com/arco-design/arco-design-pro-vue/pull/243) + +### 🐛 Bugfix + +- Using Npm to install dependencies fails. +- Plug-in build error problem. [#224](https://github.com/arco-design/arco-design-pro-vue/pull/244) +- MenuCollapse configuration does not take effect. [#232](https://github.com/arco-design/arco-design-pro-vue/issues/232) + +## v2.6.0 + +`2023-01-10` + +### 🆕 Feature + +- Add a top menu bar.[#236](https://github.com/arco-design/arco-design-pro-vue/pull/236) + +### 🐛 Bugfix + +- Commit failure caused by dependency upgrade.[#235](https://github.com/arco-design/arco-design-pro-vue/issues/235) +- Build resources not injected into Html caused by upgrading Vite.[#225](https://github.com/arco-design/arco-design-pro-vue/issues/225) + +## v2.5.15 + +`2022-12-20` + +### 🐛 Bugfix + +- Multilevel menu expansion problem. [#177](https://github.com/arco-design/arco-design-pro-vue/pull/177) +- Related dependencies and packaging configuration updates. [#224](https://github.com/arco-design/arco-design-pro-vue/pull/224) + +## v2.5.14 + +`2022-11-15` + +### 🐛 Bugfix + +- Menu data copy function property in route object is lost. [#200](https://github.com/arco-design/arco-design-pro-vue/pull/200) +- Chart data content does not match.[#189](https://github.com/arco-design/arco-design-pro-vue/pull/189) + +## v2.5.13 + +`2022-10-17` + +### 🐛 Bugfix + +- yarn.lock source modification. [#188](https://github.com/arco-design/arco-design-pro-vue/issues/188) +- import.meta.glob migrations. [#187](https://github.com/arco-design/arco-design-pro-vue/pull/187) + +## v2.5.12 + +`2022-10-11` + +### 💎 Optimization + +- The query form page function is added. [#181](https://github.com/arco-design/arco-design-pro-vue/pull/181) + +### 🐛 Bugfix + +- Update the dependency package version. [#179](https://github.com/arco-design/arco-design-pro-vue/issues/179) + +## v2.5.11 + +`2022-09-14` + +### 🐛 Bugfix + +- Vue-echarts auto resize problem. [#174](https://github.com/arco-design/arco-design-pro-vue/pull/174) +- Multi times route change listen. [#162](https://github.com/arco-design/arco-design-pro-vue/pull/162) + +## v2.5.10 + +`2022-08-16` + +### 🐛 Bugfix + +- Supplementary cache cleaning for page reloads.[#159](https://github.com/arco-design/arco-design-pro-vue/issues/159) +- Login logic can execute while loading.[#160](https://github.com/arco-design/arco-design-pro-vue/pull/160) + +## v2.5.9 + +`2022-08-10` + +### 💎 Optimization + +- Multi-tab page reloading feature. [#150](https://github.com/arco-design/arco-design-pro-vue/issues/150) +- Preprocessing of user information error capture redirection. [#153](https://github.com/arco-design/arco-design-pro-vue/pull/153) + +## v2.5.8 + +`2022-08-02` + +### 💎 Optimization + +- Component library dependency upgrades. +- Added useVisible hook. + +## v2.5.7 + +`2022-07-05` + +### 💎 Optimization + +- Multi-tab optimization, add left-click operation. + +## v2.5.6 + +`2022-06-28` + +### 💎 Optimization + +- Improve the routing configuration item Typescript type definition. + +## v2.5.5 + +`2022-06-21` + +### 🐛 Bugfix + +- Multi-tab Tag style adjustment. +- Remove redundant mock data. + +## v2.5.4 + +`2022-06-14` + +### 🐛 Bugfix + +- The server menu function does not work. [#121](https://github.com/arco-design/arco-design-pro-vue/pull/121) +- Variable naming correction. [#122](https://github.com/arco-design/arco-design-pro-vue/pull/122) + +## v2.5.3 + +`2022-06-07` + +### 💎 Optimization + +- Adjust the import method of the ts interface.[#110](https://github.com/arco-design/arco-design-pro-vue/pull/110) + +### 🐛 Bugfix + +- The problem that the menu item cannot be clicked after clicking the external link.[#111](https://github.com/arco-design/arco-design-pro-vue/pull/111) +- Menu expansion and configuration issues fixed.[#114](https://github.com/arco-design/arco-design-pro-vue/pull/114) + +## v2.5.2 + +`2022-05-31` + +### 💎 Optimization + +- First-level menu chain adjustment and DEMO. [#102](https://github.com/arco-design/arco-design-pro-vue/pull/102) +- Page jump, automatically open the corresponding parent menu.[#97](https://github.com/arco-design/arco-design-pro-vue/pull/97) + +### 🐛 Bugfix + +- Build errors caused by component library upgrades.[#101](https://github.com/arco-design/arco-design-pro-vue/pull/101) + +## v2.5.1 + +`2022-05-24` + +### 💎 Optimization + +- The menu supports external links. [#83](https://github.com/arco-design/arco-design-pro-vue/pull/91) + +### 🐛 Bugfix + +- fix the problem that color weak switch's default value is always false. [#87](https://github.com/arco-design/arco-design-pro-vue/pull/87) +- Switch role error. [#84](https://github.com/arco-design/arco-design-pro-vue/issues/84) + +## v2.5.0 + +`2022-05-17` + +### 🆕 Feature + +- Added full screen function.[#83](https://github.com/arco-design/arco-design-pro-vue/pull/83) +- Added preview script. + +### 💎 Optimization + +- Added activeMenu configuration.[#76](https://github.com/arco-design/arco-design-pro-vue/issues/76)[#80](https://github.com/arco-design/arco-design-pro-vue/issues/80) + +### 🐛 Bugfix + +- Hide child menu items problem.[#76](https://github.com/arco-design/arco-design-pro-vue/issues/76) +- Update vue-tsc version. [#61](https://github.com/arco-design/arco-design-pro-vue/issues/61) + +## v2.4.1 + +`2022-05-10` + +### 🐛 Bugfix + +- Simple mode menu text display problem. + +## v2.4.0 + +`2022-05-10` + +### 🆕 Feature + +- Added server-side menu configuration feature.[#75](https://github.com/arco-design/arco-design-pro-vue/pull/75) + +### 💎 Optimization + +- The routing level is flattened and page caching is supported.[#74](https://github.com/arco-design/arco-design-pro-vue/pull/74) + +### 🐛 Bugfix + +- The problem of building TS errors caused by the upgrade of the arco component library.[#74](https://github.com/arco-design/arco-design-pro-vue/pull/74) +- The file cannot be found problem caused by the upgrade of the arco component library.[#71](https://github.com/arco-design/arco-design-pro-vue/issues/71) + +## v2.3.6 + +`2022-04-26` + +### 🆕 Feature + +- Login page remember password function. + +### 💎 Optimization + +- Menu components added support for top-level items.[#59](https://github.com/arco-design/arco-design-pro-vue/pull/59) + +### 🐛 Bugfix + +- Fixed tab bar first click invalid.[#64](https://github.com/arco-design/arco-design-pro-vue/issues/64) +- Fix not found page redirects. + +## v2.3.4 + +`2022-04-12` + +### 💎 Optimization + +- Login route configuration adjustment。[#50](https://github.com/arco-design/arco-design-pro-vue/pull/50) + +## v2.3.3 + +`2022-03-29` + +### 🆕 Feature + +- Add custom upload case. + +### 🐛 Bugfix + +- Fix the problem that page cache does not take effect. +- Fix tab bar scrolling style issue. [#44](https://github.com/arco-design/arco-design-pro-vue/pull/44) + +## v2.3.2 + +`2022-03-22` + +### 🆕 Feature + +- Add multi-tab and page cache。 + +### 🐛 Bugfix + +- Fix the problem that the global settings switch is not displayed. +- Avoid double submit on @keyup.enter. [#42](https://github.com/arco-design/arco-design-pro-vue/pull/42) + +## v2.3.1 + +`2022-03-15` + +### 🐛 Bugfix + +- Fix the problem of unsuccessful initialization caused by vite-plugin-imagemin. + +## v2.3.0 + +`2022-03-15` + +### 🆕 Feature + +- Code refactoring using setup script. +- Routes are automatically imported. + +### 💎 Optimization + +- Packaging optimization. +- Responsive processing and small screen display optimization. + +## v2.2.5 + +`2022-03-08` + +### 🆕 Feature + +- Added the function of setting the corresponding api base URL according to different operating environments. [#29](https://github.com/arco-design/arco-design-pro-vue/pull/29) + +### 💎 Optimization + +- Responsive processing and small screen display optimization. +- Route monitoring performance optimization. + +### 🐛 Bugfix + +- Optional chain causes item initialization to fail. [#31](https://github.com/arco-design/arco-design-pro-vue/issues/31) +- Fixed the bug that i18n did not set allowComposition and could not start under windows.[#32](https://github.com/arco-design/arco-design-pro-vue/pull/32) + +## v2.2.4 + +`2022-03-01` + +### 🐛 Bugfix + +- Fix the problem that the component does not take effect after switching the language. [#27](https://github.com/arco-design/arco-design-pro-vue/issues/27) +- Delete easy mode missing files. + +### 💎 Optimization + +- The basic configuration of vite is extracted. + +## v2.2.3 + +`2022-02-22` + +### 💎 Optimization + +- HideInMenu field was added to route configuration. + +### 🆕 Feature + +- Initializing projects supports simple mode. (**Need to upgrade `@arco-design/arco-cli` to `1.26.0`**) + +## v2.2.0 + +`2022-01-25` + +### 💎 Optimization + +- Icon to replace. + +### 🆕 Feature + +- Add permission management. +- Support jsx syntax. + +## v2.1.0 + +`2022-01-18` + +### 💎 Optimization + +- ECharts configuration hook usage optimization. +- ESLint reported an error when initializing the project. + +### 🆕 Feature + +- Migrate Vuex to Pinia. ([#7](https://github.com/arco-design/arco-design-pro-vue/pull/7)) diff --git a/admin/docs/changelog.zh-CN.md b/admin/docs/changelog.zh-CN.md new file mode 100644 index 0000000..7ae5165 --- /dev/null +++ b/admin/docs/changelog.zh-CN.md @@ -0,0 +1,398 @@ +# Arco Design Pro Vue v2.0 + +## v2.7.3 + +`2023-04-26` + +### 🐛 问题修复 + +- 使用 'admin' 替代名称。 + +## v2.7.2 + +`2023-04-11` + +### 🐛 问题修复 + +- 使用 @arco-plugins/vite-vue 替代 vite-plugin-style-import。 + +## v2.7.1 + +`2023-04-04` + +### 🐛 问题修复 + +- 环境参数调整。[#253](https://github.com/arco-design/arco-design-pro-vue/pull/253) +- 更新 unplugin-vue-components 插件及组件库。[#275](https://github.com/arco-design/arco-design-pro-vue/issues/275) + +## v2.7.0 + +`2023-03-21` + +### 🆕 新增功能 + +- 使用 pnpm 替换 yarn。[#247](https://github.com/arco-design/arco-design-pro-vue/pull/247) + +### 🐛 问题修复 + +- i18n 增加 legacy 配置。[#253](https://github.com/arco-design/arco-design-pro-vue/pull/253) + +## v2.6.1 + +`2023-02-07` + +### 💎 功能优化 + +- 增添顶部导航栏语言切换按钮状态。[#243](https://github.com/arco-design/arco-design-pro-vue/pull/243) + +### 🐛 问题修复 + +- 使用 Npm 安装依赖失败问题。 +- 插件构建报错问题。[#224](https://github.com/arco-design/arco-design-pro-vue/pull/244) +- MenuCollapse 配置不生效 [#232](https://github.com/arco-design/arco-design-pro-vue/issues/232) + +## v2.6.0 + +`2023-01-10` + +### 🆕 新增功能 + +- 添加顶部菜单栏。[#236](https://github.com/arco-design/arco-design-pro-vue/pull/236) + +### 🐛 问题修复 + +- 依赖升级导致的 Commit 失败问题。[#235](https://github.com/arco-design/arco-design-pro-vue/issues/235) +- 升级 Vite 导致的构建资源未注入 Html 问题。[#225](https://github.com/arco-design/arco-design-pro-vue/issues/225) + +## v2.5.15 + +`2022-12-20` + +### 🐛 问题修复 + +- 多级菜单展开问题。[#177](https://github.com/arco-design/arco-design-pro-vue/pull/177) +- 相关依赖及打包配置更新。[#224](https://github.com/arco-design/arco-design-pro-vue/pull/224) + +## v2.5.14 + +`2022-11-15` + +### 🐛 问题修复 + +- 菜单数据拷贝 route 对象中的函数属性丢失。[#200](https://github.com/arco-design/arco-design-pro-vue/pull/200) +- 图表数据内容不匹配。[#189](https://github.com/arco-design/arco-design-pro-vue/pull/189) + +## v2.5.13 + +`2022-10-17` + +### 🐛 问题修复 + +- yarn.lock 源修改。[#188](https://github.com/arco-design/arco-design-pro-vue/issues/188) +- import.meta.glob 迁移。[#187](https://github.com/arco-design/arco-design-pro-vue/pull/187) + +## v2.5.12 + +`2022-10-11` + +### 💎 功能优化 + +- 查询表格页面功能补充。[#181](https://github.com/arco-design/arco-design-pro-vue/pull/181) + +### 🐛 问题修复 + +- 更新依赖包版本。[#179](https://github.com/arco-design/arco-design-pro-vue/issues/179) + +## v2.5.11 + +`2022-09-14` + +### 🐛 问题修复 + +- 修复图表组件缩放问题。[#174](https://github.com/arco-design/arco-design-pro-vue/pull/174) +- 多次路由改变监听。[#162](https://github.com/arco-design/arco-design-pro-vue/pull/162) + +## v2.5.10 + +`2022-08-16` + +### 🐛 问题修复 + +- 补充页面重载的缓存清理。[#159](https://github.com/arco-design/arco-design-pro-vue/issues/159) +- 登录按钮点击后加载时可以重复点击发送请求。[#160](https://github.com/arco-design/arco-design-pro-vue/pull/160) + +## v2.5.9 + +`2022-08-10` + +### 💎 功能优化 + +- 多页签页面重载功能。[#150](https://github.com/arco-design/arco-design-pro-vue/issues/150) +- 用户信息错误捕获重定向的前置处理。[#153](https://github.com/arco-design/arco-design-pro-vue/pull/153) + +## v2.5.8 + +`2022-08-02` + +### 💎 功能优化 + +- 组件库依赖升级。 +- 增加 useVisible hook。 + +## v2.5.7 + +`2022-07-05` + +### 💎 功能优化 + +- 多页签优化,增加左键操作。 + +## v2.5.6 + +`2022-06-28` + +### 💎 功能优化 + +- 完善路由配置项 Typescript 类型定义。 + +## v2.5.5 + +`2022-06-21` + +### 🐛 问题修复 + +- 多页签 Tag 样式调整。 +- 移除多余 Mock 数据。 + +## v2.5.4 + +`2022-06-14` + +### 🐛 问题修复 + +- 服务端菜单功能不生效问题。[#121](https://github.com/arco-design/arco-design-pro-vue/pull/121) +- 变量命名校正。[#122](https://github.com/arco-design/arco-design-pro-vue/pull/122) + +## v2.5.3 + +`2022-06-07` + +### 💎 功能优化 + +- 调整 ts 接口导入方式。[#110](https://github.com/arco-design/arco-design-pro-vue/pull/110) + +### 🐛 问题修复 + +- 点击外链后菜单项无法点击问题。[#111](https://github.com/arco-design/arco-design-pro-vue/pull/111) +- 菜单展开及配置问题修复。[#114](https://github.com/arco-design/arco-design-pro-vue/pull/114) + +## v2.5.2 + +`2022-05-31` + +### 💎 功能优化 + +- 一级菜单外链调整及 DEMO。[#102](https://github.com/arco-design/arco-design-pro-vue/pull/102) +- 页面跳转,自动打开对应父级菜单。[#97](https://github.com/arco-design/arco-design-pro-vue/pull/97) + +### 🐛 问题修复 + +- 组件库升级导致的构建报错。[#101](https://github.com/arco-design/arco-design-pro-vue/pull/101) + +## v2.5.1 + +`2022-05-24` + +### 💎 功能优化 + +- 菜单支持外链。[#83](https://github.com/arco-design/arco-design-pro-vue/pull/91) + +### 🐛 问题修复 + +- 修复色弱模式选项初始值始终为 false 的问题。[#87](https://github.com/arco-design/arco-design-pro-vue/pull/87) +- 切换角色报错问题。[#84](https://github.com/arco-design/arco-design-pro-vue/issues/84) + +## v2.5.0 + +`2022-05-17` + +### 🆕 新增功能 + +- 新增全屏功能。[#83](https://github.com/arco-design/arco-design-pro-vue/pull/83) +- 增加打包产物预览命令。 + +### 💎 功能优化 + +- 增加 activeMenu 配置。[#76](https://github.com/arco-design/arco-design-pro-vue/issues/76)[#80](https://github.com/arco-design/arco-design-pro-vue/issues/80) + +### 🐛 问题修复 + +- 隐藏子级菜单项问题。[#76](https://github.com/arco-design/arco-design-pro-vue/issues/76) +- 更新 vue-tsc 版本。[#61](https://github.com/arco-design/arco-design-pro-vue/issues/61) + +## v2.4.1 + +`2022-05-10` + +### 🐛 问题修复 + +- 简易模式菜单文本展示问题 + +## v2.4.0 + +`2022-05-10` + +### 🆕 新增功能 + +- 新增服务端菜单配置功能。[#75](https://github.com/arco-design/arco-design-pro-vue/pull/75) + +### 💎 功能优化 + +- 路由层级扁平化,支持页面缓存。[#74](https://github.com/arco-design/arco-design-pro-vue/pull/74) + +### 🐛 问题修复 + +- arco 组件库升级导致的构建 TS 报错问题。[#74](https://github.com/arco-design/arco-design-pro-vue/pull/74) +- arco 组件库升级导致的文件找不到问题。[#71](https://github.com/arco-design/arco-design-pro-vue/issues/71) + +## v2.3.6 + +`2022-04-26` + +### 🆕 新增功能 + +- 登录页记住密码功能。 + +### 💎 功能优化 + +- 菜单组件增加顶层单项支持。[#59](https://github.com/arco-design/arco-design-pro-vue/pull/59) + +### 🐛 问题修复 + +- 修复 tab bar 首项点击无效。[#64](https://github.com/arco-design/arco-design-pro-vue/issues/64) +- 修复 not found 页面跳转问题。 + +## v2.3.4 + +`2022-04-12` + +### 💎 功能优化 + +- 登录路由配置调整。[#50](https://github.com/arco-design/arco-design-pro-vue/pull/50) + +## v2.3.3 + +`2022-03-29` + +### 🆕 新增功能 + +- 增加自定义上传案例。 + +### 🐛 问题修复 + +- 修复 页面缓存不生效 问题。 +- 修复 tab bar 滚动样式问题。[#44](https://github.com/arco-design/arco-design-pro-vue/pull/44) + +## v2.3.2 + +`2022-03-22` + +### 🆕 新增功能 + +- 增加多页签及页面缓存功能。 + +### 🐛 问题修复 + +- 修复 全局设置开关不展示 问题。 +- 避免 @keyup.enter 情况下的多次提交. [#42](https://github.com/arco-design/arco-design-pro-vue/pull/42) + +## v2.3.1 + +`2022-03-15` + +### 🐛 问题修复 + +- 修复 vite-plugin-imagemin 导致的初始化不成功问题。 + +## v2.3.0 + +`2022-03-15` + +### 🆕 新增功能 + +- 使用 setup script 进行代码重构。 +- 路由自动导入。 + +### 💎 功能优化 + +- 项目打包优化。 +- 响应式处理和小屏显示优化。 + +## v2.2.5 + +`2022-03-08` + +### 🆕 新增功能 + +- 增加了根据不同的运行环境设置相应的 api base URL 功能。[#29](https://github.com/arco-design/arco-design-pro-vue/pull/29) + +### 💎 功能优化 + +- 响应式处理和小屏显示优化。 +- 路由监听性能优化。 + +### 🐛 问题修复 + +- 可选链导致项目初始化失败。[#31](https://github.com/arco-design/arco-design-pro-vue/issues/31) +- 修复了 i18n 未设置 allowComposition,在 win 下无法启动的 bug。[#32](https://github.com/arco-design/arco-design-pro-vue/pull/32) + +## v2.2.4 + +`2022-03-01` + +### 🐛 问题修复 + +- 修复切换语言后组件内不生效问题。[#27](https://github.com/arco-design/arco-design-pro-vue/issues/27) +- 删除简易模式遗漏文件。 + +### 💎 功能优化 + +- vite 基础配置抽离。 + +## v2.2.3 + +`2022-02-22` + +### 💎 功能优化 + +- 路由配置增加 hideInMenu 字段。 + +### 🆕 新增功能 + +- 初始化项目支持简易模式。 (**需要将 `@arco-design/arco-cli` 升级至 `1.26.0`**) + +## v2.2.0 + +`2022-01-25` + +### 💎 功能优化 + +- icon 替换。 + +### 🆕 新增功能 + +- 增加权限管理。 +- 支持 jsx 语法。 + +## v2.1.0 + +`2022-01-18` + +### 💎 功能优化 + +- 图表配置 hook 用法优化。 +- 项目初始化 eslint 报错。 + +### 🆕 新增功能 + +- 使用 Pinia 替换 Vuex ([#7](https://github.com/arco-design/arco-design-pro-vue/pull/7)) diff --git a/admin/package.json b/admin/package.json new file mode 100644 index 0000000..bb5f10a --- /dev/null +++ b/admin/package.json @@ -0,0 +1,33 @@ +{ + "name": "arco-design-pro-vue", + "description": "Arco Design Pro for Vue", + "version": "2.7.3", + "author": "ArcoDesign Team", + "license": "MIT", + "scripts": { + "dev": "npm --prefix arco-design-pro-vite run dev", + "build": "npm --prefix arco-design-pro-vite run build", + "preview": "npm --prefix arco-design-pro-vite run preview", + "gen:vite": "node scripts/vite" + }, + "files": [ + ".arco-cli", + "scripts", + "arco-design-pro-vite", + "!/**/node_modules", + "!/**/.nuxt", + "!/**/.eslintcache", + "!/**/.stylelintcache", + "!/**/dist" + ], + "dependencies": { + "fs-extra": "^10.0.0", + "minimist": "^1.2.5", + "prettier": "^2.5.1" + }, + "devDependencies": { + "@commitlint/cli": "^11.0.0", + "@commitlint/config-conventional": "^12.0.1", + "husky": "^8.0.3" + } +} diff --git a/admin/pnpm-lock.yaml b/admin/pnpm-lock.yaml new file mode 100644 index 0000000..5309ad2 --- /dev/null +++ b/admin/pnpm-lock.yaml @@ -0,0 +1,1047 @@ +lockfileVersion: 5.4 + +specifiers: + '@commitlint/cli': ^11.0.0 + '@commitlint/config-conventional': ^12.0.1 + fs-extra: ^10.0.0 + husky: ^8.0.3 + minimist: ^1.2.5 + prettier: ^2.5.1 + +dependencies: + fs-extra: 10.1.0 + minimist: 1.2.7 + prettier: 2.8.4 + +devDependencies: + '@commitlint/cli': 11.0.0 + '@commitlint/config-conventional': 12.1.4 + husky: 8.0.3 + +packages: + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/runtime/7.20.13: + resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: true + + /@commitlint/cli/11.0.0: + resolution: {integrity: sha512-YWZWg1DuqqO5Zjh7vUOeSX76vm0FFyz4y0cpGMFhrhvUi5unc4IVfCXZ6337R9zxuBtmveiRuuhQqnRRer+13g==} + engines: {node: '>=v10.22.0'} + hasBin: true + dependencies: + '@babel/runtime': 7.20.13 + '@commitlint/format': 11.0.0 + '@commitlint/lint': 11.0.0 + '@commitlint/load': 11.0.0 + '@commitlint/read': 11.0.0 + chalk: 4.1.0 + core-js: 3.27.2 + get-stdin: 8.0.0 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 15.4.1 + dev: true + + /@commitlint/config-conventional/12.1.4: + resolution: {integrity: sha512-ZIdzmdy4o4WyqywMEpprRCrehjCSQrHkaRTVZV411GyLigFQHlEBSJITAihLAWe88Qy/8SyoIe5uKvAsV5vRqQ==} + engines: {node: '>=v10'} + dependencies: + conventional-changelog-conventionalcommits: 4.6.3 + dev: true + + /@commitlint/ensure/11.0.0: + resolution: {integrity: sha512-/T4tjseSwlirKZdnx4AuICMNNlFvRyPQimbZIOYujp9DSO6XRtOy9NrmvWujwHsq9F5Wb80QWi4WMW6HMaENug==} + engines: {node: '>=v10.22.0'} + dependencies: + '@commitlint/types': 11.0.0 + lodash: 4.17.21 + dev: true + + /@commitlint/execute-rule/11.0.0: + resolution: {integrity: sha512-g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ==} + engines: {node: '>=v10.22.0'} + dev: true + + /@commitlint/format/11.0.0: + resolution: {integrity: sha512-bpBLWmG0wfZH/svzqD1hsGTpm79TKJWcf6EXZllh2J/LSSYKxGlv967lpw0hNojme0sZd4a/97R3qA2QHWWSLg==} + engines: {node: '>=v10.22.0'} + dependencies: + '@commitlint/types': 11.0.0 + chalk: 4.1.0 + dev: true + + /@commitlint/is-ignored/11.0.0: + resolution: {integrity: sha512-VLHOUBN+sOlkYC4tGuzE41yNPO2w09sQnOpfS+pSPnBFkNUUHawEuA44PLHtDvQgVuYrMAmSWFQpWabMoP5/Xg==} + engines: {node: '>=v10.22.0'} + dependencies: + '@commitlint/types': 11.0.0 + semver: 7.3.2 + dev: true + + /@commitlint/lint/11.0.0: + resolution: {integrity: sha512-Q8IIqGIHfwKr8ecVZyYh6NtXFmKw4YSEWEr2GJTB/fTZXgaOGtGFZDWOesCZllQ63f1s/oWJYtVv5RAEuwN8BQ==} + engines: {node: '>=v10.22.0'} + dependencies: + '@commitlint/is-ignored': 11.0.0 + '@commitlint/parse': 11.0.0 + '@commitlint/rules': 11.0.0 + '@commitlint/types': 11.0.0 + dev: true + + /@commitlint/load/11.0.0: + resolution: {integrity: sha512-t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg==} + engines: {node: '>=v10.22.0'} + dependencies: + '@commitlint/execute-rule': 11.0.0 + '@commitlint/resolve-extends': 11.0.0 + '@commitlint/types': 11.0.0 + chalk: 4.1.0 + cosmiconfig: 7.1.0 + lodash: 4.17.21 + resolve-from: 5.0.0 + dev: true + + /@commitlint/message/11.0.0: + resolution: {integrity: sha512-01ObK/18JL7PEIE3dBRtoMmU6S3ecPYDTQWWhcO+ErA3Ai0KDYqV5VWWEijdcVafNpdeUNrEMigRkxXHQLbyJA==} + engines: {node: '>=v10.22.0'} + dev: true + + /@commitlint/parse/11.0.0: + resolution: {integrity: sha512-DekKQAIYWAXIcyAZ6/PDBJylWJ1BROTfDIzr9PMVxZRxBPc1gW2TG8fLgjZfBP5mc0cuthPkVi91KQQKGri/7A==} + engines: {node: '>=v10.22.0'} + dependencies: + conventional-changelog-angular: 5.0.13 + conventional-commits-parser: 3.2.4 + dev: true + + /@commitlint/read/11.0.0: + resolution: {integrity: sha512-37V0V91GSv0aDzMzJioKpCoZw6l0shk7+tRG8RkW1GfZzUIytdg3XqJmM+IaIYpaop0m6BbZtfq+idzUwJnw7g==} + engines: {node: '>=v10.22.0'} + dependencies: + '@commitlint/top-level': 11.0.0 + fs-extra: 9.1.0 + git-raw-commits: 2.0.11 + dev: true + + /@commitlint/resolve-extends/11.0.0: + resolution: {integrity: sha512-WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw==} + engines: {node: '>=v10.22.0'} + dependencies: + import-fresh: 3.3.0 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules/11.0.0: + resolution: {integrity: sha512-2hD9y9Ep5ZfoNxDDPkQadd2jJeocrwC4vJ98I0g8pNYn/W8hS9+/FuNpolREHN8PhmexXbkjrwyQrWbuC0DVaA==} + engines: {node: '>=v10.22.0'} + dependencies: + '@commitlint/ensure': 11.0.0 + '@commitlint/message': 11.0.0 + '@commitlint/to-lines': 11.0.0 + '@commitlint/types': 11.0.0 + dev: true + + /@commitlint/to-lines/11.0.0: + resolution: {integrity: sha512-TIDTB0Y23jlCNubDROUVokbJk6860idYB5cZkLWcRS9tlb6YSoeLn1NLafPlrhhkkkZzTYnlKYzCVrBNVes1iw==} + engines: {node: '>=v10.22.0'} + dev: true + + /@commitlint/top-level/11.0.0: + resolution: {integrity: sha512-O0nFU8o+Ws+py5pfMQIuyxOtfR/kwtr5ybqTvR+C2lUPer2x6lnQU+OnfD7hPM+A+COIUZWx10mYQvkR3MmtAA==} + engines: {node: '>=v10.22.0'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types/11.0.0: + resolution: {integrity: sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==} + engines: {node: '>=v10.22.0'} + dev: true + + /@types/minimist/1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + + /JSONStream/1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /array-ify/1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true + + /arrify/1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-keys/6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.0: + resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /cliui/6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /compare-func/2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /conventional-changelog-angular/5.0.13: + resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-conventionalcommits/4.6.3: + resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: true + + /conventional-commits-parser/3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + is-text-path: 1.0.1 + JSONStream: 1.3.5 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /core-js/3.27.2: + resolution: {integrity: sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==} + requiresBuild: true + dev: true + + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /dargs/7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true + + /decamelize-keys/1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize/1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /dot-prop/5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: false + + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-stdin/8.0.0: + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: '>=10'} + dev: true + + /git-raw-commits/2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /global-dirs/0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /husky/8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj/1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-text-path/1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + + /jsonparse/1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /map-obj/1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /meow/8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimist-options/4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: false + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data/3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.11.0 + semver: 7.3.8 + validate-npm-package-license: 3.0.4 + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /prettier/2.8.4: + resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: false + + /q/1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: true + + /quick-lru/4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /redent/3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename/2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-global/1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver/7.3.2: + resolution: {integrity: sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-blocking/2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-license-ids/3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + dev: true + + /split2/3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /text-extensions/1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: true + + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /through2/4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /trim-newlines/3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /type-fest/0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + + /util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /which-module/2.0.0: + resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} + dev: true + + /wrap-ansi/6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /y18n/4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yargs-parser/18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs/15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/admin/scripts/cra.js b/admin/scripts/cra.js new file mode 100644 index 0000000..623a0ad --- /dev/null +++ b/admin/scripts/cra.js @@ -0,0 +1,80 @@ +const path = require('path'); +const fs = require('fs-extra'); + +const templatePath = path.resolve(__dirname, '../arco-design-pro-cra'); +const projectPath = + process.argv[2] || path.resolve(__dirname, '../examples/arco-design-pro-cra'); + +const maps = { + 'src/components': 'src/components', + 'src/locale': 'src/locale', + 'src/mock': 'src/mock', + 'src/pages': { + dest: 'src/pages', + filter: (src) => { + const ignores = [ + path.resolve(__dirname, '../arco-design-pro-nuxt/src/pages/index.tsx'), + path.resolve(__dirname, '../arco-design-pro-nuxt/src/pages/_app.tsx'), + path.resolve(__dirname, '../arco-design-pro-nuxt/src/pages/layout.tsx'), + ]; + return ignores.indexOf(src) === -1; + }, + }, + 'src/public/assets': 'src/assets', + 'src/store': 'src/store', + 'src/style': 'src/style', + 'src/utils': 'src/utils', + 'src/settings.json': 'src/settings.json', + 'src/routes.ts': 'src/routes.ts', + 'src/declaration.d.ts': 'src/declaration.d.ts', + 'src/context.ts': 'src/context.ts', + '.eslintrc': '.eslintrc', + '.eslintignore': '.eslintignore', + '.stylelintrc': '.stylelintrc', + '.stylelintignore': '.stylelintignore', + '.prettierrc': '.prettierrc', +}; + +fs.copySync(templatePath, projectPath, { + filter: (src) => !src.startsWith(path.resolve(templatePath, 'node_modules')), +}); + +const gitignorePath = path.resolve( + __dirname, + '../arco-design-pro-nuxt/gitignore' +); +const gitignorePath2 = path.resolve( + __dirname, + '../arco-design-pro-nuxt/.gitignore' +); + +Object.keys(maps).forEach((src) => { + if (typeof maps[src] === 'string') { + fs.copySync( + path.resolve(__dirname, '../arco-design-pro-nuxt', src), + path.resolve(projectPath, maps[src]) + ); + } + if (typeof maps[src] === 'object') { + fs.copySync( + path.resolve(__dirname, '../arco-design-pro-nuxt', src), + path.resolve( + __dirname, + '../examples/arco-design-pro-cra', + maps[src].dest + ), + { filter: maps[src].filter } + ); + } + if (fs.existsSync(gitignorePath)) { + fs.copySync( + gitignorePath, + path.resolve(__dirname, '../examples/arco-design-pro-cra/.gitignore') + ); + } else if (fs.existsSync(gitignorePath2)) { + fs.copySync( + gitignorePath2, + path.resolve(__dirname, '../examples/arco-design-pro-cra/.gitignore') + ); + } +}); diff --git a/admin/scripts/install.js b/admin/scripts/install.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/admin/scripts/install.js @@ -0,0 +1 @@ + diff --git a/admin/scripts/nuxt.js b/admin/scripts/nuxt.js new file mode 100644 index 0000000..54fb840 --- /dev/null +++ b/admin/scripts/nuxt.js @@ -0,0 +1,13 @@ +const path = require('path'); +const fs = require('fs-extra'); + +const templatePath = path.resolve(__dirname, '../arco-design-pro-nuxt'); +const projectPath = + process.argv[2] || + path.resolve(__dirname, '../examples/arco-design-pro-nuxt'); + +fs.copySync(templatePath, projectPath, { + filter: (src) => + !src.startsWith(path.resolve(templatePath, 'node_modules')) && + src.indexOf('.nuxt') === -1, +}); diff --git a/admin/scripts/postpublish.js b/admin/scripts/postpublish.js new file mode 100644 index 0000000..bea9391 --- /dev/null +++ b/admin/scripts/postpublish.js @@ -0,0 +1,4 @@ +const fs = require('fs-extra'); +const path = require('path'); + +fs.removeSync(path.resolve(__dirname, '../arco-design-pro-vite/gitignore')); diff --git a/admin/scripts/prepublish.js b/admin/scripts/prepublish.js new file mode 100644 index 0000000..a6c3dc7 --- /dev/null +++ b/admin/scripts/prepublish.js @@ -0,0 +1,11 @@ +const fs = require('fs-extra'); +const path = require('path'); + +fs.copy( + path.resolve(__dirname, '../arco-design-pro-vite/.gitignore'), + path.resolve(__dirname, '../arco-design-pro-vite/gitignore'), + (err) => { + if (err) return console.error(err); + console.log('Copy gitignore success!'); + } +); diff --git a/admin/scripts/vite.js b/admin/scripts/vite.js new file mode 100644 index 0000000..322bd19 --- /dev/null +++ b/admin/scripts/vite.js @@ -0,0 +1,161 @@ +const path = require('path'); +const fs = require('fs-extra'); +const minimist = require('minimist'); +const prettier = require('prettier'); +const prettierOpt = require('./../arco-design-pro-vite/.prettierrc.js'); + +const params = minimist(process.argv.slice(2)); +const isSimple = params.simple; + +const templatePath = path.resolve(__dirname, '../arco-design-pro-vite'); +const projectPath = + params.projectPath || + path.resolve(__dirname, '../examples/arco-design-pro-vite'); + +const maps = { + 'src/api': 'src/api', + 'src/assets': 'src/assets', + 'src/components': 'src/components', + 'src/config': 'src/config', + 'src/hooks': 'src/hooks', + 'src/layout': 'src/layout', + 'src/locale': 'src/locale', + 'src/mock': 'src/mock', + 'src/router': 'src/router', + 'src/store': 'src/store', + 'src/types': 'src/types', + 'src/utils': 'src/utils', + 'src/views': 'src/views', + '.eslintrc.js': '.eslintrc.js', + '.eslintignore': '.eslintignore', + '.stylelintrc.js': '.stylelintrc.js', + '.prettierrc.js': '.prettierrc.js', + 'tsconfig.json': 'tsconfig.json', +}; + +fs.copySync(templatePath, projectPath, { + filter: (src) => !src.startsWith(path.resolve(templatePath, 'node_modules')), +}); + +const gitignorePath = path.resolve( + __dirname, + '../arco-design-pro-vite/gitignore' +); +const gitignorePath2 = path.resolve( + __dirname, + '../arco-design-pro-vite/.gitignore' +); + +Object.keys(maps).forEach((src) => { + if (typeof maps[src] === 'string') { + fs.copySync( + path.resolve(__dirname, '../arco-design-pro-vite', src), + path.resolve(projectPath, maps[src]) + ); + } + if (typeof maps[src] === 'object') { + fs.copySync( + path.resolve(__dirname, '../arco-design-pro-vite', src), + path.resolve(projectPath, maps[src].dest), + { filter: maps[src].filter } + ); + } + if (fs.existsSync(gitignorePath)) { + fs.copySync(gitignorePath, path.resolve(projectPath, '.gitignore')); + } else if (fs.existsSync(gitignorePath2)) { + fs.copySync(gitignorePath2, path.resolve(projectPath, '.gitignore')); + } +}); + +// simple mode +const simpleOptions = [ + { + base: 'src/views', + accurate: ['dashboard/monitor'], // Accurate to delete + excludes: ['login', 'dashboard', 'not-found', 'redirect'], + }, + { + base: 'src/api', + excludes: ['dashboard', 'interceptor', 'user', 'message'], + }, + { + base: 'src/router/routes/modules', + excludes: ['index', 'dashboard'], + }, +]; + +const regSum = /\/\*{2} simple( end)? \*\//g; +const matchReg = + /(\/\*{2} simple \*\/)(?:(?!\/\*{2} simple end \*\/).|\n)*?\/\*{2} simple end \*\//gm; + +const simplifyFiles = [ + 'locale/en-US.ts', + 'locale/zh-CN.ts', + 'mock/index.ts', + 'router/routes/modules/dashboard.ts', +]; + +const runSimpleMode = () => { + deleteFiles(); + simplifyFiles.forEach((el) => { + const file = path.resolve(projectPath, path.join('src', el)); + fs.readFile(file, 'utf8', (err, content) => { + if (err) return console.error(err); + const main = content.replace(matchReg, ''); + const formatTxt = prettier.format(main, { + ...prettierOpt, + parser: 'babel', + }); + fs.writeFile(file, formatTxt, 'utf8', function (err) { + if (err) return console.error(err); + }); + }); + }); +}; + +const deleteFiles = () => { + simpleOptions.forEach((option) => { + const baseDir = path.resolve(projectPath, option.base); + fs.readdir(baseDir, (error, files) => { + files.forEach((fileName) => { + if ( + option.excludes && + option.excludes.find((name) => + new RegExp(`^${name}(.(ts|js|vue|json|jsx|tsx))?$`).test(fileName) + ) + ) { + return; + } + fs.remove(path.join(baseDir, fileName)); + }); + }); + if (option.accurate) { + option.accurate.forEach((el) => { + fs.remove(path.join(baseDir, el)); + }); + } + }); +}; + +const runNormalMode = () => { + simplifyFiles.forEach((el) => { + const file = path.resolve(projectPath, path.join('src', el)); + fs.readFile(file, 'utf8', (err, content) => { + if (err) return console.error(err); + const result = content.replace(regSum, ''); + const formatTxt = prettier.format(result, { + ...prettierOpt, + parser: 'babel', + }); + fs.writeFile(file, formatTxt, 'utf8', function (err) { + if (err) return console.error(err); + }); + }); + }); +}; + +if (isSimple) { + runSimpleMode(); +} else { + runNormalMode(); +} diff --git a/api-proxy.conf b/api-proxy.conf new file mode 100644 index 0000000..3991c94 --- /dev/null +++ b/api-proxy.conf @@ -0,0 +1,19 @@ +# 陪玩平台后端 API 专用反向代理 +location /api/ { + proxy_pass http://127.0.0.1:3020/api/; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 300s; + proxy_connect_timeout 60s; + client_max_body_size 100m; +} + +# 陪玩平台 PC 运营管理后台(Arco Design Pro) +location ^~ /admin/ { + alias /www/wwwroot/peiww.gynhc.com/admin/; + try_files $uri $uri/ /admin/index.html; + index index.html; +} diff --git a/peiwan.sql b/peiwan.sql new file mode 100644 index 0000000..7d6b03b --- /dev/null +++ b/peiwan.sql @@ -0,0 +1,349 @@ +-- MySQL dump 10.13 Distrib 8.0.42, for Win64 (x86_64) +-- +-- Host: localhost Database: peiwan +-- ------------------------------------------------------ +-- Server version 8.0.42 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `activities` +-- + +DROP TABLE IF EXISTS `activities`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `activities` ( + `id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `creator_id` int NOT NULL, + `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `game_category` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `location` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `pay_type` int NOT NULL DEFAULT '1', + `total_fee_cents` int DEFAULT '0', + `per_person_fee_cents` int DEFAULT '0', + `max_participants` int DEFAULT '4', + `allow_dynamic_price` tinyint DEFAULT '1', + `price_adjust_rule` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT 'UNIFIED_HIGH', + `created_at` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `activities` +-- + +LOCK TABLES `activities` WRITE; +/*!40000 ALTER TABLE `activities` DISABLE KEYS */; +INSERT INTO `activities` VALUES ('act_101',1001,'三里屯铜锅涮肉AA探店 · 8人热烈局','同城陪吃','北京市朝阳区三里屯聚宝源铜锅涮肉',1,40000,8800,4,1,'UNIFIED_HIGH','2026-09-28 17:51:40'),('act_102',1002,'工体纯KTV沉浸式麦霸欢唱 · 寻找甜美副唱','同城陪唱','工体西路8号纯KTV 888包厢',2,240000,80000,3,1,'UNIFIED_HIGH','2026-09-28 17:51:40'),('act_103',1003,'望京合生麒麟社微醺清吧精酿品鉴','同城陪喝','望京街道合生麒麟社地库跳海酒馆',1,39600,19800,4,1,'UNIFIED_HIGH','2026-09-28 17:51:40'); +/*!40000 ALTER TABLE `activities` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `arbitrations` +-- + +DROP TABLE IF EXISTS `arbitrations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `arbitrations` ( + `id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `order_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `order_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `client_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `companion_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `reason` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `user_evidence` text COLLATE utf8mb4_unicode_ci, + `status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '待平台仲裁', + `created_at` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `arbitrations` +-- + +LOCK TABLES `arbitrations` WRITE; +/*!40000 ALTER TABLE `arbitrations` DISABLE KEYS */; +INSERT INTO `arbitrations` VALUES ('arb_001','ord_05','PW202609280005','周先生','林深见鹿','未准时到场且提前离场','大神迟到了35分钟,且中途以有急事为由提前40分钟离开,实际服务仅45分钟。现场有微信沟通记录与到场照片。','待平台仲裁','2026-09-28 17:51:40'); +/*!40000 ALTER TABLE `arbitrations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `companions` +-- + +DROP TABLE IF EXISTS `companions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `companions` ( + `id` int NOT NULL AUTO_INCREMENT, + `name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `avatar` text COLLATE utf8mb4_unicode_ci, + `gender` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `age` int DEFAULT NULL, + `track` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `rank_name` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `hourly_rate` int NOT NULL, + `voice_duration` int DEFAULT '15', + `voice_title` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `rating` decimal(3,2) DEFAULT '4.90', + `order_count` int DEFAULT '0', + `status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '接单中', + `audit_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '已通过', + `id_card_masked` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `apply_time` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `companions` +-- + +LOCK TABLES `companions` WRITE; +/*!40000 ALTER TABLE `companions` DISABLE KEYS */; +INSERT INTO `companions` VALUES (1,'苏苏学姐','https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=120','女',22,'同城陪吃','金牌探店官',158,18,'甜美学姐元气语音条',4.95,382,'接单中','已通过','110105********3821','2026-09-28 17:51:40'),(2,'林深见鹿','https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=120','男',24,'KTV陪唱','十佳青年歌手',288,25,'清澈烟嗓流行情歌试听',4.98,512,'接单中','已通过','310115********1028','2026-09-28 17:51:40'),(3,'小鱼泡泡','https://images.unsplash.com/photo-1517841905240-472988babdf9?w=120','女',21,'同城陪喝','精酿侍酒达人',198,14,'微醺甜美随和聊天',4.88,194,'休息中','已通过','440301********7824','2026-09-28 17:51:40'),(4,'顾北辰','https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=120','男',23,'线上电竞','百星王者国服第一射手',88,12,'低沉磁性指挥型男音',4.92,680,'接单中','已通过','510107********4419','2026-09-28 17:51:40'),(5,'可可奶芙','https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=120','女',20,'同城陪吃','美食品鉴官',168,16,'软糯元气自我介绍',4.85,42,'待审核','待审核','320106********9124','2026-09-28 17:51:40'),(6,'夜风沉醉','https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?w=120','男',25,'KTV陪唱','摇滚乐队副主唱',220,22,'摇滚副歌现场高音试听',4.75,18,'待审核','待审核','330104********2816','2026-09-28 17:51:40'); +/*!40000 ALTER TABLE `companions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `finance_config` +-- + +DROP TABLE IF EXISTS `finance_config`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `finance_config` ( + `id` int NOT NULL DEFAULT '1', + `platform_rate_percent` decimal(5,2) DEFAULT '10.00', + `first_referral_percent` decimal(5,2) DEFAULT '5.00', + `second_referral_percent` decimal(5,2) DEFAULT '2.00', + `min_withdraw_amount` int DEFAULT '50', + `max_withdraw_amount` int DEFAULT '20000', + `withdraw_fee_percent` decimal(5,2) DEFAULT '0.00', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `finance_config` +-- + +LOCK TABLES `finance_config` WRITE; +/*!40000 ALTER TABLE `finance_config` DISABLE KEYS */; +INSERT INTO `finance_config` VALUES (1,10.00,5.00,2.00,50,20000,0.00); +/*!40000 ALTER TABLE `finance_config` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `finance_records` +-- + +DROP TABLE IF EXISTS `finance_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `finance_records` ( + `id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `record_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `amount` decimal(10,2) NOT NULL, + `direction` varchar(8) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'IN', + `counterparty` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `related_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `record_no` (`record_no`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `finance_records` +-- + +LOCK TABLES `finance_records` WRITE; +/*!40000 ALTER TABLE `finance_records` DISABLE KEYS */; +INSERT INTO `finance_records` VALUES ('fin_001','TR20260928001','活动报名入账',50.00,'IN','用户 2001','act_101','2026-09-28 17:51:40'),('fin_002','TR20260928002','活动报名入账',50.00,'IN','用户 2002','act_101','2026-09-28 17:51:40'),('fin_003','TR20260928003','大神订单全款',316.00,'IN','客户 赵公子','ord_01','2026-09-28 17:51:40'),('fin_004','TR20260928004','平台抽成 (10%)',31.60,'IN','系统结算','ord_01','2026-09-28 17:51:40'),('fin_005','TR20260928005','一级分销佣金 (5%)',15.80,'OUT','推荐人 张三','ord_01','2026-09-28 17:51:40'),('fin_006','TR20260928006','房主追加赏金差额退补',300.00,'IN','房主 1001','act_101','2026-09-28 17:51:40'),('fin_1790589262739','TR1790589262739','房主追加赏金差额退补',88.00,'IN','房主 1001','act_101','2026-09-28 17:54:22'); +/*!40000 ALTER TABLE `finance_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `orders` +-- + +DROP TABLE IF EXISTS `orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `orders` ( + `id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `order_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `client_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `companion_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `track` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `expense_burden` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '客户全包', + `hourly_rate` int NOT NULL, + `duration_hours` int NOT NULL DEFAULT '2', + `amount` decimal(10,2) NOT NULL, + `location` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '待支付', + `created_at` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `order_no` (`order_no`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `orders` +-- + +LOCK TABLES `orders` WRITE; +/*!40000 ALTER TABLE `orders` DISABLE KEYS */; +INSERT INTO `orders` VALUES ('ord_01','PW202609280001','赵公子','苏苏学姐','同城陪吃','客户全包',158,2,316.00,'朝阳区大悦城 太二酸菜鱼','已到场核销','2026-09-28 17:51:40'),('ord_02','PW202609280002','钱老板','林深见鹿','KTV陪唱','客户全包',288,3,864.00,'工体西路8号纯KTV 888包厢','履约中','2026-09-28 17:51:40'),('ord_03','PW202609280003','孙先生','小鱼泡泡','同城陪喝','费用AA',198,2,396.00,'望京合生麒麟社跳海酒馆','待支付','2026-09-28 17:51:40'),('ord_04','PW202609280004','李小姐','顾北辰','线上电竞','无需承担',88,4,352.00,'线上语音频道 #9021','已完成','2026-09-28 17:51:40'),('ord_05','PW202609280005','周先生','林深见鹿','KTV陪唱','客户全包',288,2,576.00,'海淀中关村好乐迪KTV','争议仲裁中','2026-09-28 17:51:40'); +/*!40000 ALTER TABLE `orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `participants` +-- + +DROP TABLE IF EXISTS `participants`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `participants` ( + `id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `activity_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `user_id` int NOT NULL, + `pay_amount_cents` int NOT NULL, + `verify_code` varchar(4) COLLATE utf8mb4_unicode_ci NOT NULL, + `checkin_status` tinyint DEFAULT '0', + `verified_at` datetime DEFAULT NULL, + `verified_by` int DEFAULT NULL, + `created_at` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_activity` (`activity_id`), + KEY `idx_verify_code` (`verify_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `participants` +-- + +LOCK TABLES `participants` WRITE; +/*!40000 ALTER TABLE `participants` DISABLE KEYS */; +INSERT INTO `participants` VALUES ('pt_101','act_101',2001,5000,'8392',1,'2026-09-28 17:51:40',1001,'2026-09-28 17:51:40'),('pt_102','act_101',2002,5000,'5419',1,'2026-09-28 17:53:56',1001,'2026-09-28 17:51:40'),('pt_103','act_101',2003,5000,'7260',0,NULL,NULL,'2026-09-28 17:51:40'),('pt_104','act_102',2004,80000,'9031',0,NULL,NULL,'2026-09-28 17:51:40'),('pt_105','act_103',2005,19800,'6184',0,NULL,NULL,'2026-09-28 17:51:40'); +/*!40000 ALTER TABLE `participants` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `safety_audit_logs` +-- + +DROP TABLE IF EXISTS `safety_audit_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `safety_audit_logs` ( + `id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `timestamp_str` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `user_id` int NOT NULL, + `type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `content` text COLLATE utf8mb4_unicode_ci NOT NULL, + `action` text COLLATE utf8mb4_unicode_ci NOT NULL, + `status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '已处置', + `created_at` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `safety_audit_logs` +-- + +LOCK TABLES `safety_audit_logs` WRITE; +/*!40000 ALTER TABLE `safety_audit_logs` DISABLE KEYS */; +INSERT INTO `safety_audit_logs` VALUES ('sec_001','2026-09-28 14:12:05',2088,'违规场所拦截','用户尝试将线下陪吃地点填写为:某某苑4号楼2单元501室(私人住宅)','系统自动阻断下单,弹出公共商圈合规红线告警','已处置','2026-09-28 17:51:40'),('sec_002','2026-09-28 11:35:20',2095,'违规场所拦截','用户尝试将线下陪唱地点填写为:某某精品快捷酒店308客房','系统拦截并强制要求修改为正规商业量贩KTV','已处置','2026-09-28 17:51:40'),('sec_003','2026-09-27 21:04:18',2012,'敏感词过滤','组局留言中出现敏感违规引流词汇汇款、加私微等','关键词自动打码屏蔽,并记录账号风控提示分','已处置','2026-09-28 17:51:40'); +/*!40000 ALTER TABLE `safety_audit_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `safety_places` +-- + +DROP TABLE IF EXISTS `safety_places`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `safety_places` ( + `id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL, + `area` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL, + `category` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `safety_level` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT 'AAA级合规认证', + `status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '正常营业', + `approved` tinyint DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `safety_places` +-- + +LOCK TABLES `safety_places` WRITE; +/*!40000 ALTER TABLE `safety_places` DISABLE KEYS */; +INSERT INTO `safety_places` VALUES ('place_001','三里屯聚宝源铜锅涮肉','朝阳区三里屯商圈','餐饮美食','AAA级合规认证','正常营业',1),('place_002','工体纯KTV','朝阳区工人体育场商圈','量贩KTV','AAA级合规认证','正常营业',1),('place_003','望京合生麒麟社跳海酒馆','朝阳区望京商圈','商圈清吧','AA级合规认证','正常营业',1),('place_004','朝阳大悦城太二酸菜鱼','朝阳区青年路大悦城','餐饮美食','AAA级合规认证','正常营业',1); +/*!40000 ALTER TABLE `safety_places` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `withdrawals` +-- + +DROP TABLE IF EXISTS `withdrawals`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `withdrawals` ( + `id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `withdraw_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `companion_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `companion_id` int NOT NULL, + `amount` decimal(10,2) NOT NULL, + `balance` decimal(10,2) NOT NULL, + `channel` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT '微信商户零钱', + `status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '待审核', + `apply_time` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `withdraw_no` (`withdraw_no`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `withdrawals` +-- + +LOCK TABLES `withdrawals` WRITE; +/*!40000 ALTER TABLE `withdrawals` DISABLE KEYS */; +INSERT INTO `withdrawals` VALUES ('wd_001','TX20260928001','苏苏学姐',101,1250.00,4890.00,'微信商户零钱','已打款','2026-09-28 17:51:40'),('wd_002','TX20260928002','顾北辰',104,2800.00,6200.00,'银联企业直连','已打款','2026-09-28 17:51:40'); +/*!40000 ALTER TABLE `withdrawals` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-09-28 17:57:43 diff --git a/pwuniapp/App.vue b/pwuniapp/App.vue index 4c4db41..0f980a8 100644 --- a/pwuniapp/App.vue +++ b/pwuniapp/App.vue @@ -1,10 +1,69 @@ + + diff --git a/pwuniapp/components/SkeletonScreen.vue b/pwuniapp/components/SkeletonScreen.vue new file mode 100644 index 0000000..ca81ea8 --- /dev/null +++ b/pwuniapp/components/SkeletonScreen.vue @@ -0,0 +1,664 @@ + + + + + diff --git a/pwuniapp/package.json b/pwuniapp/package.json new file mode 100644 index 0000000..3ed45c0 --- /dev/null +++ b/pwuniapp/package.json @@ -0,0 +1,6 @@ +{ + "name": "pwuniapp", + "version": "1.0.0", + "dependencies": {}, + "devDependencies": {} +} diff --git a/pwuniapp/pages.json b/pwuniapp/pages.json index f606317..bf30490 100644 --- a/pwuniapp/pages.json +++ b/pwuniapp/pages.json @@ -14,7 +14,7 @@ "path": "pages/activity/list", "style": { "navigationStyle": "custom", - "navigationBarTitleText": "组队活动大厅", + "navigationBarTitleText": "附近活动", "navigationBarBackgroundColor": "#0A0F1D", "navigationBarTextStyle": "white", "backgroundColor": "#0A0F1D" @@ -79,7 +79,7 @@ { "path": "pages/activity/create", "style": { - "navigationBarTitleText": "发起组队活动", + "navigationBarTitleText": "我要发单 / 发起组队", "navigationBarBackgroundColor": "#0A0F1D", "navigationBarTextStyle": "white", "backgroundColor": "#0A0F1D" @@ -93,6 +93,36 @@ "navigationBarTextStyle": "white", "backgroundColor": "#0A0F1D" } + }, + { + "path": "pages/community/index", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "友圈广场", + "navigationBarBackgroundColor": "#0A0F1D", + "navigationBarTextStyle": "white", + "backgroundColor": "#0A0F1D" + } + }, + { + "path": "pages/expert/radar", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "我要接单", + "navigationBarBackgroundColor": "#0A0F1D", + "navigationBarTextStyle": "white", + "backgroundColor": "#0A0F1D" + } + }, + { + "path": "pages/expert/hall", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "接单大厅", + "navigationBarBackgroundColor": "#0A0F1D", + "navigationBarTextStyle": "white", + "backgroundColor": "#0A0F1D" + } } ], "globalStyle": { diff --git a/pwuniapp/pages/activity/create.vue b/pwuniapp/pages/activity/create.vue index 338ebe9..1d9f9dd 100644 --- a/pwuniapp/pages/activity/create.vue +++ b/pwuniapp/pages/activity/create.vue @@ -92,125 +92,330 @@ 人均分摊 (元/人) - - 房主买单预算 (元) - + + + + 出价方式 + + + 按人出价 + + + 包场总预算 + + + + + + 单人出价 (元/人) + + + + + + 快捷赏金: + + + ¥{{ amt }} + + + + + + 房主买单总预算 (元) + + + + + + 快捷预算: + + + ¥{{ amt }} + + + 预算测算: - {{ form.payType === 'AA' ? `总费用预估约 ¥${calcTotalFee} (人均 ¥${form.aaFee || 0})` : `参与者免费报名,房主请客全包约 ¥${form.totalFee || 0}` }} + {{ + form.payType === 'AA' + ? `总费用预估约 ¥${calcTotalFee} (人均 ¥${form.aaFee || 0})` + : form.pricingMode === 'PER_PERSON' + ? `单人出价 ¥${form.perPersonFee || 0} × 招募${form.maxParticipants}人 = 预估总额 ¥${calcTotalFee} (发单后可随时追加金额)` + : `房主全额买单请客,总预算约 ¥${form.totalFee || 0} (发单后可随时追加预算)` + }} + + + + + 灵活调价与追加金额设置 + 组局进行中允许房主随时追加金额、加赏加急或修改单价 + + + + + + 追加金额/改价补差规则 + + + + 全员同享追加新高价 + 推荐 + + + 房主追加金额提价时(如从 500元/人 追加提高到 800元/人),已报名的成员自动同步补齐 300元 差额。先行者不吃亏,大幅提升组队热度。 + + + + + + 阶梯差价招募 + + + 追加金额仅对后续新加入的成员生效。已报名的老成员按其报名时的出价结算,互不影响。 + + + + + + + 灵活追加金额说明: + • 随时追加金额:如原定 500元/人 招募4人,已有2人报名;房主在活动页可随时点击【追加金额】,选择按人追加(如每人追加 +¥300)或整局追加预算,系统自动完成老成员差额补偿与看板刷新。 + • 降价调整保护:若房主手动调低单价,已报名的 2 人仍按原价受协议保护,新报名单人出价生效。 + + + + + + + + + + + 同城线下组局安全风控提示 + + + + 平台严格保障人身安全,严禁将私人住宅、酒店客房、封闭公寓等非公开场所作为履约地点。 + + 请选择以下平台认证的示范公开商圈: + + + + {{ zone }} + + + + + + + + @@ -319,17 +524,39 @@ const handleSubmit = () => { width: 220rpx; font-size: 26rpx; color: #CBD5E1; + height: 48rpx; + line-height: 48rpx; + display: flex; + align-items: center; + flex-shrink: 0; } .row-input { flex: 1; font-size: 26rpx; color: #F8FAFC; + height: 48rpx; + line-height: 48rpx; + box-sizing: border-box; + + &.price-input { + font-size: 34rpx; + font-weight: 700; + color: #F8FAFC; + letter-spacing: 0.5px; + font-variant-numeric: tabular-nums; + } } .ph { color: #475569; } + + .price-ph { + font-size: 26rpx; + font-weight: normal; + color: #475569; + } } .stepper-row { @@ -404,6 +631,182 @@ const handleSubmit = () => { font-variant-numeric: tabular-nums; } } + + .pricing-mode-row { + display: flex; + justify-content: space-between; + align-items: center; + padding: 20rpx 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.04); + + .pricing-mode-group { + display: flex; + gap: 12rpx; + + .pricing-mode-btn { + font-size: 22rpx; + padding: 8rpx 22rpx; + border-radius: 20rpx; + background: rgba(255, 255, 255, 0.05); + color: #94A3B8; + border: 1px solid rgba(255, 255, 255, 0.08); + + &.active { + background: rgba(99, 102, 241, 0.2); + color: #818CF8; + border-color: #6366F1; + font-weight: 600; + } + } + } + } + + + .preset-price-row { + display: flex; + align-items: center; + padding: 14rpx 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.04); + + .preset-label { + font-size: 20rpx; + color: #94A3B8; + width: 140rpx; + } + + .preset-chips { + flex: 1; + display: flex; + flex-wrap: wrap; + gap: 12rpx; + + .preset-chip { + font-size: 22rpx; + padding: 6rpx 18rpx; + border-radius: 12rpx; + background: rgba(255, 255, 255, 0.04); + border: 1px solid rgba(255, 255, 255, 0.08); + color: #CBD5E1; + + &.selected { + background: rgba(99, 102, 241, 0.2); + border-color: #6366F1; + color: #818CF8; + font-weight: 600; + } + } + } + } + + &.dynamic-price-card { + .card-header-switch { + display: flex; + justify-content: space-between; + align-items: center; + + .switch-title-box { + display: flex; + flex-direction: column; + + .form-title { + font-size: 28rpx; + font-weight: 700; + color: #F8FAFC; + } + .sub-label { + font-size: 20rpx; + color: #64748B; + margin-top: 4rpx; + } + } + } + + .dynamic-config-body { + margin-top: 24rpx; + padding-top: 20rpx; + border-top: 1px solid rgba(255, 255, 255, 0.04); + + .config-sec-title { + font-size: 22rpx; + font-weight: 600; + color: #94A3B8; + display: block; + margin-bottom: 14rpx; + } + + .rule-cards { + display: flex; + flex-direction: column; + gap: 14rpx; + + .rule-card { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.06); + border-radius: 16rpx; + padding: 18rpx 20rpx; + + &.active { + background: rgba(99, 102, 241, 0.12); + border-color: #6366F1; + } + + .rule-card-header { + display: flex; + align-items: center; + gap: 12rpx; + margin-bottom: 8rpx; + + .rule-name { + font-size: 26rpx; + font-weight: 700; + color: #F8FAFC; + } + + .rule-tag { + font-size: 18rpx; + padding: 2rpx 10rpx; + border-radius: 6rpx; + + &.recommend { + background: rgba(16, 185, 129, 0.2); + color: #10B981; + } + } + } + + .rule-desc { + font-size: 20rpx; + color: #94A3B8; + line-height: 1.45; + display: block; + } + } + } + + .scenario-notice { + margin-top: 20rpx; + padding: 16rpx 20rpx; + background: rgba(99, 102, 241, 0.08); + border: 1px dashed rgba(99, 102, 241, 0.3); + border-radius: 14rpx; + + .notice-title { + font-size: 22rpx; + font-weight: 700; + color: #818CF8; + display: block; + margin-bottom: 6rpx; + } + + .notice-item { + font-size: 20rpx; + color: #94A3B8; + line-height: 1.5; + display: block; + } + } + } + } } .bottom-bar { @@ -466,6 +869,59 @@ const handleSubmit = () => { border-color: #F0ECE4; box-shadow: 0 4rpx 20rpx rgba(28, 25, 23, 0.05); + .card-label { + color: #1C1917; + } + + .game-pills .game-pill { + background: #F8F5F0; + border-color: #E7E5E4; + color: #78716C; + + &.selected { + background: rgba(234, 88, 12, 0.1); + border-color: #EA580C; + color: #EA580C; + font-weight: 700; + } + } + + .stepper-row { + border-bottom-color: #F5F2EC; + + .stepper-info { + .row-label { + color: #1C1917; + } + .sub-label { + color: #78716C; + } + } + + .stepper-box { + background: #F8F5F0; + border: 1px solid #E7E5E4; + + .step-btn { + background: #FFFFFF; + color: #1C1917; + border: 1px solid #E7E5E4; + box-shadow: 0 2rpx 6rpx rgba(28, 25, 23, 0.04); + + &:disabled { + color: #A8A29E; + background: #F5F2EC; + border-color: #E7E5E4; + } + } + + .step-val { + color: #1C1917; + font-weight: 700; + } + } + } + .form-title { color: #1C1917; } @@ -476,6 +932,14 @@ const handleSubmit = () => { } .row-input { color: #1C1917; + + &.price-input { + color: #000000; + font-weight: 800; + } + } + .price-ph { + color: #A8A29E; } } .calc-preview { @@ -484,6 +948,78 @@ const handleSubmit = () => { color: #78716C; } } + + .pricing-mode-row { + border-bottom-color: #F5F2EC; + .pricing-mode-btn { + background: #F8F5F0; + color: #78716C; + border-color: #E7E5E4; + &.active { + background: rgba(234, 88, 12, 0.1); + color: #EA580C; + border-color: #EA580C; + } + } + } + + .preset-price-row { + border-bottom-color: #F5F2EC; + .preset-label { + color: #78716C; + } + .preset-chips .preset-chip { + background: #F8F5F0; + border-color: #E7E5E4; + color: #78716C; + &.selected { + background: rgba(234, 88, 12, 0.1); + border-color: #EA580C; + color: #EA580C; + font-weight: 700; + } + } + } + + + &.dynamic-price-card { + .card-header-switch .switch-title-box .form-title { + color: #1C1917; + } + .dynamic-config-body { + border-top-color: #F5F2EC; + .config-sec-title { + color: #78716C; + } + .rule-cards .rule-card { + background: #FAFAF9; + border-color: #E7E5E4; + &.active { + background: rgba(234, 88, 12, 0.06); + border-color: #EA580C; + .rule-card-header .rule-name { + color: #EA580C; + } + } + .rule-card-header .rule-name { + color: #1C1917; + } + .rule-desc { + color: #78716C; + } + } + .scenario-notice { + background: #FFF7ED; + border-color: #FDBA74; + .notice-title { + color: #EA580C; + } + .notice-item { + color: #78716C; + } + } + } + } } .bottom-bar { @@ -495,5 +1031,143 @@ const handleSubmit = () => { box-shadow: 0 4rpx 20rpx rgba(234, 88, 12, 0.35); } } + + .risk-modal-box { + background: #FFFFFF; + border-color: rgba(239, 68, 68, 0.4); + + .risk-modal-header .risk-title { + color: #DC2626; + } + + .risk-body { + .risk-desc { + color: #475569; + } + .risk-sub-tip { + color: #64748B; + } + .recommend-zones .zone-chip { + background: rgba(234, 88, 12, 0.08); + border-color: rgba(234, 88, 12, 0.25); + .zone-text { + color: #EA580C; + } + } + } + + .risk-footer .risk-cancel-btn { + background: #F1F5F9; + color: #334155; + border-color: #CBD5E1; + } + } +} + +.risk-modal-mask { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.75); + display: flex; + align-items: center; + justify-content: center; + z-index: 999; + padding: 40rpx; + backdrop-filter: blur(6px); +} + +.risk-modal-box { + width: 100%; + max-width: 620rpx; + background: #151D30; + border: 1px solid rgba(239, 68, 68, 0.35); + border-radius: 28rpx; + padding: 36rpx; + box-shadow: 0 20rpx 60rpx rgba(0, 0, 0, 0.6); + + .risk-modal-header { + display: flex; + align-items: center; + gap: 14rpx; + margin-bottom: 20rpx; + + .risk-shield-icon { + width: 44rpx; + height: 44rpx; + } + + .risk-title { + font-size: 30rpx; + font-weight: 700; + color: #F87171; + } + } + + .risk-body { + margin-bottom: 30rpx; + + .risk-desc { + display: block; + font-size: 24rpx; + color: #CBD5E1; + line-height: 1.6; + margin-bottom: 20rpx; + } + + .risk-sub-tip { + display: block; + font-size: 22rpx; + color: #94A3B8; + margin-bottom: 16rpx; + font-weight: 600; + } + + .recommend-zones { + display: flex; + flex-direction: column; + gap: 12rpx; + + .zone-chip { + display: flex; + align-items: center; + gap: 12rpx; + background: rgba(99, 102, 241, 0.12); + border: 1px solid rgba(99, 102, 241, 0.3); + border-radius: 14rpx; + padding: 16rpx 20rpx; + + .zone-pin-icon { + width: 28rpx; + height: 28rpx; + flex-shrink: 0; + } + + .zone-text { + font-size: 24rpx; + color: #A5B4FC; + font-weight: 500; + } + } + } + } + + .risk-footer { + display: flex; + justify-content: flex-end; + + .risk-cancel-btn { + width: 100%; + height: 72rpx; + line-height: 72rpx; + background: #1E293B; + border: 1px solid rgba(255, 255, 255, 0.1); + color: #E2E8F0; + font-size: 26rpx; + border-radius: 16rpx; + } + } } diff --git a/pwuniapp/pages/activity/detail.vue b/pwuniapp/pages/activity/detail.vue index 7eb9935..0e4522e 100644 --- a/pwuniapp/pages/activity/detail.vue +++ b/pwuniapp/pages/activity/detail.vue @@ -1,26 +1,38 @@ + + diff --git a/pwuniapp/pages/expert/detail.vue b/pwuniapp/pages/expert/detail.vue index 70e527b..3e30a0a 100644 --- a/pwuniapp/pages/expert/detail.vue +++ b/pwuniapp/pages/expert/detail.vue @@ -1,144 +1,150 @@ @@ -519,6 +634,39 @@ const handlePay = () => { } } + &.coupon-clickable { + align-items: center; + padding: 12rpx 0; + cursor: pointer; + + .fee-k-wrap { + display: flex; + align-items: center; + gap: 12rpx; + + .coupon-icon-svg { + width: 32rpx; + height: 32rpx; + } + } + + .fee-v-wrap { + display: flex; + align-items: center; + gap: 8rpx; + + .arrow-svg { + width: 24rpx; + height: 24rpx; + opacity: 0.6; + } + + .muted { + color: #64748B; + } + } + } + &.total-row { border-top: 1px solid rgba(255, 255, 255, 0.06); padding-top: 16rpx; @@ -586,4 +734,173 @@ const handlePay = () => { margin: 0; } } + +.coupon-modal-mask { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + backdrop-filter: blur(8px); + z-index: 999; + display: flex; + align-items: flex-end; + justify-content: center; +} + +.coupon-modal-content { + width: 100%; + max-width: 600px; + background: #151D30; + border-top-left-radius: 36rpx; + border-top-right-radius: 36rpx; + padding: 36rpx 36rpx calc(36rpx + env(safe-area-inset-bottom)); + border: 1px solid rgba(255, 255, 255, 0.1); + border-bottom: none; + box-shadow: 0 -8rpx 32rpx rgba(0, 0, 0, 0.5); + animation: slideUp 0.25s ease-out; + + .modal-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 32rpx; + + .modal-title { + font-size: 32rpx; + font-weight: 700; + color: #F8FAFC; + } + + .modal-close { + width: 48rpx; + height: 48rpx; + display: flex; + align-items: center; + justify-content: center; + + .close-icon { + width: 36rpx; + height: 36rpx; + } + } + } + + .coupons-list { + display: flex; + flex-direction: column; + gap: 20rpx; + + .coupon-card { + display: flex; + align-items: center; + background: rgba(255, 255, 255, 0.04); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 20rpx; + padding: 24rpx; + transition: all 0.2s; + + .coupon-left { + width: 120rpx; + display: flex; + align-items: baseline; + justify-content: center; + color: #F59E0B; + + .coupon-amount-unit { + font-size: 26rpx; + font-weight: 600; + } + .coupon-amount-val { + font-size: 44rpx; + font-weight: 700; + } + } + + .coupon-mid { + flex: 1; + padding: 0 16rpx; + display: flex; + flex-direction: column; + gap: 6rpx; + + .coupon-card-title { + font-size: 28rpx; + font-weight: 600; + color: #F8FAFC; + } + .coupon-card-desc { + font-size: 22rpx; + color: #94A3B8; + } + } + + .coupon-right { + .coupon-tag { + font-size: 22rpx; + color: #818CF8; + background: rgba(99, 102, 241, 0.15); + padding: 6rpx 16rpx; + border-radius: 12rpx; + } + } + + &.active { + border-color: #F59E0B; + background: rgba(245, 158, 11, 0.1); + } + + &.disabled { + opacity: 0.45; + } + } + } +} + +.theme-warm { + .coupon-modal-content { + background: #FFFFFF; + border-color: #E7E5E4; + box-shadow: 0 -8rpx 32rpx rgba(0, 0, 0, 0.1); + + .modal-header { + .modal-title { + color: #1C1917; + } + } + + .coupons-list { + .coupon-card { + background: #FDFBF7; + border-color: #E7E5E4; + + .coupon-left { + color: #EA580C; + } + + .coupon-mid { + .coupon-card-title { + color: #1C1917; + } + .coupon-card-desc { + color: #78716C; + } + } + + .coupon-right { + .coupon-tag { + color: #EA580C; + background: #FFF7ED; + } + } + + &.active { + border-color: #EA580C; + background: #FFF7ED; + } + } + } + } +} diff --git a/pwuniapp/pages/order/list.vue b/pwuniapp/pages/order/list.vue index 568d59b..91a4c6d 100644 --- a/pwuniapp/pages/order/list.vue +++ b/pwuniapp/pages/order/list.vue @@ -1,5 +1,5 @@