From 112435199a1e3b0c3c0177f5a0f5ec3440806432 Mon Sep 17 00:00:00 2001 From: dushixiang Date: Sun, 23 Oct 2022 20:05:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=20v1.3.0=20beta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- build.sh | 4 + go.mod | 20 +- go.sum | 43 +- server/api/abi/abi.go | 70 + server/api/access_gateway.go | 17 +- server/api/account.go | 180 +- server/api/api.go | 35 +- server/api/asset.go | 69 +- server/api/authorised.go | 136 + server/api/branding.go | 15 + server/api/command.go | 41 +- server/api/credential.go | 52 +- server/api/guacamole.go | 135 +- server/api/guacamole_handler.go | 12 +- server/api/job.go | 17 +- server/api/login-log.go | 3 +- server/api/login_policy.go | 143 + server/api/overview.go | 205 +- server/api/resource-sharer.go | 51 - server/api/role.go | 100 + server/api/security.go | 4 +- server/api/session.go | 63 +- server/api/ssh_command_deal.go | 6 - server/api/stats.go | 88 +- server/api/storage.go | 10 +- server/api/storage_log.go | 48 + server/api/strategy.go | 16 +- server/api/tenant.go | 83 + server/api/term.go | 64 +- server/api/term_handler.go | 55 +- server/api/test/test.go | 66 - server/api/user.go | 85 +- server/api/{user-group.go => user_group.go} | 19 +- server/api/worker/asset.go | 49 + server/api/worker/command.go | 132 + server/app/app.go | 25 +- server/app/middleware.go | 145 - server/app/middleware/auth.go | 138 + server/app/middleware/error_handler.go | 28 + server/app/middleware/tcpwall.go | 72 + server/app/server.go | 187 +- server/branding/branding.go | 13 + server/{guacd => common/guacamole}/guacd.go | 15 +- server/{utils => common}/jsontime.go | 2 +- server/common/maps/maps.go | 3 + server/{constant => common/nt}/const.go | 34 +- server/common/nt/errors.go | 8 + server/common/sets/set.go | 34 + server/common/slices/slices.go | 1 + server/common/taskrunner/task_runner.go | 30 + server/{ => common}/term/next_terminal.go | 4 + server/{ => common}/term/recorder.go | 0 server/{ => common}/term/ssh.go | 0 server/{ => common}/term/test/test_ssh.go | 0 server/{totp => common}/totp.go | 2 +- server/config/config.go | 4 +- server/constant/errors.go | 7 - server/dto/auth.go | 1 + server/dto/authorised.go | 52 + server/dto/dashboard.go | 10 +- server/dto/identity.go | 14 +- server/dto/overview.go | 7 + server/dto/permission.go | 7 + server/dto/resource.go | 1 - server/dto/storage_log.go | 15 + server/env/db.go | 8 +- server/global/cache/cache.go | 2 + server/global/gateway/gateway.go | 6 +- server/global/gateway/manager.go | 3 - server/global/gateway/tunnel.go | 14 - server/global/license/license.go | 12 + server/global/security/security.go | 4 - server/global/session/session.go | 15 +- server/global/stat/load.go | 104 + server/log/logger.go | 371 +- server/model/StorageLog.go | 17 + server/model/access_gateway.go | 42 +- server/model/access_token.go | 12 +- server/model/asset.go | 62 +- server/model/authorised.go | 18 + server/model/command.go | 25 +- server/model/credential.go | 37 +- server/model/job.go | 32 +- server/model/login_log.go | 20 +- server/model/login_policy.go | 36 + server/model/resource_sharer.go | 14 - server/model/role.go | 90 + server/model/session.go | 113 +- server/model/share_session.go | 21 + server/model/storage.go | 36 +- server/model/strategy.go | 26 +- server/model/tenant.go | 15 + server/model/user.go | 47 +- server/model/user_group.go | 18 +- server/repository/access_token.go | 2 + server/repository/asset.go | 252 +- server/repository/authorised.go | 167 + server/repository/base.go | 4 +- server/repository/command.go | 68 +- server/repository/credential.go | 37 +- server/repository/gateway.go | 2 + server/repository/job.go | 6 +- server/repository/job_log.go | 14 +- server/repository/login_log.go | 18 + server/repository/login_policy.go | 79 + server/repository/login_policy_user_ref.go | 67 + server/repository/property.go | 2 + server/repository/resource_sharer.go | 184 - server/repository/role.go | 88 + server/repository/role_menu.go | 29 + server/repository/security.go | 2 + server/repository/session.go | 50 +- server/repository/storage.go | 2 + server/repository/storage_log.go | 78 + server/repository/strategy.go | 4 +- server/repository/tenant.go | 70 + server/repository/user.go | 37 +- server/repository/user_group.go | 4 +- server/repository/user_group_member.go | 10 +- server/repository/user_role_ref.go | 30 + server/repository/var.go | 21 - server/service/access_token.go | 37 +- server/service/asset.go | 118 +- server/service/authorised.go | 128 + server/service/backup.go | 37 +- server/service/base.go | 20 +- server/{cli => service}/cli.go | 19 +- server/service/credential.go | 7 +- server/service/gateway.go | 5 +- server/service/job.go | 45 +- server/service/job_check_asset_status.go | 18 +- server/service/job_exec_shell.go | 17 +- server/service/login_policy.go | 249 + server/service/mail.go | 19 +- server/service/menu.go | 77 + server/service/menu_default_data.go | 408 + server/service/property.go | 46 +- server/service/role.go | 268 + server/service/security.go | 2 + server/service/session.go | 96 +- server/service/storage.go | 24 +- server/service/storage_log.go | 29 + server/service/user.go | 183 +- server/service/user_group.go | 54 +- server/service/var.go | 17 - server/service/worker.go | 84 + server/sshd/sshd.go | 23 +- server/sshd/ui.go | 73 +- server/sshd/writer.go | 84 +- server/task/ticker.go | 187 +- server/utils/guacamole.go | 19 - server/utils/license.go | 48 + server/utils/reflect.go | 7 + server/utils/ssh_tunnel.go | 1 - server/utils/util_test.go | 4 + server/utils/utils.go | 13 +- web/config-overrides.js | 8 + web/package-lock.json | 40539 ---------------- web/package.json | 52 +- web/public/asciinema.html | 42 - web/public/favicon.ico | Bin 178876 -> 137750 bytes web/public/index.html | 4 +- web/public/static/css/asciinema-player.css | 2563 - web/public/static/js/asciinema-player.js | 1213 - web/src/App.css | 102 +- web/src/App.js | 536 +- web/src/Arco.css | 0 web/src/api/access-gateway.js | 10 + web/src/api/account.js | 78 + web/src/api/api.js | 50 + web/src/api/asset.js | 42 + web/src/api/authorised.js | 66 + web/src/api/branding.js | 15 + web/src/api/command-filter-rule.js | 10 + web/src/api/command-filter.js | 38 + web/src/api/command.js | 16 + web/src/api/credential.js | 19 + web/src/api/job.js | 36 + web/src/api/license.js | 17 + web/src/api/login-log.js | 16 + web/src/api/login-policy.js | 40 + web/src/api/monitor.js | 37 + web/src/api/permission.js | 16 + web/src/api/role.js | 19 + web/src/api/security.js | 10 + web/src/api/session.js | 52 + web/src/api/storage-log.js | 23 + web/src/api/storage.js | 10 + web/src/api/strategy.js | 19 + web/src/api/tag.js | 15 + web/src/api/user-group.js | 19 + web/src/api/user.js | 28 + web/src/api/worker/asset.js | 19 + web/src/api/worker/command.js | 10 + web/src/common/auth.js | 8 + web/src/common/request.js | 37 +- web/src/common/router.js | 11 + web/src/components/AccessToken.js | 51 + web/src/components/Info.js | 118 + web/src/components/Landing.js | 20 + web/src/components/Login.css | 2 +- web/src/components/Login.js | 228 +- web/src/components/NoMatch.js | 22 + web/src/components/NoPermission.js | 33 + web/src/components/Totp.js | 131 + web/src/components/access/Access.css | 13 + web/src/components/access/Access.js | 12 +- web/src/components/access/AccessMonitor.js | 174 - web/src/components/access/Stats.js | 413 +- web/src/components/access/Term.css | 22 - web/src/components/access/Term.js | 552 +- web/src/components/access/TermMonitor.js | 83 - web/src/components/asset/AccessGateway.js | 559 +- .../components/asset/AccessGatewayModal.js | 68 +- web/src/components/asset/Asset.js | 1251 +- web/src/components/asset/AssetDetail.js | 52 + web/src/components/asset/AssetInfo.js | 39 + web/src/components/asset/AssetModal.css | 3 + web/src/components/asset/AssetModal.js | 1477 +- web/src/components/asset/AssetUser.js | 145 + web/src/components/asset/AssetUserBind.js | 99 + web/src/components/asset/AssetUserGroup.js | 146 + .../components/asset/AssetUserGroupBind.js | 105 + web/src/components/asset/ChangeOwner.js | 43 + web/src/components/asset/Command.js | 233 + web/src/components/asset/CommandModal.js | 93 + web/src/components/asset/Credential.js | 180 + .../{credential => asset}/CredentialModal.js | 80 +- web/src/components/asset/MyAsset.js | 312 - web/src/components/asset/SelectingAsset.js | 218 + web/src/components/authorised/Strategy.js | 233 + .../components/authorised/StrategyDetail.js | 33 + web/src/components/authorised/StrategyInfo.js | 47 + .../{user => authorised}/StrategyModal.js | 61 +- web/src/components/command/BatchCommand.js | 108 - web/src/components/command/ChooseAsset.js | 407 - web/src/components/command/Command.css | 4 - web/src/components/command/DynamicCommand.js | 649 - .../components/command/DynamicCommandModal.js | 60 - web/src/components/credential/Credential.js | 594 - web/src/components/dashboard/Dashboard.css | 8 +- web/src/components/dashboard/Dashboard.js | 198 +- web/src/components/dashboard/Monitoring.css | 3 + web/src/components/dashboard/Monitoring.js | 353 + web/src/components/devops/BatchCommand.js | 201 + web/src/components/devops/ExecuteCommand.css | 24 + web/src/components/devops/ExecuteCommand.js | 224 + web/src/components/devops/FileSystem.js | 82 +- web/src/components/devops/Job.js | 743 +- web/src/components/devops/JobLog.js | 108 + web/src/components/devops/JobModal.js | 78 +- web/src/components/devops/LoginLog.js | 425 - web/src/components/devops/Security.js | 382 - web/src/components/devops/SecurityModal.js | 66 - web/src/components/devops/Storage.js | 539 +- web/src/components/devops/StorageModal.js | 55 +- web/src/components/log-audit/LoginLog.js | 216 + web/src/components/log-audit/StorageLog.js | 171 + web/src/components/security/LoginPolicy.js | 180 + .../components/security/LoginPolicyBind.js | 114 + .../components/security/LoginPolicyDetail.js | 40 + .../components/security/LoginPolicyInfo.js | 46 + .../components/security/LoginPolicyModal.js | 110 + .../components/security/LoginPolicyUser.js | 128 + web/src/components/security/Security.js | 177 + web/src/components/security/SecurityModal.js | 89 + web/src/components/session/GuacdMonitor.js | 138 + web/src/components/session/GuacdPlayback.js | 246 + web/src/components/session/OfflineSession.css | 13 +- web/src/components/session/OfflineSession.js | 846 +- web/src/components/session/OnlineSession.js | 593 +- web/src/components/session/Playback.js | 6 +- .../session/SessionCommandRecord.js | 126 + web/src/components/session/TermMonitor.js | 105 + web/src/components/session/TermPlayback.js | 35 + web/src/components/setting/Setting.js | 1064 +- web/src/components/user/Info.js | 336 - web/src/components/user/Role.js | 179 + web/src/components/user/RoleDetail.js | 33 + web/src/components/user/RoleInfo.js | 46 + web/src/components/user/RoleModal.js | 154 + web/src/components/user/Strategy.js | 449 - web/src/components/user/User.js | 727 - web/src/components/user/UserGroup.js | 597 +- web/src/components/user/UserGroupDetail.js | 37 + web/src/components/user/UserGroupInfo.js | 33 + web/src/components/user/UserGroupModal.js | 48 +- web/src/components/user/UserModal.js | 69 - .../components/user/UserShareSelectedAsset.js | 595 - web/src/components/user/user/User.js | 268 + web/src/components/user/user/UserAsset.js | 147 + .../components/user/user/UserAuthorised.js | 110 + .../user/user/UserChangePasswordModal.js | 45 + .../components/user/user/UserDetailPage.js | 40 + web/src/components/user/user/UserInfo.js | 35 + .../components/user/user/UserLoginPolicy.js | 124 + .../user/user/UserLoginPolicyBind.js | 11 + web/src/components/user/user/UserModal.js | 114 + web/src/components/worker/MyAsset.js | 203 + web/src/components/worker/MyCommand.js | 144 + .../components/{asset => worker}/MyFile.js | 11 +- web/src/components/worker/MyInfo.js | 13 + web/src/dd/drag-weektime/DragWeekTime.css | 113 + web/src/dd/drag-weektime/DragWeekTime.js | 334 + web/src/dd/fi/show.js | 17 + web/src/hook/column-state.js | 75 + web/src/hook/title.js | 10 + web/src/images/bg.jpg | Bin 155353 -> 0 bytes web/src/images/logo-with-name.png | Bin 0 -> 8151 bytes web/src/images/logo-with-name.svg | 14 - web/src/images/logo.png | Bin 0 -> 2247 bytes web/src/images/logo.svg | 9 - web/src/index.js | 9 +- web/src/layout/FooterComponent.js | 30 + web/src/layout/ManagerLayout.js | 199 + web/src/layout/UserLayout.js | 132 + web/src/layout/router.js | 181 + web/src/logo.svg | 7 - web/src/service/permission.js | 42 +- web/src/utils/array.js | 12 + web/src/utils/document.js | 4 + web/src/utils/fun.js | 14 + web/src/utils/strings.js | 15 + web/src/utils/times.js | 19 + web/src/utils/utils.js | 6 +- web/src/utils/week.js | 7 + web/src/utils/window.js | 7 + web/src/utils/xterm-scroll-pretty.js | 14 + 329 files changed, 18340 insertions(+), 58458 deletions(-) create mode 100644 server/api/abi/abi.go create mode 100644 server/api/authorised.go create mode 100644 server/api/branding.go create mode 100644 server/api/login_policy.go delete mode 100644 server/api/resource-sharer.go create mode 100644 server/api/role.go delete mode 100644 server/api/ssh_command_deal.go create mode 100644 server/api/storage_log.go create mode 100644 server/api/tenant.go delete mode 100644 server/api/test/test.go rename server/api/{user-group.go => user_group.go} (79%) create mode 100644 server/api/worker/asset.go create mode 100644 server/api/worker/command.go delete mode 100644 server/app/middleware.go create mode 100644 server/app/middleware/auth.go create mode 100644 server/app/middleware/error_handler.go create mode 100644 server/app/middleware/tcpwall.go create mode 100644 server/branding/branding.go rename server/{guacd => common/guacamole}/guacd.go (92%) rename server/{utils => common}/jsontime.go (98%) create mode 100644 server/common/maps/maps.go rename server/{constant => common/nt}/const.go (54%) create mode 100644 server/common/nt/errors.go create mode 100644 server/common/sets/set.go create mode 100644 server/common/slices/slices.go create mode 100644 server/common/taskrunner/task_runner.go rename server/{ => common}/term/next_terminal.go (97%) rename server/{ => common}/term/recorder.go (100%) rename server/{ => common}/term/ssh.go (100%) rename server/{ => common}/term/test/test_ssh.go (100%) rename server/{totp => common}/totp.go (95%) delete mode 100644 server/constant/errors.go create mode 100644 server/dto/authorised.go create mode 100644 server/dto/overview.go create mode 100644 server/dto/permission.go create mode 100644 server/dto/storage_log.go create mode 100644 server/global/license/license.go create mode 100644 server/global/stat/load.go create mode 100644 server/model/StorageLog.go create mode 100644 server/model/authorised.go create mode 100644 server/model/login_policy.go delete mode 100644 server/model/resource_sharer.go create mode 100644 server/model/role.go create mode 100644 server/model/share_session.go create mode 100644 server/model/tenant.go create mode 100644 server/repository/authorised.go create mode 100644 server/repository/login_policy.go create mode 100644 server/repository/login_policy_user_ref.go delete mode 100644 server/repository/resource_sharer.go create mode 100644 server/repository/role.go create mode 100644 server/repository/role_menu.go create mode 100644 server/repository/storage_log.go create mode 100644 server/repository/tenant.go create mode 100644 server/repository/user_role_ref.go delete mode 100644 server/repository/var.go create mode 100644 server/service/authorised.go rename server/{cli => service}/cli.go (74%) create mode 100644 server/service/login_policy.go create mode 100644 server/service/menu.go create mode 100644 server/service/menu_default_data.go create mode 100644 server/service/role.go create mode 100644 server/service/storage_log.go delete mode 100644 server/service/var.go create mode 100644 server/service/worker.go delete mode 100644 server/utils/guacamole.go create mode 100644 server/utils/license.go create mode 100644 server/utils/reflect.go delete mode 100644 server/utils/ssh_tunnel.go create mode 100644 web/config-overrides.js delete mode 100644 web/package-lock.json delete mode 100644 web/public/asciinema.html delete mode 100644 web/public/static/css/asciinema-player.css delete mode 100644 web/public/static/js/asciinema-player.js create mode 100644 web/src/Arco.css create mode 100644 web/src/api/access-gateway.js create mode 100644 web/src/api/account.js create mode 100644 web/src/api/api.js create mode 100644 web/src/api/asset.js create mode 100644 web/src/api/authorised.js create mode 100644 web/src/api/branding.js create mode 100644 web/src/api/command-filter-rule.js create mode 100644 web/src/api/command-filter.js create mode 100644 web/src/api/command.js create mode 100644 web/src/api/credential.js create mode 100644 web/src/api/job.js create mode 100644 web/src/api/license.js create mode 100644 web/src/api/login-log.js create mode 100644 web/src/api/login-policy.js create mode 100644 web/src/api/monitor.js create mode 100644 web/src/api/permission.js create mode 100644 web/src/api/role.js create mode 100644 web/src/api/security.js create mode 100644 web/src/api/session.js create mode 100644 web/src/api/storage-log.js create mode 100644 web/src/api/storage.js create mode 100644 web/src/api/strategy.js create mode 100644 web/src/api/tag.js create mode 100644 web/src/api/user-group.js create mode 100644 web/src/api/user.js create mode 100644 web/src/api/worker/asset.js create mode 100644 web/src/api/worker/command.js create mode 100644 web/src/common/auth.js create mode 100644 web/src/common/router.js create mode 100644 web/src/components/AccessToken.js create mode 100644 web/src/components/Info.js create mode 100644 web/src/components/Landing.js create mode 100644 web/src/components/NoMatch.js create mode 100644 web/src/components/NoPermission.js create mode 100644 web/src/components/Totp.js delete mode 100644 web/src/components/access/AccessMonitor.js delete mode 100644 web/src/components/access/Term.css delete mode 100644 web/src/components/access/TermMonitor.js create mode 100644 web/src/components/asset/AssetDetail.js create mode 100644 web/src/components/asset/AssetInfo.js create mode 100644 web/src/components/asset/AssetModal.css create mode 100644 web/src/components/asset/AssetUser.js create mode 100644 web/src/components/asset/AssetUserBind.js create mode 100644 web/src/components/asset/AssetUserGroup.js create mode 100644 web/src/components/asset/AssetUserGroupBind.js create mode 100644 web/src/components/asset/ChangeOwner.js create mode 100644 web/src/components/asset/Command.js create mode 100644 web/src/components/asset/CommandModal.js create mode 100644 web/src/components/asset/Credential.js rename web/src/components/{credential => asset}/CredentialModal.js (66%) delete mode 100644 web/src/components/asset/MyAsset.js create mode 100644 web/src/components/asset/SelectingAsset.js create mode 100644 web/src/components/authorised/Strategy.js create mode 100644 web/src/components/authorised/StrategyDetail.js create mode 100644 web/src/components/authorised/StrategyInfo.js rename web/src/components/{user => authorised}/StrategyModal.js (65%) delete mode 100644 web/src/components/command/BatchCommand.js delete mode 100644 web/src/components/command/ChooseAsset.js delete mode 100644 web/src/components/command/Command.css delete mode 100644 web/src/components/command/DynamicCommand.js delete mode 100644 web/src/components/command/DynamicCommandModal.js delete mode 100644 web/src/components/credential/Credential.js create mode 100644 web/src/components/dashboard/Monitoring.css create mode 100644 web/src/components/dashboard/Monitoring.js create mode 100644 web/src/components/devops/BatchCommand.js create mode 100644 web/src/components/devops/ExecuteCommand.css create mode 100644 web/src/components/devops/ExecuteCommand.js create mode 100644 web/src/components/devops/JobLog.js delete mode 100644 web/src/components/devops/LoginLog.js delete mode 100644 web/src/components/devops/Security.js delete mode 100644 web/src/components/devops/SecurityModal.js create mode 100644 web/src/components/log-audit/LoginLog.js create mode 100644 web/src/components/log-audit/StorageLog.js create mode 100644 web/src/components/security/LoginPolicy.js create mode 100644 web/src/components/security/LoginPolicyBind.js create mode 100644 web/src/components/security/LoginPolicyDetail.js create mode 100644 web/src/components/security/LoginPolicyInfo.js create mode 100644 web/src/components/security/LoginPolicyModal.js create mode 100644 web/src/components/security/LoginPolicyUser.js create mode 100644 web/src/components/security/Security.js create mode 100644 web/src/components/security/SecurityModal.js create mode 100644 web/src/components/session/GuacdMonitor.js create mode 100644 web/src/components/session/GuacdPlayback.js create mode 100644 web/src/components/session/SessionCommandRecord.js create mode 100644 web/src/components/session/TermMonitor.js create mode 100644 web/src/components/session/TermPlayback.js delete mode 100644 web/src/components/user/Info.js create mode 100644 web/src/components/user/Role.js create mode 100644 web/src/components/user/RoleDetail.js create mode 100644 web/src/components/user/RoleInfo.js create mode 100644 web/src/components/user/RoleModal.js delete mode 100644 web/src/components/user/Strategy.js delete mode 100644 web/src/components/user/User.js create mode 100644 web/src/components/user/UserGroupDetail.js create mode 100644 web/src/components/user/UserGroupInfo.js delete mode 100644 web/src/components/user/UserModal.js delete mode 100644 web/src/components/user/UserShareSelectedAsset.js create mode 100644 web/src/components/user/user/User.js create mode 100644 web/src/components/user/user/UserAsset.js create mode 100644 web/src/components/user/user/UserAuthorised.js create mode 100644 web/src/components/user/user/UserChangePasswordModal.js create mode 100644 web/src/components/user/user/UserDetailPage.js create mode 100644 web/src/components/user/user/UserInfo.js create mode 100644 web/src/components/user/user/UserLoginPolicy.js create mode 100644 web/src/components/user/user/UserLoginPolicyBind.js create mode 100644 web/src/components/user/user/UserModal.js create mode 100644 web/src/components/worker/MyAsset.js create mode 100644 web/src/components/worker/MyCommand.js rename web/src/components/{asset => worker}/MyFile.js (85%) create mode 100644 web/src/components/worker/MyInfo.js create mode 100644 web/src/dd/drag-weektime/DragWeekTime.css create mode 100644 web/src/dd/drag-weektime/DragWeekTime.js create mode 100644 web/src/dd/fi/show.js create mode 100644 web/src/hook/column-state.js create mode 100644 web/src/hook/title.js delete mode 100644 web/src/images/bg.jpg create mode 100644 web/src/images/logo-with-name.png delete mode 100644 web/src/images/logo-with-name.svg create mode 100644 web/src/images/logo.png delete mode 100644 web/src/images/logo.svg create mode 100644 web/src/layout/FooterComponent.js create mode 100644 web/src/layout/ManagerLayout.js create mode 100644 web/src/layout/UserLayout.js create mode 100644 web/src/layout/router.js delete mode 100644 web/src/logo.svg create mode 100644 web/src/utils/array.js create mode 100644 web/src/utils/document.js create mode 100644 web/src/utils/fun.js create mode 100644 web/src/utils/strings.js create mode 100644 web/src/utils/times.js create mode 100644 web/src/utils/week.js create mode 100644 web/src/utils/window.js create mode 100644 web/src/utils/xterm-scroll-pretty.js diff --git a/README.md b/README.md index 118e15e..ad1fe03 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ https://next.typesafe.cn/ 账号:test 密码:test ## 问题反馈 - Issues -- 微信群 加我微信拉你进群 +- 微信群 加我微信拉你进群 (请备注 next-terminal) diff --git a/build.sh b/build.sh index 2c4c5f0..b75fe25 100644 --- a/build.sh +++ b/build.sh @@ -1,5 +1,9 @@ #!/bin/bash +cp build/resources/logo.png web/src/images/logo.png +cp build/resources/logo-with-name.png web/src/images/logo-with-name.png +cp build/resources/favicon.ico web/public/favicon.ico + rm -rf server/resource/build echo "clean build history" diff --git a/go.mod b/go.mod index 7ced1ac..adfaca2 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.17 require ( github.com/glebarez/sqlite v1.3.5 github.com/gliderlabs/ssh v0.3.3 - github.com/gofrs/uuid v4.2.0+incompatible + github.com/google/uuid v1.3.0 github.com/gorilla/websocket v1.5.0 github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible github.com/labstack/echo/v4 v4.7.0 @@ -17,10 +17,13 @@ require ( github.com/pkg/sftp v1.13.4 github.com/pquerna/otp v1.3.0 github.com/robfig/cron/v3 v3.0.1 + github.com/shirou/gopsutil/v3 v3.22.9 github.com/sirupsen/logrus v1.8.1 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.10.1 - github.com/stretchr/testify v1.7.0 + github.com/stretchr/testify v1.8.0 + github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb + go.uber.org/zap v1.23.0 golang.org/x/crypto v0.0.0-20220214200702-86341886e292 golang.org/x/net v0.0.0-20220225172249-27dd8689420f golang.org/x/text v0.3.7 @@ -36,33 +39,40 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/fsnotify/fsnotify v1.5.1 // indirect github.com/glebarez/go-sqlite v1.14.8 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-sql-driver/mysql v1.6.0 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect - github.com/google/uuid v1.3.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.4 // indirect github.com/kr/fs v0.1.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/mitchellh/mapstructure v1.4.3 // indirect github.com/pelletier/go-toml v1.9.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect github.com/spf13/afero v1.8.1 // indirect github.com/spf13/cast v1.4.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/subosito/gotenv v1.2.0 // indirect + github.com/tklauser/go-sysconf v0.3.10 // indirect + github.com/tklauser/numcpus v0.4.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.1 // indirect - golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 // indirect + github.com/yusufpapurcu/wmi v1.2.2 // indirect + go.uber.org/atomic v1.7.0 // indirect + go.uber.org/multierr v1.6.0 // indirect + golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect modernc.org/libc v1.14.6 // indirect modernc.org/mathutil v1.4.1 // indirect modernc.org/memory v1.0.5 // indirect diff --git a/go.sum b/go.sum index 001c213..75efb10 100644 --- a/go.sum +++ b/go.sum @@ -65,6 +65,8 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= @@ -133,12 +135,12 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= -github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= @@ -189,6 +191,8 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -283,6 +287,8 @@ github.com/labstack/echo/v4 v4.7.0 h1:8wHgZhoE9OT1NSLw6sfrX7ZGpWMtO5Zlfr68+BIo18 github.com/labstack/echo/v4 v4.7.0/go.mod h1:xkCDAdFCIf8jsFQ5NnbK7oqaF/yU1A1X20Ltm0OvSks= github.com/labstack/gommon v0.3.1 h1:OomWaJXm7xR6L1HmEtGyQf26TEn7V6X88mktX9kee9o= github.com/labstack/gommon v0.3.1/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= @@ -339,6 +345,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/pquerna/otp v1.3.0 h1:oJV/SkzR33anKXwQU3Of42rL4wbrffP4uvUf1SvS5Xs= github.com/pquerna/otp v1.3.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -362,6 +370,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.4.0/go.mod h1:ALv2SRj7GxYV4HO9elxH9nS6M9gW+xDNxqmyJ6RfDFM= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA= +github.com/shirou/gopsutil/v3 v3.22.9/go.mod h1:bBYl1kjgEJpWpxeHmLI+dVHWtyAwfcmSBLDsp2TNT8A= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= @@ -381,16 +391,25 @@ github.com/spf13/viper v1.10.1 h1:nuJZuYpG7gTj/XqiUwg8bA0cp1+M2mC3J4g5luUYBKk= github.com/spf13/viper v1.10.1/go.mod h1:IGlFPqhNAPKRxohIzWpI5QEy4kuI7tcl5WvR+8qy1rU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= +github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= +github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= +github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb h1:Ywfo8sUltxogBpFuMOFRrrSifO788kAFxmvVw31PtQQ= +github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb/go.mod h1:ikPs9bRWicNw3S7XpJ8sK/smGwU9WcSVU3dy9qahYBM= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4= @@ -400,6 +419,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= +github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= @@ -411,9 +432,15 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY= +go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -552,6 +579,7 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -579,6 +607,7 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -608,8 +637,9 @@ golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 h1:nhht2DYV/Sn3qOayu8lM+cU1ii9sTLUeBQwQQfUHtrs= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -853,8 +883,9 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.3.2 h1:QJryWiqQ91EvZ0jZL48NOpdlPdMjdip1hQ8bTgo4H7I= gorm.io/driver/mysql v1.3.2/go.mod h1:ChK6AHbHgDCFZyJp0F+BmVGb06PSIoh9uVYKAlRbb2U= gorm.io/gorm v1.22.5/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= diff --git a/server/api/abi/abi.go b/server/api/abi/abi.go new file mode 100644 index 0000000..ee0945a --- /dev/null +++ b/server/api/abi/abi.go @@ -0,0 +1,70 @@ +package abi + +import ( + "github.com/labstack/echo/v4" + "next-terminal/server/common/maps" + "next-terminal/server/common/nt" + "next-terminal/server/dto" + "next-terminal/server/global/cache" + "next-terminal/server/model" +) + +type Abi struct { +} + +func (r *Abi) Fail(c echo.Context, code int, message string) error { + return c.JSON(200, maps.Map{ + "code": code, + "message": message, + }) +} + +func (r *Abi) FailWithData(c echo.Context, code int, message string, data interface{}) error { + return c.JSON(200, maps.Map{ + "code": code, + "message": message, + "data": data, + }) +} + +func (r *Abi) Success(c echo.Context, data interface{}) error { + return c.JSON(200, maps.Map{ + "code": 1, + "message": "success", + "data": data, + }) +} + +func (r *Abi) GetToken(c echo.Context) string { + token := c.Request().Header.Get(nt.Token) + if len(token) > 0 { + return token + } + return c.QueryParam(nt.Token) +} + +func (r *Abi) GetCurrentAccount(c echo.Context) (*model.User, bool) { + token := r.GetToken(c) + get, b := cache.TokenManager.Get(token) + if b { + return get.(dto.Authorization).User, true + } + return nil, false +} + +func (r *Abi) HasPermission(c echo.Context, owner string) bool { + // 检测是否登录 + account, found := r.GetCurrentAccount(c) + if !found { + return false + } + // 检测是否为管理人员 + if nt.TypeAdmin == account.Type { + return true + } + // 检测是否为所有者 + if owner == account.ID { + return true + } + return false +} diff --git a/server/api/access_gateway.go b/server/api/access_gateway.go index 69c63a2..bc6f3b4 100644 --- a/server/api/access_gateway.go +++ b/server/api/access_gateway.go @@ -2,6 +2,8 @@ package api import ( "context" + "next-terminal/server/common" + "next-terminal/server/common/maps" "strconv" "strings" @@ -23,7 +25,7 @@ func (api AccessGatewayApi) AccessGatewayCreateEndpoint(c echo.Context) error { } item.ID = utils.UUID() - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() if err := repository.GatewayRepository.Create(context.TODO(), &item); err != nil { return err @@ -38,11 +40,14 @@ func (api AccessGatewayApi) AccessGatewayAllEndpoint(c echo.Context) error { if err != nil { return err } - var simpleGateways = make([]model.AccessGatewayForPage, 0) - for i := 0; i < len(gateways); i++ { - simpleGateways = append(simpleGateways, model.AccessGatewayForPage{ID: gateways[i].ID, Name: gateways[i].Name}) + items := make([]maps.Map, len(gateways)) + for i, e := range gateways { + items[i] = maps.Map{ + "id": e.ID, + "name": e.Name, + } } - return Success(c, simpleGateways) + return Success(c, items) } func (api AccessGatewayApi) AccessGatewayPagingEndpoint(c echo.Context) error { @@ -66,7 +71,7 @@ func (api AccessGatewayApi) AccessGatewayPagingEndpoint(c echo.Context) error { } } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) diff --git a/server/api/account.go b/server/api/account.go index 6c2b470..a5ae10a 100644 --- a/server/api/account.go +++ b/server/api/account.go @@ -3,17 +3,17 @@ package api import ( "context" "errors" + "next-terminal/server/common" + "next-terminal/server/common/nt" "path" - "strconv" + "strings" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/dto" "next-terminal/server/global/cache" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/service" - "next-terminal/server/totp" "next-terminal/server/utils" "github.com/labstack/echo/v4" @@ -50,7 +50,7 @@ func (api AccountApi) LoginEndpoint(c echo.Context) error { return FailWithData(c, -1, "您输入的账号或密码不正确", count) } - if user.Status == constant.StatusDisabled { + if user.Status == nt.StatusDisabled { return Fail(c, -1, "该账户已停用") } @@ -64,11 +64,24 @@ func (api AccountApi) LoginEndpoint(c echo.Context) error { return FailWithData(c, -1, "您输入的账号或密码不正确", count) } + // 账号密码正确,需要进行两步验证 if user.TOTPSecret != "" && user.TOTPSecret != "-" { - return Fail(c, 0, "") + if loginAccount.TOTP == "" { + return Fail(c, 100, "") + } else { + if !common.Validate(loginAccount.TOTP, user.TOTPSecret) { + count++ + cache.LoginFailedKeyManager.Set(loginFailCountKey, count, cache.LoginLockExpiration) + // 保存登录日志 + if err := service.UserService.SaveLoginLog(c.RealIP(), c.Request().UserAgent(), loginAccount.Username, false, loginAccount.Remember, "", "双因素认证授权码不正确"); err != nil { + return err + } + return FailWithData(c, -1, "您输入双因素认证授权码不正确", count) + } + } } - token, err := api.LoginSuccess(loginAccount, user) + token, err := api.LoginSuccess(loginAccount, user, c.RealIP()) if err != nil { return err } @@ -80,12 +93,17 @@ func (api AccountApi) LoginEndpoint(c echo.Context) error { return Success(c, token) } -func (api AccountApi) LoginSuccess(loginAccount dto.LoginAccount, user model.User) (string, error) { +func (api AccountApi) LoginSuccess(loginAccount dto.LoginAccount, user model.User, ip string) (string, error) { + // 判断当前时间是否允许该用户登录 + if err := service.LoginPolicyService.Check(user.ID, ip); err != nil { + return "", err + } + token := utils.LongUUID() authorization := dto.Authorization{ Token: token, - Type: constant.LoginToken, + Type: nt.LoginToken, Remember: loginAccount.Remember, User: &user, } @@ -97,75 +115,12 @@ func (api AccountApi) LoginSuccess(loginAccount dto.LoginAccount, user model.Use cache.TokenManager.Set(token, authorization, cache.NotRememberExpiration) } + b := true // 修改登录状态 - err := repository.UserRepository.Update(context.TODO(), &model.User{Online: true, ID: user.ID}) + err := repository.UserRepository.Update(context.TODO(), &model.User{Online: &b, ID: user.ID}) return token, err } -func (api AccountApi) LoginWithTotpEndpoint(c echo.Context) error { - var loginAccount dto.LoginAccount - if err := c.Bind(&loginAccount); err != nil { - return err - } - - // 存储登录失败次数信息 - loginFailCountKey := c.RealIP() + loginAccount.Username - v, ok := cache.LoginFailedKeyManager.Get(loginFailCountKey) - if !ok { - v = 1 - } - count := v.(int) - if count >= 5 { - return Fail(c, -1, "登录失败次数过多,请等待5分钟后再试") - } - - user, err := repository.UserRepository.FindByUsername(context.TODO(), loginAccount.Username) - if err != nil { - count++ - cache.LoginFailedKeyManager.Set(loginFailCountKey, count, cache.LoginLockExpiration) - // 保存登录日志 - if err := service.UserService.SaveLoginLog(c.RealIP(), c.Request().UserAgent(), loginAccount.Username, false, loginAccount.Remember, "", "账号或密码不正确"); err != nil { - return err - } - return FailWithData(c, -1, "您输入的账号或密码不正确", count) - } - - if user.Status == constant.StatusDisabled { - return Fail(c, -1, "该账户已停用") - } - - if err := utils.Encoder.Match([]byte(user.Password), []byte(loginAccount.Password)); err != nil { - count++ - cache.LoginFailedKeyManager.Set(loginFailCountKey, count, cache.LoginLockExpiration) - // 保存登录日志 - if err := service.UserService.SaveLoginLog(c.RealIP(), c.Request().UserAgent(), loginAccount.Username, false, loginAccount.Remember, "", "账号或密码不正确"); err != nil { - return err - } - return FailWithData(c, -1, "您输入的账号或密码不正确", count) - } - - if !totp.Validate(loginAccount.TOTP, user.TOTPSecret) { - count++ - cache.LoginFailedKeyManager.Set(loginFailCountKey, count, cache.LoginLockExpiration) - // 保存登录日志 - if err := service.UserService.SaveLoginLog(c.RealIP(), c.Request().UserAgent(), loginAccount.Username, false, loginAccount.Remember, "", "双因素认证授权码不正确"); err != nil { - return err - } - return FailWithData(c, -1, "您输入双因素认证授权码不正确", count) - } - - token, err := api.LoginSuccess(loginAccount, user) - if err != nil { - return err - } - // 保存登录日志 - if err := service.UserService.SaveLoginLog(c.RealIP(), c.Request().UserAgent(), loginAccount.Username, true, loginAccount.Remember, token, ""); err != nil { - return err - } - - return Success(c, token) -} - func (api AccountApi) LogoutEndpoint(c echo.Context) error { token := GetToken(c) service.UserService.Logout(token) @@ -183,7 +138,7 @@ func (api AccountApi) ConfirmTOTPEndpoint(c echo.Context) error { return err } - if !totp.Validate(confirmTOTP.TOTP, confirmTOTP.Secret) { + if !common.Validate(confirmTOTP.TOTP, confirmTOTP.Secret) { return Fail(c, -1, "TOTP 验证失败,请重试") } @@ -202,7 +157,7 @@ func (api AccountApi) ConfirmTOTPEndpoint(c echo.Context) error { func (api AccountApi) ReloadTOTPEndpoint(c echo.Context) error { account, _ := GetCurrentAccount(c) - key, err := totp.NewTOTP(totp.GenerateOpts{ + key, err := common.NewTOTP(common.GenerateOpts{ Issuer: c.Request().Host, AccountName: account.Username, }) @@ -270,59 +225,68 @@ func (api AccountApi) ChangePasswordEndpoint(c echo.Context) error { } type AccountInfo struct { - Id string `json:"id"` - Username string `json:"username"` - Nickname string `json:"nickname"` - Type string `json:"type"` - EnableTotp bool `json:"enableTotp"` + Id string `json:"id"` + Username string `json:"username"` + Nickname string `json:"nickname"` + Type string `json:"type"` + EnableTotp bool `json:"enableTotp"` + Roles []string `json:"roles"` + Menus []string `json:"menus"` } func (api AccountApi) InfoEndpoint(c echo.Context) error { account, _ := GetCurrentAccount(c) + if strings.EqualFold("anonymous", account.Type) { + return Success(c, account) + } - user, err := repository.UserRepository.FindById(context.TODO(), account.ID) + user, err := service.UserService.FindById(account.ID) if err != nil { return err } + var menus []string + if service.UserService.IsSuperAdmin(account.ID) { + menus = service.MenuService.GetMenus() + } else { + roles, err := service.RoleService.GetRolesByUserId(account.ID) + if err != nil { + return err + } + for _, role := range roles { + items := service.RoleService.GetMenuListByRole(role) + menus = append(menus, items...) + } + } + info := AccountInfo{ Id: user.ID, Username: user.Username, Nickname: user.Nickname, Type: user.Type, EnableTotp: user.TOTPSecret != "" && user.TOTPSecret != "-", + Roles: user.Roles, + Menus: menus, } return Success(c, info) } -func (api AccountApi) AccountAssetEndpoint(c echo.Context) error { - pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) - pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) - name := c.QueryParam("name") - protocol := c.QueryParam("protocol") - tags := c.QueryParam("tags") - owner := c.QueryParam("owner") - sharer := c.QueryParam("sharer") - userGroupId := c.QueryParam("userGroupId") - ip := c.QueryParam("ip") - - order := c.QueryParam("order") - field := c.QueryParam("field") +func (api AccountApi) MenuEndpoint(c echo.Context) error { account, _ := GetCurrentAccount(c) - - items, total, err := repository.AssetRepository.Find(context.TODO(), pageIndex, pageSize, name, protocol, tags, account, owner, sharer, userGroupId, ip, order, field) + if service.UserService.IsSuperAdmin(account.ID) { + items := service.MenuService.GetMenus() + return Success(c, items) + } + roles, err := service.RoleService.GetRolesByUserId(account.ID) if err != nil { return err } - for i := range items { - items[i].IP = "" - items[i].Port = 0 + var menus []string + for _, role := range roles { + items := service.RoleService.GetMenuListByRole(role) + menus = append(menus, items...) } - - return Success(c, Map{ - "total": total, - "items": items, - }) + return Success(c, menus) } func (api AccountApi) AccountStorageEndpoint(c echo.Context) error { @@ -364,3 +328,11 @@ func (api AccountApi) AccessTokenGenEndpoint(c echo.Context) error { } return Success(c, nil) } + +func (api AccountApi) AccessTokenDelEndpoint(c echo.Context) error { + account, _ := GetCurrentAccount(c) + if err := service.AccessTokenService.DelAccessToken(context.Background(), account.ID); err != nil { + return err + } + return Success(c, nil) +} diff --git a/server/api/api.go b/server/api/api.go index 5d80160..2b26d62 100644 --- a/server/api/api.go +++ b/server/api/api.go @@ -1,25 +1,23 @@ package api import ( - "next-terminal/server/constant" + "github.com/labstack/echo/v4" + "next-terminal/server/common/maps" + "next-terminal/server/common/nt" "next-terminal/server/dto" "next-terminal/server/global/cache" "next-terminal/server/model" - - "github.com/labstack/echo/v4" ) -type Map map[string]interface{} - func Fail(c echo.Context, code int, message string) error { - return c.JSON(200, Map{ + return c.JSON(200, maps.Map{ "code": code, "message": message, }) } func FailWithData(c echo.Context, code int, message string, data interface{}) error { - return c.JSON(200, Map{ + return c.JSON(200, maps.Map{ "code": code, "message": message, "data": data, @@ -27,7 +25,7 @@ func FailWithData(c echo.Context, code int, message string, data interface{}) er } func Success(c echo.Context, data interface{}) error { - return c.JSON(200, Map{ + return c.JSON(200, maps.Map{ "code": 1, "message": "success", "data": data, @@ -35,11 +33,11 @@ func Success(c echo.Context, data interface{}) error { } func GetToken(c echo.Context) string { - token := c.Request().Header.Get(constant.Token) + token := c.Request().Header.Get(nt.Token) if len(token) > 0 { return token } - return c.QueryParam(constant.Token) + return c.QueryParam(nt.Token) } func GetCurrentAccount(c echo.Context) (*model.User, bool) { @@ -50,20 +48,3 @@ func GetCurrentAccount(c echo.Context) (*model.User, bool) { } return nil, false } - -func HasPermission(c echo.Context, owner string) bool { - // 检测是否登录 - account, found := GetCurrentAccount(c) - if !found { - return false - } - // 检测是否为管理人员 - if constant.TypeAdmin == account.Type { - return true - } - // 检测是否为所有者 - if owner == account.ID { - return true - } - return false -} diff --git a/server/api/asset.go b/server/api/asset.go index cbbbd82..3866970 100644 --- a/server/api/asset.go +++ b/server/api/asset.go @@ -5,10 +5,12 @@ import ( "context" "encoding/csv" "errors" + "next-terminal/server/common" + "next-terminal/server/common/maps" + "next-terminal/server/common/nt" "strconv" "strings" - "next-terminal/server/constant" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/service" @@ -75,13 +77,13 @@ func (assetApi AssetApi) AssetImportEndpoint(c echo.Context) error { Protocol: record[1], IP: record[2], Port: port, - AccountType: constant.Custom, + AccountType: nt.Custom, Username: record[4], Password: record[5], PrivateKey: record[6], Passphrase: record[7], Description: record[8], - Created: utils.NowJsonTime(), + Created: common.NowJsonTime(), Owner: account.ID, Active: true, } @@ -114,22 +116,18 @@ func (assetApi AssetApi) AssetPagingEndpoint(c echo.Context) error { name := c.QueryParam("name") protocol := c.QueryParam("protocol") tags := c.QueryParam("tags") - owner := c.QueryParam("owner") - sharer := c.QueryParam("sharer") - userGroupId := c.QueryParam("userGroupId") ip := c.QueryParam("ip") + active := c.QueryParam("active") order := c.QueryParam("order") field := c.QueryParam("field") - account, _ := GetCurrentAccount(c) - - items, total, err := repository.AssetRepository.Find(context.TODO(), pageIndex, pageSize, name, protocol, tags, account, owner, sharer, userGroupId, ip, order, field) + items, total, err := repository.AssetRepository.Find(context.Background(), pageIndex, pageSize, name, protocol, tags, ip, active, order, field) if err != nil { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) @@ -137,16 +135,22 @@ func (assetApi AssetApi) AssetPagingEndpoint(c echo.Context) error { func (assetApi AssetApi) AssetAllEndpoint(c echo.Context) error { protocol := c.QueryParam("protocol") - items, _ := repository.AssetRepository.FindByProtocol(context.TODO(), protocol) + assets, err := repository.AssetRepository.FindByProtocol(context.TODO(), protocol) + if err != nil { + return err + } + items := make([]maps.Map, len(assets)) + for i, e := range assets { + items[i] = maps.Map{ + "id": e.ID, + "name": e.Name, + } + } return Success(c, items) } func (assetApi AssetApi) AssetUpdateEndpoint(c echo.Context) error { id := c.Param("id") - if err := assetApi.PreCheckAssetPermission(c, id); err != nil { - return err - } - m := echo.Map{} if err := c.Bind(&m); err != nil { return err @@ -161,9 +165,6 @@ func (assetApi AssetApi) AssetDeleteEndpoint(c echo.Context) error { id := c.Param("id") split := strings.Split(id, ",") for i := range split { - if err := assetApi.PreCheckAssetPermission(c, split[i]); err != nil { - return err - } if err := service.AssetService.DeleteById(split[i]); err != nil { return err } @@ -174,9 +175,6 @@ func (assetApi AssetApi) AssetDeleteEndpoint(c echo.Context) error { func (assetApi AssetApi) AssetGetEndpoint(c echo.Context) (err error) { id := c.Param("id") - if err := assetApi.PreCheckAssetPermission(c, id); err != nil { - return err - } var item model.Asset if item, err = service.AssetService.FindByIdAndDecrypt(context.TODO(), id); err != nil { @@ -202,20 +200,17 @@ func (assetApi AssetApi) AssetTcpingEndpoint(c echo.Context) (err error) { return err } - active, err := service.AssetService.CheckStatus(item.AccessGatewayId, item.IP, item.Port) - - if item.Active != active { - if err := repository.AssetRepository.UpdateActiveById(context.TODO(), active, item.ID); err != nil { - return err - } - } + active, err := service.AssetService.CheckStatus(&item, item.IP, item.Port) var message = "" if err != nil { message = err.Error() } + if err := repository.AssetRepository.UpdateActiveById(context.TODO(), active, message, item.ID); err != nil { + return err + } - return Success(c, Map{ + return Success(c, maps.Map{ "active": active, "message": message, }) @@ -232,25 +227,9 @@ func (assetApi AssetApi) AssetTagsEndpoint(c echo.Context) (err error) { func (assetApi AssetApi) AssetChangeOwnerEndpoint(c echo.Context) (err error) { id := c.Param("id") - if err := assetApi.PreCheckAssetPermission(c, id); err != nil { - return err - } - owner := c.QueryParam("owner") if err := repository.AssetRepository.UpdateById(context.TODO(), &model.Asset{Owner: owner}, id); err != nil { return err } return Success(c, "") } - -func (assetApi AssetApi) PreCheckAssetPermission(c echo.Context, id string) error { - item, err := repository.AssetRepository.FindById(context.TODO(), id) - if err != nil { - return err - } - - if !HasPermission(c, item.Owner) { - return errors.New("permission denied") - } - return nil -} diff --git a/server/api/authorised.go b/server/api/authorised.go new file mode 100644 index 0000000..8a9a27c --- /dev/null +++ b/server/api/authorised.go @@ -0,0 +1,136 @@ +package api + +import ( + "context" + "github.com/labstack/echo/v4" + "next-terminal/server/common/maps" + "next-terminal/server/dto" + "next-terminal/server/repository" + "next-terminal/server/service" + "strconv" +) + +type AuthorisedApi struct { +} + +func (api AuthorisedApi) Selected(c echo.Context) error { + userId := c.QueryParam("userId") + userGroupId := c.QueryParam("userGroupId") + assetId := c.QueryParam("assetId") + key := c.QueryParam("key") + + items, err := repository.AuthorisedRepository.FindAll(context.Background(), userId, userGroupId, assetId) + if err != nil { + return err + } + var result = make([]string, 0) + switch key { + case "userId": + for _, item := range items { + result = append(result, item.UserId) + } + case "userGroupId": + for _, item := range items { + result = append(result, item.UserGroupId) + } + case "assetId": + for _, item := range items { + result = append(result, item.AssetId) + } + } + + return Success(c, result) +} + +func (api AuthorisedApi) Delete(c echo.Context) error { + id := c.Param("id") + if err := repository.AuthorisedRepository.DeleteById(context.Background(), id); err != nil { + return err + } + return Success(c, "") +} + +func (api AuthorisedApi) PagingAsset(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + assetName := c.QueryParam("assetName") + userId := c.QueryParam("userId") + userGroupId := c.QueryParam("userGroupId") + + items, total, err := repository.AuthorisedRepository.FindAssetPage(context.Background(), pageIndex, pageSize, assetName, userId, userGroupId) + if err != nil { + return err + } + + return Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api AuthorisedApi) PagingUser(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + userName := c.QueryParam("userName") + assetId := c.QueryParam("assetId") + + items, total, err := repository.AuthorisedRepository.FindUserPage(context.Background(), pageIndex, pageSize, userName, assetId) + if err != nil { + return err + } + + return Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api AuthorisedApi) PagingUserGroup(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + userGroupName := c.QueryParam("userGroupName") + assetId := c.QueryParam("assetId") + + items, total, err := repository.AuthorisedRepository.FindUserGroupPage(context.Background(), pageIndex, pageSize, userGroupName, assetId) + if err != nil { + return err + } + + return Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api AuthorisedApi) AuthorisedAssets(c echo.Context) error { + var item dto.AuthorisedAsset + if err := c.Bind(&item); err != nil { + return err + } + if err := service.AuthorisedService.AuthorisedAssets(context.Background(), &item); err != nil { + return err + } + return Success(c, nil) +} + +func (api AuthorisedApi) AuthorisedUsers(c echo.Context) error { + var item dto.AuthorisedUser + if err := c.Bind(&item); err != nil { + return err + } + if err := service.AuthorisedService.AuthorisedUsers(context.Background(), &item); err != nil { + return err + } + return Success(c, nil) +} + +func (api AuthorisedApi) AuthorisedUserGroups(c echo.Context) error { + var item dto.AuthorisedUserGroup + if err := c.Bind(&item); err != nil { + return err + } + if err := service.AuthorisedService.AuthorisedUserGroups(context.Background(), &item); err != nil { + return err + } + return Success(c, nil) +} diff --git a/server/api/branding.go b/server/api/branding.go new file mode 100644 index 0000000..5747f7a --- /dev/null +++ b/server/api/branding.go @@ -0,0 +1,15 @@ +package api + +import ( + "next-terminal/server/branding" + "next-terminal/server/common/maps" + + "github.com/labstack/echo/v4" +) + +func Branding(c echo.Context) error { + return Success(c, maps.Map{ + "name": branding.Name, + "copyright": branding.Copyright, + }) +} diff --git a/server/api/command.go b/server/api/command.go index 1576feb..67724ea 100644 --- a/server/api/command.go +++ b/server/api/command.go @@ -2,7 +2,8 @@ package api import ( "context" - "errors" + "next-terminal/server/common" + "next-terminal/server/common/maps" "strconv" "strings" @@ -24,7 +25,7 @@ func (api CommandApi) CommandCreateEndpoint(c echo.Context) error { account, _ := GetCurrentAccount(c) item.Owner = account.ID item.ID = utils.UUID() - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() if err := repository.CommandRepository.Create(context.TODO(), &item); err != nil { return err @@ -34,8 +35,7 @@ func (api CommandApi) CommandCreateEndpoint(c echo.Context) error { } func (api CommandApi) CommandAllEndpoint(c echo.Context) error { - account, _ := GetCurrentAccount(c) - items, err := repository.CommandRepository.FindByUser(context.TODO(), account) + items, err := repository.CommandRepository.FindAll(context.Background()) if err != nil { return err } @@ -47,17 +47,16 @@ func (api CommandApi) CommandPagingEndpoint(c echo.Context) error { pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) name := c.QueryParam("name") content := c.QueryParam("content") - account, _ := GetCurrentAccount(c) order := c.QueryParam("order") field := c.QueryParam("field") - items, total, err := repository.CommandRepository.Find(context.TODO(), pageIndex, pageSize, name, content, order, field, account) + items, total, err := repository.CommandRepository.Find(context.TODO(), pageIndex, pageSize, name, content, order, field) if err != nil { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) @@ -65,9 +64,6 @@ func (api CommandApi) CommandPagingEndpoint(c echo.Context) error { func (api CommandApi) CommandUpdateEndpoint(c echo.Context) error { id := c.Param("id") - if err := api.PreCheckCommandPermission(c, id); err != nil { - return err - } var item model.Command if err := c.Bind(&item); err != nil { @@ -85,9 +81,6 @@ func (api CommandApi) CommandDeleteEndpoint(c echo.Context) error { id := c.Param("id") split := strings.Split(id, ",") for i := range split { - if err := api.PreCheckCommandPermission(c, split[i]); err != nil { - return err - } if err := repository.CommandRepository.DeleteById(context.TODO(), split[i]); err != nil { return err } @@ -97,11 +90,6 @@ func (api CommandApi) CommandDeleteEndpoint(c echo.Context) error { func (api CommandApi) CommandGetEndpoint(c echo.Context) (err error) { id := c.Param("id") - - if err := api.PreCheckCommandPermission(c, id); err != nil { - return err - } - var item model.Command if item, err = repository.CommandRepository.FindById(context.TODO(), id); err != nil { return err @@ -111,26 +99,9 @@ func (api CommandApi) CommandGetEndpoint(c echo.Context) (err error) { func (api CommandApi) CommandChangeOwnerEndpoint(c echo.Context) (err error) { id := c.Param("id") - - if err := api.PreCheckCommandPermission(c, id); err != nil { - return err - } - owner := c.QueryParam("owner") if err := repository.CommandRepository.UpdateById(context.TODO(), &model.Command{Owner: owner}, id); err != nil { return err } return Success(c, "") } - -func (api CommandApi) PreCheckCommandPermission(c echo.Context, id string) error { - item, err := repository.CommandRepository.FindById(context.TODO(), id) - if err != nil { - return err - } - - if !HasPermission(c, item.Owner) { - return errors.New("permission denied") - } - return nil -} diff --git a/server/api/credential.go b/server/api/credential.go index 6c6ed4b..48d6441 100644 --- a/server/api/credential.go +++ b/server/api/credential.go @@ -3,12 +3,13 @@ package api import ( "context" "encoding/base64" - "errors" + "next-terminal/server/common" + "next-terminal/server/common/maps" + "next-terminal/server/common/nt" "strconv" "strings" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/service" @@ -20,7 +21,7 @@ import ( type CredentialApi struct{} func (api CredentialApi) CredentialAllEndpoint(c echo.Context) error { - items, err := repository.CredentialRepository.FindByUser(context.TODO()) + items, err := repository.CredentialRepository.FindByAll(context.TODO()) if err != nil { return err } @@ -35,10 +36,10 @@ func (api CredentialApi) CredentialCreateEndpoint(c echo.Context) error { account, _ := GetCurrentAccount(c) item.Owner = account.ID item.ID = utils.UUID() - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() switch item.Type { - case constant.Custom: + case nt.Custom: item.PrivateKey = "-" item.Passphrase = "-" if item.Username == "" { @@ -47,7 +48,7 @@ func (api CredentialApi) CredentialCreateEndpoint(c echo.Context) error { if item.Password == "" { item.Password = "-" } - case constant.PrivateKey: + case nt.PrivateKey: item.Password = "-" if item.Username == "" { item.Username = "-" @@ -79,13 +80,12 @@ func (api CredentialApi) CredentialPagingEndpoint(c echo.Context) error { order := c.QueryParam("order") field := c.QueryParam("field") - account, _ := GetCurrentAccount(c) - items, total, err := repository.CredentialRepository.Find(context.TODO(), pageIndex, pageSize, name, order, field, account) + items, total, err := repository.CredentialRepository.Find(context.TODO(), pageIndex, pageSize, name, order, field) if err != nil { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) @@ -94,17 +94,13 @@ func (api CredentialApi) CredentialPagingEndpoint(c echo.Context) error { func (api CredentialApi) CredentialUpdateEndpoint(c echo.Context) error { id := c.Param("id") - if err := api.PreCheckCredentialPermission(c, id); err != nil { - return err - } - var item model.Credential if err := c.Bind(&item); err != nil { return err } switch item.Type { - case constant.Custom: + case nt.Custom: item.PrivateKey = "-" item.Passphrase = "-" if item.Username == "" { @@ -120,7 +116,7 @@ func (api CredentialApi) CredentialUpdateEndpoint(c echo.Context) error { } item.Password = base64.StdEncoding.EncodeToString(encryptedCBC) } - case constant.PrivateKey: + case nt.PrivateKey: item.Password = "-" if item.Username == "" { item.Username = "-" @@ -161,9 +157,6 @@ func (api CredentialApi) CredentialDeleteEndpoint(c echo.Context) error { id := c.Param("id") split := strings.Split(id, ",") for i := range split { - if err := api.PreCheckCredentialPermission(c, split[i]); err != nil { - return err - } if err := repository.CredentialRepository.DeleteById(context.TODO(), split[i]); err != nil { return err } @@ -174,44 +167,21 @@ func (api CredentialApi) CredentialDeleteEndpoint(c echo.Context) error { func (api CredentialApi) CredentialGetEndpoint(c echo.Context) error { id := c.Param("id") - if err := api.PreCheckCredentialPermission(c, id); err != nil { - return err - } item, err := service.CredentialService.FindByIdAndDecrypt(context.TODO(), id) if err != nil { return err } - if !HasPermission(c, item.Owner) { - return errors.New("permission denied") - } - return Success(c, item) } func (api CredentialApi) CredentialChangeOwnerEndpoint(c echo.Context) error { id := c.Param("id") - if err := api.PreCheckCredentialPermission(c, id); err != nil { - return err - } - owner := c.QueryParam("owner") if err := repository.CredentialRepository.UpdateById(context.TODO(), &model.Credential{Owner: owner}, id); err != nil { return err } return Success(c, "") } - -func (api CredentialApi) PreCheckCredentialPermission(c echo.Context, id string) error { - item, err := repository.CredentialRepository.FindById(context.TODO(), id) - if err != nil { - return err - } - - if !HasPermission(c, item.Owner) { - return errors.New("permission denied") - } - return nil -} diff --git a/server/api/guacamole.go b/server/api/guacamole.go index e56598d..4c7b7f4 100644 --- a/server/api/guacamole.go +++ b/server/api/guacamole.go @@ -4,13 +4,13 @@ import ( "context" "fmt" "net/http" + "next-terminal/server/common/guacamole" + "next-terminal/server/common/nt" "path" "strconv" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/global/session" - "next-terminal/server/guacd" "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" @@ -34,6 +34,8 @@ const ( ) var UpGrader = websocket.Upgrader{ + ReadBufferSize: 4096, + WriteBufferSize: 4096, CheckOrigin: func(r *http.Request) bool { return true }, @@ -46,7 +48,7 @@ type GuacamoleApi struct { func (api GuacamoleApi) Guacamole(c echo.Context) error { ws, err := UpGrader.Upgrade(c.Response().Writer, c.Request(), nil) if err != nil { - log.Errorf("升级为WebSocket协议失败:%v", err.Error()) + log.Warn("升级为WebSocket协议失败", log.NamedError("err", err)) return err } ctx := context.TODO() @@ -58,7 +60,7 @@ func (api GuacamoleApi) Guacamole(c echo.Context) error { intWidth, _ := strconv.Atoi(width) intHeight, _ := strconv.Atoi(height) - configuration := guacd.NewConfiguration() + configuration := guacamole.NewConfiguration() propertyMap := repository.PropertyRepository.FindAllMap(ctx) @@ -74,14 +76,14 @@ func (api GuacamoleApi) Guacamole(c echo.Context) error { if s.AccessGatewayId != "" && s.AccessGatewayId != "-" { g, err := service.GatewayService.GetGatewayById(s.AccessGatewayId) if err != nil { - utils.Disconnect(ws, AccessGatewayUnAvailable, "获取接入网关失败:"+err.Error()) + guacamole.Disconnect(ws, AccessGatewayUnAvailable, "获取接入网关失败:"+err.Error()) return nil } defer g.CloseSshTunnel(s.ID) exposedIP, exposedPort, err := g.OpenSshTunnel(s.ID, s.IP, s.Port) if err != nil { - utils.Disconnect(ws, AccessGatewayCreateError, "创建SSH隧道失败:"+err.Error()) + guacamole.Disconnect(ws, AccessGatewayCreateError, "创建SSH隧道失败:"+err.Error()) return nil } s.IP = exposedIP @@ -108,12 +110,12 @@ func (api GuacamoleApi) Guacamole(c echo.Context) error { addr := config.GlobalCfg.Guacd.Hostname + ":" + strconv.Itoa(config.GlobalCfg.Guacd.Port) asset := fmt.Sprintf("%s:%s", configuration.GetParameter("hostname"), configuration.GetParameter("port")) - log.Debugf("[%v] 新建 guacd 会话, guacd=%v, asset=%v", sessionId, addr, asset) + log.Debug("新建 guacd 会话", log.String("sessionId", sessionId), log.String("addr", addr), log.String("asset", asset)) - guacdTunnel, err := guacd.NewTunnel(addr, configuration) + guacdTunnel, err := guacamole.NewTunnel(addr, configuration) if err != nil { - utils.Disconnect(ws, NewTunnelError, err.Error()) - log.Printf("[%v] 建立连接失败: %v", sessionId, err.Error()) + guacamole.Disconnect(ws, NewTunnelError, err.Error()) + log.Error("建立连接失败", log.String("sessionId", sessionId), log.NamedError("err", err)) return err } @@ -125,11 +127,11 @@ func (api GuacamoleApi) Guacamole(c echo.Context) error { GuacdTunnel: guacdTunnel, } - if configuration.Protocol == constant.SSH { + if configuration.Protocol == nt.SSH { nextTerminal, err := CreateNextTerminalBySession(s) if err != nil { - utils.Disconnect(ws, NewSshClientError, "建立SSH客户端失败: "+err.Error()) - log.Printf("[%v] 建立 ssh 客户端失败: %v", sessionId, err.Error()) + guacamole.Disconnect(ws, NewSshClientError, "建立SSH客户端失败: "+err.Error()) + log.Debug("建立 ssh 客户端失败", log.String("sessionId", sessionId), log.NamedError("err", err)) return err } nextSession.NextTerminal = nextTerminal @@ -141,15 +143,15 @@ func (api GuacamoleApi) Guacamole(c echo.Context) error { ConnectionId: guacdTunnel.UUID, Width: intWidth, Height: intHeight, - Status: constant.Connecting, - Recording: configuration.GetParameter(guacd.RecordingPath), + Status: nt.Connecting, + Recording: configuration.GetParameter(guacamole.RecordingPath), } if sess.Recording == "" { // 未录屏时无需审计 sess.Reviewed = true } // 创建新会话 - log.Debugf("[%v] 新建会话成功: %v", sessionId, sess.ConnectionId) + log.Debug("新建会话成功", log.String("sessionId", sessionId)) if err := repository.SessionRepository.UpdateById(ctx, &sess, sessionId); err != nil { return err } @@ -161,7 +163,7 @@ func (api GuacamoleApi) Guacamole(c echo.Context) error { for { _, message, err := ws.ReadMessage() if err != nil { - log.Debugf("[%v] WebSocket已关闭, %v", sessionId, err.Error()) + log.Debug("WebSocket已关闭", log.String("sessionId", sessionId), log.NamedError("err", err)) // guacdTunnel.Read() 会阻塞,所以要先把guacdTunnel客户端关闭,才能退出Guacd循环 _ = guacdTunnel.Close() @@ -176,23 +178,22 @@ func (api GuacamoleApi) Guacamole(c echo.Context) error { } } -func (api GuacamoleApi) setAssetConfig(attributes map[string]string, s model.Session, configuration *guacd.Configuration) { +func (api GuacamoleApi) setAssetConfig(attributes map[string]string, s model.Session, configuration *guacamole.Configuration) { for key, value := range attributes { - if guacd.DrivePath == key { + if guacamole.DrivePath == key { // 忽略该参数 continue } - if guacd.EnableDrive == key && value == "true" { - storageId := attributes[guacd.DrivePath] + if guacamole.EnableDrive == key && value == "true" { + storageId := attributes[guacamole.DrivePath] if storageId == "" || storageId == "-" { // 默认空间ID和用户ID相同 storageId = s.Creator } realPath := path.Join(service.StorageService.GetBaseDrivePath(), storageId) - configuration.SetParameter(guacd.EnableDrive, "true") - configuration.SetParameter(guacd.DriveName, "Filesystem") - configuration.SetParameter(guacd.DrivePath, realPath) - log.Debugf("[%v] 会话 %v:%v 映射目录地址为 %v", s.ID, s.IP, s.Port, realPath) + configuration.SetParameter(guacamole.EnableDrive, "true") + configuration.SetParameter(guacamole.DriveName, "Filesystem") + configuration.SetParameter(guacamole.DrivePath, realPath) } else { configuration.SetParameter(key, value) } @@ -202,7 +203,7 @@ func (api GuacamoleApi) setAssetConfig(attributes map[string]string, s model.Ses func (api GuacamoleApi) GuacamoleMonitor(c echo.Context) error { ws, err := UpGrader.Upgrade(c.Response().Writer, c.Request(), nil) if err != nil { - log.Errorf("升级为WebSocket协议失败:%v", err.Error()) + log.Warn("升级为WebSocket协议失败", log.NamedError("err", err)) return err } ctx := context.TODO() @@ -212,12 +213,12 @@ func (api GuacamoleApi) GuacamoleMonitor(c echo.Context) error { if err != nil { return err } - if s.Status != constant.Connected { - utils.Disconnect(ws, AssetNotActive, "会话离线") + if s.Status != nt.Connected { + guacamole.Disconnect(ws, AssetNotActive, "会话离线") return nil } connectionId := s.ConnectionId - configuration := guacd.NewConfiguration() + configuration := guacamole.NewConfiguration() configuration.ConnectionID = connectionId sessionId = s.ID configuration.SetParameter("width", strconv.Itoa(s.Width)) @@ -225,13 +226,10 @@ func (api GuacamoleApi) GuacamoleMonitor(c echo.Context) error { configuration.SetParameter("dpi", "96") addr := config.GlobalCfg.Guacd.Hostname + ":" + strconv.Itoa(config.GlobalCfg.Guacd.Port) - asset := fmt.Sprintf("%s:%s", configuration.GetParameter("hostname"), configuration.GetParameter("port")) - log.Debugf("[%v] 新建 guacd 会话, guacd=%v, asset=%v", sessionId, addr, asset) - guacdTunnel, err := guacd.NewTunnel(addr, configuration) + guacdTunnel, err := guacamole.NewTunnel(addr, configuration) if err != nil { - utils.Disconnect(ws, NewTunnelError, err.Error()) - log.Printf("[%v] 建立连接失败: %v", sessionId, err.Error()) + guacamole.Disconnect(ws, NewTunnelError, err.Error()) return err } @@ -246,12 +244,11 @@ func (api GuacamoleApi) GuacamoleMonitor(c echo.Context) error { // 要监控会话 forObsSession := session.GlobalSessionManager.GetById(sessionId) if forObsSession == nil { - utils.Disconnect(ws, NotFoundSession, "获取会话失败") + guacamole.Disconnect(ws, NotFoundSession, "获取会话失败") return nil } nextSession.ID = utils.UUID() forObsSession.Observer.Add(nextSession) - log.Debugf("[%v:%v] 观察者[%v]加入会话[%v]", sessionId, connectionId, nextSession.ID, s.ConnectionId) guacamoleHandler := NewGuacamoleHandler(ws, guacdTunnel) guacamoleHandler.Start() @@ -260,13 +257,11 @@ func (api GuacamoleApi) GuacamoleMonitor(c echo.Context) error { for { _, message, err := ws.ReadMessage() if err != nil { - log.Debugf("[%v:%v] WebSocket已关闭, %v", sessionId, connectionId, err.Error()) // guacdTunnel.Read() 会阻塞,所以要先把guacdTunnel客户端关闭,才能退出Guacd循环 _ = guacdTunnel.Close() observerId := nextSession.ID forObsSession.Observer.Del(observerId) - log.Debugf("[%v:%v] 观察者[%v]退出会话", sessionId, connectionId, observerId) return nil } _, err = guacdTunnel.WriteAndFlush(message) @@ -277,12 +272,12 @@ func (api GuacamoleApi) GuacamoleMonitor(c echo.Context) error { } } -func (api GuacamoleApi) setConfig(propertyMap map[string]string, s model.Session, configuration *guacd.Configuration) { - if propertyMap[guacd.EnableRecording] == "true" { - configuration.SetParameter(guacd.RecordingPath, path.Join(config.GlobalCfg.Guacd.Recording, s.ID)) - configuration.SetParameter(guacd.CreateRecordingPath, "true") +func (api GuacamoleApi) setConfig(propertyMap map[string]string, s model.Session, configuration *guacamole.Configuration) { + if propertyMap[guacamole.EnableRecording] == "true" { + configuration.SetParameter(guacamole.RecordingPath, path.Join(config.GlobalCfg.Guacd.Recording, s.ID)) + configuration.SetParameter(guacamole.CreateRecordingPath, "true") } else { - configuration.SetParameter(guacd.RecordingPath, "") + configuration.SetParameter(guacamole.RecordingPath, "") } configuration.Protocol = s.Protocol @@ -295,18 +290,18 @@ func (api GuacamoleApi) setConfig(propertyMap map[string]string, s model.Session configuration.SetParameter("ignore-cert", "true") configuration.SetParameter("create-drive-path", "true") configuration.SetParameter("resize-method", "reconnect") - configuration.SetParameter(guacd.EnableWallpaper, propertyMap[guacd.EnableWallpaper]) - configuration.SetParameter(guacd.EnableTheming, propertyMap[guacd.EnableTheming]) - configuration.SetParameter(guacd.EnableFontSmoothing, propertyMap[guacd.EnableFontSmoothing]) - configuration.SetParameter(guacd.EnableFullWindowDrag, propertyMap[guacd.EnableFullWindowDrag]) - configuration.SetParameter(guacd.EnableDesktopComposition, propertyMap[guacd.EnableDesktopComposition]) - configuration.SetParameter(guacd.EnableMenuAnimations, propertyMap[guacd.EnableMenuAnimations]) - configuration.SetParameter(guacd.DisableBitmapCaching, propertyMap[guacd.DisableBitmapCaching]) - configuration.SetParameter(guacd.DisableOffscreenCaching, propertyMap[guacd.DisableOffscreenCaching]) - configuration.SetParameter(guacd.ColorDepth, propertyMap[guacd.ColorDepth]) - configuration.SetParameter(guacd.ForceLossless, propertyMap[guacd.ForceLossless]) - configuration.SetParameter(guacd.PreConnectionId, propertyMap[guacd.PreConnectionId]) - configuration.SetParameter(guacd.PreConnectionBlob, propertyMap[guacd.PreConnectionBlob]) + configuration.SetParameter(guacamole.EnableWallpaper, propertyMap[guacamole.EnableWallpaper]) + configuration.SetParameter(guacamole.EnableTheming, propertyMap[guacamole.EnableTheming]) + configuration.SetParameter(guacamole.EnableFontSmoothing, propertyMap[guacamole.EnableFontSmoothing]) + configuration.SetParameter(guacamole.EnableFullWindowDrag, propertyMap[guacamole.EnableFullWindowDrag]) + configuration.SetParameter(guacamole.EnableDesktopComposition, propertyMap[guacamole.EnableDesktopComposition]) + configuration.SetParameter(guacamole.EnableMenuAnimations, propertyMap[guacamole.EnableMenuAnimations]) + configuration.SetParameter(guacamole.DisableBitmapCaching, propertyMap[guacamole.DisableBitmapCaching]) + configuration.SetParameter(guacamole.DisableOffscreenCaching, propertyMap[guacamole.DisableOffscreenCaching]) + configuration.SetParameter(guacamole.ColorDepth, propertyMap[guacamole.ColorDepth]) + configuration.SetParameter(guacamole.ForceLossless, propertyMap[guacamole.ForceLossless]) + configuration.SetParameter(guacamole.PreConnectionId, propertyMap[guacamole.PreConnectionId]) + configuration.SetParameter(guacamole.PreConnectionBlob, propertyMap[guacamole.PreConnectionBlob]) case "ssh": if len(s.PrivateKey) > 0 && s.PrivateKey != "-" { configuration.SetParameter("username", s.Username) @@ -317,11 +312,11 @@ func (api GuacamoleApi) setConfig(propertyMap map[string]string, s model.Session configuration.SetParameter("password", s.Password) } - configuration.SetParameter(guacd.FontSize, propertyMap[guacd.FontSize]) - configuration.SetParameter(guacd.FontName, propertyMap[guacd.FontName]) - configuration.SetParameter(guacd.ColorScheme, propertyMap[guacd.ColorScheme]) - configuration.SetParameter(guacd.Backspace, propertyMap[guacd.Backspace]) - configuration.SetParameter(guacd.TerminalType, propertyMap[guacd.TerminalType]) + configuration.SetParameter(guacamole.FontSize, propertyMap[guacamole.FontSize]) + configuration.SetParameter(guacamole.FontName, propertyMap[guacamole.FontName]) + configuration.SetParameter(guacamole.ColorScheme, propertyMap[guacamole.ColorScheme]) + configuration.SetParameter(guacamole.Backspace, propertyMap[guacamole.Backspace]) + configuration.SetParameter(guacamole.TerminalType, propertyMap[guacamole.TerminalType]) case "vnc": configuration.SetParameter("username", s.Username) configuration.SetParameter("password", s.Password) @@ -329,17 +324,17 @@ func (api GuacamoleApi) setConfig(propertyMap map[string]string, s model.Session configuration.SetParameter("username", s.Username) configuration.SetParameter("password", s.Password) - configuration.SetParameter(guacd.FontSize, propertyMap[guacd.FontSize]) - configuration.SetParameter(guacd.FontName, propertyMap[guacd.FontName]) - configuration.SetParameter(guacd.ColorScheme, propertyMap[guacd.ColorScheme]) - configuration.SetParameter(guacd.Backspace, propertyMap[guacd.Backspace]) - configuration.SetParameter(guacd.TerminalType, propertyMap[guacd.TerminalType]) + configuration.SetParameter(guacamole.FontSize, propertyMap[guacamole.FontSize]) + configuration.SetParameter(guacamole.FontName, propertyMap[guacamole.FontName]) + configuration.SetParameter(guacamole.ColorScheme, propertyMap[guacamole.ColorScheme]) + configuration.SetParameter(guacamole.Backspace, propertyMap[guacamole.Backspace]) + configuration.SetParameter(guacamole.TerminalType, propertyMap[guacamole.TerminalType]) case "kubernetes": - configuration.SetParameter(guacd.FontSize, propertyMap[guacd.FontSize]) - configuration.SetParameter(guacd.FontName, propertyMap[guacd.FontName]) - configuration.SetParameter(guacd.ColorScheme, propertyMap[guacd.ColorScheme]) - configuration.SetParameter(guacd.Backspace, propertyMap[guacd.Backspace]) - configuration.SetParameter(guacd.TerminalType, propertyMap[guacd.TerminalType]) + configuration.SetParameter(guacamole.FontSize, propertyMap[guacamole.FontSize]) + configuration.SetParameter(guacamole.FontName, propertyMap[guacamole.FontName]) + configuration.SetParameter(guacamole.ColorScheme, propertyMap[guacamole.ColorScheme]) + configuration.SetParameter(guacamole.Backspace, propertyMap[guacamole.Backspace]) + configuration.SetParameter(guacamole.TerminalType, propertyMap[guacamole.TerminalType]) default: } diff --git a/server/api/guacamole_handler.go b/server/api/guacamole_handler.go index 563515b..741e242 100644 --- a/server/api/guacamole_handler.go +++ b/server/api/guacamole_handler.go @@ -2,22 +2,19 @@ package api import ( "context" - - "next-terminal/server/guacd" - "next-terminal/server/log" - "next-terminal/server/utils" + "next-terminal/server/common/guacamole" "github.com/gorilla/websocket" ) type GuacamoleHandler struct { ws *websocket.Conn - tunnel *guacd.Tunnel + tunnel *guacamole.Tunnel ctx context.Context cancel context.CancelFunc } -func NewGuacamoleHandler(ws *websocket.Conn, tunnel *guacd.Tunnel) *GuacamoleHandler { +func NewGuacamoleHandler(ws *websocket.Conn, tunnel *guacamole.Tunnel) *GuacamoleHandler { ctx, cancel := context.WithCancel(context.Background()) return &GuacamoleHandler{ ws: ws, @@ -36,7 +33,7 @@ func (r GuacamoleHandler) Start() { default: instruction, err := r.tunnel.Read() if err != nil { - utils.Disconnect(r.ws, TunnelClosed, "远程连接已关闭") + guacamole.Disconnect(r.ws, TunnelClosed, "远程连接已关闭") return } if len(instruction) == 0 { @@ -44,7 +41,6 @@ func (r GuacamoleHandler) Start() { } err = r.ws.WriteMessage(websocket.TextMessage, instruction) if err != nil { - log.Debugf("WebSocket写入失败,即将关闭Guacd连接...") return } } diff --git a/server/api/job.go b/server/api/job.go index b4bad7d..57a47da 100644 --- a/server/api/job.go +++ b/server/api/job.go @@ -2,7 +2,8 @@ package api import ( "context" - + "next-terminal/server/common" + "next-terminal/server/common/maps" "strconv" "strings" @@ -23,7 +24,7 @@ func (api JobApi) JobCreateEndpoint(c echo.Context) error { } item.ID = utils.UUID() - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() if err := service.JobService.Create(context.TODO(), &item); err != nil { return err @@ -45,7 +46,7 @@ func (api JobApi) JobPagingEndpoint(c echo.Context) error { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) @@ -110,13 +111,17 @@ func (api JobApi) JobGetEndpoint(c echo.Context) error { func (api JobApi) JobGetLogsEndpoint(c echo.Context) error { id := c.Param("id") - - items, err := repository.JobLogRepository.FindByJobId(context.TODO(), id) + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + items, total, err := repository.JobLogRepository.FindByJobId(context.TODO(), id, pageIndex, pageSize) if err != nil { return err } - return Success(c, items) + return Success(c, maps.Map{ + "total": total, + "items": items, + }) } func (api JobApi) JobDeleteLogsEndpoint(c echo.Context) error { diff --git a/server/api/login-log.go b/server/api/login-log.go index eb4207f..3224319 100644 --- a/server/api/login-log.go +++ b/server/api/login-log.go @@ -2,6 +2,7 @@ package api import ( "context" + "next-terminal/server/common/maps" "strconv" "strings" @@ -26,7 +27,7 @@ func (api LoginLogApi) LoginLogPagingEndpoint(c echo.Context) error { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) diff --git a/server/api/login_policy.go b/server/api/login_policy.go new file mode 100644 index 0000000..e9b7df6 --- /dev/null +++ b/server/api/login_policy.go @@ -0,0 +1,143 @@ +package api + +import ( + "context" + "strconv" + "strings" + + "next-terminal/server/common/maps" + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/service" + "next-terminal/server/utils" + + "github.com/labstack/echo/v4" +) + +type LoginPolicyApi struct{} + +func (api LoginPolicyApi) PagingEndpoint(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + name := c.QueryParam("name") + userId := c.QueryParam("userId") + + order := c.QueryParam("order") + field := c.QueryParam("field") + + items, total, err := repository.LoginPolicyRepository.Find(context.TODO(), pageIndex, pageSize, name, userId, order, field) + if err != nil { + return err + } + + return Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api LoginPolicyApi) GetEndpoint(c echo.Context) error { + id := c.Param("id") + + item, err := service.LoginPolicyService.FindById(context.Background(), id) + if err != nil { + return err + } + + return Success(c, item) +} + +func (api LoginPolicyApi) CreateEndpoint(c echo.Context) error { + var item model.LoginPolicy + if err := c.Bind(&item); err != nil { + return err + } + item.ID = utils.UUID() + + if err := service.LoginPolicyService.Create(context.Background(), &item); err != nil { + return err + } + return Success(c, "") +} + +func (api LoginPolicyApi) DeleteEndpoint(c echo.Context) error { + ids := c.Param("id") + split := strings.Split(ids, ",") + if err := service.LoginPolicyService.DeleteByIds(context.Background(), split); err != nil { + return err + } + return Success(c, nil) +} + +func (api LoginPolicyApi) UpdateEndpoint(c echo.Context) error { + id := c.Param("id") + var item model.LoginPolicy + if err := c.Bind(&item); err != nil { + return err + } + + if err := service.LoginPolicyService.UpdateById(context.Background(), &item, id); err != nil { + return err + } + return Success(c, "") +} + +func (api LoginPolicyApi) GetUserPageEndpoint(c echo.Context) error { + id := c.Param("id") + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + username := c.QueryParam("username") + nickname := c.QueryParam("nickname") + mail := c.QueryParam("mail") + + order := c.QueryParam("order") + field := c.QueryParam("field") + + items, total, err := repository.UserRepository.Find(context.TODO(), pageIndex, pageSize, username, nickname, mail, "", id, order, field) + if err != nil { + return err + } + + return Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api LoginPolicyApi) BindEndpoint(c echo.Context) error { + var items []model.LoginPolicyUserRef + if err := c.Bind(&items); err != nil { + return err + } + id := c.Param("id") + if err := service.LoginPolicyService.Bind(context.Background(), id, items); err != nil { + return err + } + return Success(c, "") +} + +func (api LoginPolicyApi) UnbindEndpoint(c echo.Context) error { + var items []model.LoginPolicyUserRef + if err := c.Bind(&items); err != nil { + return err + } + id := c.Param("id") + if err := service.LoginPolicyService.Unbind(context.Background(), id, items); err != nil { + return err + } + return Success(c, "") +} + +func (api LoginPolicyApi) GetUserIdEndpoint(c echo.Context) error { + id := c.Param("id") + refs, err := repository.LoginPolicyUserRefRepository.FindByLoginPolicyId(context.Background(), id) + if err != nil { + return err + } + var ids = make([]string, 0) + for _, ref := range refs { + ids = append(ids, ref.UserId) + } + + return Success(c, ids) +} diff --git a/server/api/overview.go b/server/api/overview.go index 0fbfd86..53259e6 100644 --- a/server/api/overview.go +++ b/server/api/overview.go @@ -2,10 +2,11 @@ package api import ( "context" - - "next-terminal/server/constant" + "next-terminal/server/common/nt" "next-terminal/server/dto" + "next-terminal/server/global/stat" "next-terminal/server/repository" + "time" "github.com/labstack/echo/v4" ) @@ -14,21 +15,27 @@ type OverviewApi struct{} func (api OverviewApi) OverviewCounterEndPoint(c echo.Context) error { var ( - countUser int64 - countOnlineSession int64 - credential int64 - asset int64 + totalUser int64 + onlineUser int64 + countOfflineSession int64 + totalAsset int64 + activeAsset int64 + failLoginCount int64 ) - countUser, _ = repository.UserRepository.CountOnlineUser(context.TODO()) - countOnlineSession, _ = repository.SessionRepository.CountOnlineSession(context.TODO()) - credential, _ = repository.CredentialRepository.Count(context.TODO()) - asset, _ = repository.AssetRepository.Count(context.TODO()) + totalUser, _ = repository.UserRepository.Count(context.TODO()) + onlineUser, _ = repository.UserRepository.CountOnlineUser(context.TODO()) + countOfflineSession, _ = repository.SessionRepository.CountOfflineSession(context.TODO()) + totalAsset, _ = repository.AssetRepository.Count(context.TODO()) + activeAsset, _ = repository.AssetRepository.CountByActive(context.TODO(), true) + failLoginCount, _ = repository.LoginLogRepository.CountByState(context.TODO(), "0") counter := dto.Counter{ - User: countUser, - OnlineSession: countOnlineSession, - Credential: credential, - Asset: asset, + TotalUser: totalUser, + OnlineUser: onlineUser, + OfflineSession: countOfflineSession, + TotalAsset: totalAsset, + ActiveAsset: activeAsset, + FailLoginCount: failLoginCount, } return Success(c, counter) @@ -43,11 +50,11 @@ func (api OverviewApi) OverviewAssetEndPoint(c echo.Context) error { kubernetes int64 ) - ssh, _ = repository.AssetRepository.CountByProtocol(context.TODO(), constant.SSH) - rdp, _ = repository.AssetRepository.CountByProtocol(context.TODO(), constant.RDP) - vnc, _ = repository.AssetRepository.CountByProtocol(context.TODO(), constant.VNC) - telnet, _ = repository.AssetRepository.CountByProtocol(context.TODO(), constant.Telnet) - kubernetes, _ = repository.AssetRepository.CountByProtocol(context.TODO(), constant.K8s) + ssh, _ = repository.AssetRepository.CountByProtocol(context.TODO(), nt.SSH) + rdp, _ = repository.AssetRepository.CountByProtocol(context.TODO(), nt.RDP) + vnc, _ = repository.AssetRepository.CountByProtocol(context.TODO(), nt.VNC) + telnet, _ = repository.AssetRepository.CountByProtocol(context.TODO(), nt.Telnet) + kubernetes, _ = repository.AssetRepository.CountByProtocol(context.TODO(), nt.K8s) m := echo.Map{ "ssh": ssh, @@ -55,14 +62,168 @@ func (api OverviewApi) OverviewAssetEndPoint(c echo.Context) error { "vnc": vnc, "telnet": telnet, "kubernetes": kubernetes, + "all": ssh + rdp + vnc + telnet + kubernetes, } return Success(c, m) } -func (api OverviewApi) OverviewAccessEndPoint(c echo.Context) error { - access, err := repository.SessionRepository.OverviewAccess(context.TODO()) +func (api OverviewApi) OverviewDateCounterEndPoint(c echo.Context) error { + d := c.QueryParam("d") + var days = 7 + if d == "month" { + days = 30 + } + now := time.Now() + lastDate := now.AddDate(0, 0, -days) + // 最近一月登录次数 + loginLogCounters, err := repository.LoginLogRepository.CountWithGroupByLoginTime(context.TODO(), lastDate) if err != nil { return err } - return Success(c, access) + // 最近一月活跃用户 + userCounters, err := repository.LoginLogRepository.CountWithGroupByLoginTimeAndUsername(context.TODO(), lastDate) + if err != nil { + return err + } + // 最近一月活跃资产 + sessionCounters, err := repository.SessionRepository.CountWithGroupByLoginTime(context.TODO(), lastDate) + if err != nil { + return err + } + + var counters []dto.DateCounter + for i := 0; i < days; i++ { + day := lastDate.AddDate(0, 0, i).Format("2006-01-02") + + var exist = false + for _, counter := range loginLogCounters { + if counter.Date == day { + exist = true + counters = append(counters, dto.DateCounter{ + Type: "登录次数", + Date: day, + Value: counter.Value, + }) + break + } + } + + if !exist { + counters = append(counters, dto.DateCounter{ + Type: "登录次数", + Date: day, + Value: 0, + }) + } + + exist = false + for _, counter := range userCounters { + if counter.Date == day { + exist = true + counters = append(counters, dto.DateCounter{ + Type: "活跃用户", + Date: day, + Value: counter.Value, + }) + break + } + } + + if !exist { + counters = append(counters, dto.DateCounter{ + Type: "活跃用户", + Date: day, + Value: 0, + }) + } + + exist = false + for _, counter := range sessionCounters { + if counter.Date == day { + exist = true + counters = append(counters, dto.DateCounter{ + Type: "活跃资产", + Date: day, + Value: counter.Value, + }) + break + } + } + + if !exist { + counters = append(counters, dto.DateCounter{ + Type: "活跃资产", + Date: day, + Value: 0, + }) + } + } + + return Success(c, counters) +} + +func (api OverviewApi) OverviewPS(c echo.Context) error { + //memoryStat, err := mem.VirtualMemory() + //if err != nil { + // return err + //} + //avgStat, err := load.Avg() + //if err != nil { + // return err + //} + // + //cpuCount, err := cpu.Counts(true) + //if err != nil { + // return err + //} + // + //percent, err := cpu.Percent(time.Second, false) + //if err != nil { + // return err + //} + // + //var bytesRead uint64 = 0 + //var bytesWrite uint64 = 0 + // + //diskIO, err := disk.IOCounters() + //if err != nil { + // return err + //} + //for _, v := range diskIO { + // bytesRead += v.ReadBytes + // bytesWrite += v.WriteBytes + //} + // + //var bytesSent uint64 = 0 + //var bytesRecv uint64 = 0 + //netIO, err := net.IOCounters(true) + //if err != nil { + // return err + //} + //for _, v := range netIO { + // bytesSent += v.BytesSent + // bytesRecv += v.BytesRecv + //} + + //return Success(c, Map{ + // "mem": Map{ + // "total": memoryStat.Total, + // "usedPercent": memoryStat.UsedPercent, + // }, + // "cpu": Map{ + // "count": cpuCount, + // "loadAvg": avgStat, + // "usedPercent": percent[0], + // }, + // "diskIO": Map{ + // "bytesRead": bytesRead, + // "bytesWrite": bytesWrite, + // }, + // "netIO": Map{ + // "bytesSent": bytesSent, + // "bytesRecv": bytesRecv, + // }, + //}) + + return Success(c, stat.SystemLoad) } diff --git a/server/api/resource-sharer.go b/server/api/resource-sharer.go deleted file mode 100644 index 8fe7453..0000000 --- a/server/api/resource-sharer.go +++ /dev/null @@ -1,51 +0,0 @@ -package api - -import ( - "context" - - "next-terminal/server/dto" - "next-terminal/server/repository" - "next-terminal/server/service" - - "github.com/labstack/echo/v4" -) - -type ResourceSharerApi struct{} - -func (api ResourceSharerApi) RSGetSharersEndPoint(c echo.Context) error { - resourceId := c.QueryParam("resourceId") - resourceType := c.QueryParam("resourceType") - userId := c.QueryParam("userId") - userGroupId := c.QueryParam("userGroupId") - userIds, err := repository.ResourceSharerRepository.Find(context.TODO(), resourceId, resourceType, userId, userGroupId) - if err != nil { - return err - } - return Success(c, userIds) -} - -func (api ResourceSharerApi) ResourceRemoveByUserIdAssignEndPoint(c echo.Context) error { - var ru dto.RU - if err := c.Bind(&ru); err != nil { - return err - } - - if err := repository.ResourceSharerRepository.DeleteByUserIdAndResourceTypeAndResourceIdIn(context.TODO(), ru.UserGroupId, ru.UserId, ru.ResourceType, ru.ResourceIds); err != nil { - return err - } - - return Success(c, "") -} - -func (api ResourceSharerApi) ResourceAddByUserIdAssignEndPoint(c echo.Context) error { - var ru dto.RU - if err := c.Bind(&ru); err != nil { - return err - } - - if err := service.UserService.AddSharerResources(context.TODO(), ru.UserGroupId, ru.UserId, ru.StrategyId, ru.ResourceType, ru.ResourceIds); err != nil { - return err - } - - return Success(c, "") -} diff --git a/server/api/role.go b/server/api/role.go new file mode 100644 index 0000000..3308df8 --- /dev/null +++ b/server/api/role.go @@ -0,0 +1,100 @@ +package api + +import ( + "context" + "next-terminal/server/common" + "next-terminal/server/common/maps" + "next-terminal/server/service" + "strconv" + "strings" + + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/utils" + + "github.com/labstack/echo/v4" +) + +type RoleApi struct{} + +func (api RoleApi) AllEndpoint(c echo.Context) error { + items, err := repository.RoleRepository.FindAll(context.TODO()) + if err != nil { + return err + } + return Success(c, items) +} + +func (api RoleApi) PagingEndpoint(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + name := c.QueryParam("name") + _type := c.QueryParam("type") + + order := c.QueryParam("order") + field := c.QueryParam("field") + + items, total, err := repository.RoleRepository.Find(context.TODO(), pageIndex, pageSize, name, _type, order, field) + if err != nil { + return err + } + + return Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api RoleApi) GetEndpoint(c echo.Context) error { + id := c.Param("id") + + item, err := service.RoleService.FindById(context.Background(), id) + if err != nil { + return err + } + + return Success(c, item) +} + +func (api RoleApi) CreateEndpoint(c echo.Context) error { + var item model.Role + if err := c.Bind(&item); err != nil { + return err + } + item.ID = utils.UUID() + item.Created = common.NowJsonTime() + item.Deletable = true + item.Modifiable = true + item.Type = "new" + + if err := service.RoleService.Create(context.Background(), &item); err != nil { + return err + } + return Success(c, "") +} + +func (api RoleApi) DeleteEndpoint(c echo.Context) error { + ids := c.Param("id") + split := strings.Split(ids, ",") + if err := service.RoleService.DeleteByIds(context.Background(), split, false); err != nil { + return err + } + return Success(c, nil) +} + +func (api RoleApi) UpdateEndpoint(c echo.Context) error { + id := c.Param("id") + var item model.Role + if err := c.Bind(&item); err != nil { + return err + } + + if err := service.RoleService.UpdateById(context.Background(), &item, id, false); err != nil { + return err + } + return Success(c, "") +} + +func (api RoleApi) TreeMenus(c echo.Context) error { + return Success(c, service.MenuService.GetTreeMenus()) +} diff --git a/server/api/security.go b/server/api/security.go index 37d73ee..7b28070 100644 --- a/server/api/security.go +++ b/server/api/security.go @@ -2,7 +2,7 @@ package api import ( "context" - + "next-terminal/server/common/maps" "strconv" "strings" @@ -54,7 +54,7 @@ func (api SecurityApi) SecurityPagingEndpoint(c echo.Context) error { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) diff --git a/server/api/session.go b/server/api/session.go index 9508067..1624ca0 100644 --- a/server/api/session.go +++ b/server/api/session.go @@ -13,9 +13,10 @@ import ( "strconv" "strings" - "next-terminal/server/constant" + "next-terminal/server/common" + "next-terminal/server/common/maps" + "next-terminal/server/common/nt" "next-terminal/server/global/session" - "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/service" @@ -44,10 +45,10 @@ func (api SessionApi) SessionPagingEndpoint(c echo.Context) error { } for i := 0; i < len(items); i++ { - if status == constant.Disconnected && len(items[i].Recording) > 0 { + if status == nt.Disconnected && len(items[i].Recording) > 0 { var recording string - if items[i].Mode == constant.Native || items[i].Mode == constant.Terminal { + if items[i].Mode == nt.Native || items[i].Mode == nt.Terminal { recording = items[i].Recording } else { recording = items[i].Recording + "/recording" @@ -63,7 +64,7 @@ func (api SessionApi) SessionPagingEndpoint(c echo.Context) error { } } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) @@ -71,7 +72,7 @@ func (api SessionApi) SessionPagingEndpoint(c echo.Context) error { func (api SessionApi) SessionDeleteEndpoint(c echo.Context) error { sessionIds := strings.Split(c.Param("id"), ",") - err := repository.SessionRepository.DeleteByIds(context.TODO(), sessionIds) + err := service.SessionService.DeleteByIds(context.TODO(), sessionIds) if err != nil { return err } @@ -115,8 +116,8 @@ func (api SessionApi) SessionConnectEndpoint(c echo.Context) error { s := model.Session{} s.ID = sessionId - s.Status = constant.Connected - s.ConnectedTime = utils.NowJsonTime() + s.Status = nt.Connected + s.ConnectedTime = common.NowJsonTime() if err := repository.SessionRepository.UpdateById(context.TODO(), &s, sessionId); err != nil { return err @@ -170,10 +171,10 @@ func (api SessionApi) SessionCreateEndpoint(c echo.Context) error { assetId := c.QueryParam("assetId") mode := c.QueryParam("mode") - if mode == constant.Native { - mode = constant.Native + if mode == nt.Native { + mode = nt.Native } else { - mode = constant.Guacd + mode = nt.Guacd } user, _ := GetCurrentAccount(c) @@ -221,6 +222,10 @@ func (api SessionApi) SessionUploadEndpoint(c echo.Context) error { remoteDir := c.QueryParam("dir") remoteFile := path.Join(remoteDir, filename) + // 记录日志 + account, _ := GetCurrentAccount(c) + _ = service.StorageLogService.Save(context.Background(), s.AssetId, sessionId, account.ID, nt.StorageLogActionUpload, remoteFile) + if "ssh" == s.Protocol { nextSession := session.GlobalSessionManager.GetById(sessionId) if nextSession == nil { @@ -313,6 +318,11 @@ func (api SessionApi) SessionDownloadEndpoint(c echo.Context) error { return errors.New("禁止操作") } file := c.QueryParam("file") + + // 记录日志 + account, _ := GetCurrentAccount(c) + _ = service.StorageLogService.Save(context.Background(), s.AssetId, sessionId, account.ID, nt.StorageLogActionDownload, file) + // 获取带后缀的文件名称 filenameWithSuffix := path.Base(file) if "ssh" == s.Protocol { @@ -360,7 +370,6 @@ func (api SessionApi) SessionLsEndpoint(c echo.Context) error { if nextSession.NextTerminal.SftpClient == nil { sftpClient, err := sftp.NewClient(nextSession.NextTerminal.SshClient) if err != nil { - log.Errorf("创建sftp客户端失败:%v", err.Error()) return err } nextSession.NextTerminal.SftpClient = sftpClient @@ -374,18 +383,13 @@ func (api SessionApi) SessionLsEndpoint(c echo.Context) error { var files = make([]service.File, 0) for i := range fileInfos { - // 忽略隐藏文件 - if strings.HasPrefix(fileInfos[i].Name(), ".") { - continue - } - file := service.File{ Name: fileInfos[i].Name(), Path: path.Join(remoteDir, fileInfos[i].Name()), IsDir: fileInfos[i].IsDir(), Mode: fileInfos[i].Mode().String(), IsLink: fileInfos[i].Mode()&os.ModeSymlink == os.ModeSymlink, - ModTime: utils.NewJsonTime(fileInfos[i].ModTime()), + ModTime: common.NewJsonTime(fileInfos[i].ModTime()), Size: fileInfos[i].Size(), } @@ -415,6 +419,11 @@ func (api SessionApi) SessionMkDirEndpoint(c echo.Context) error { return errors.New("禁止操作") } remoteDir := c.QueryParam("dir") + + // 记录日志 + account, _ := GetCurrentAccount(c) + _ = service.StorageLogService.Save(context.Background(), s.AssetId, sessionId, account.ID, nt.StorageLogActionMkdir, remoteDir) + if "ssh" == s.Protocol { nextSession := session.GlobalSessionManager.GetById(sessionId) if nextSession == nil { @@ -445,6 +454,11 @@ func (api SessionApi) SessionRmEndpoint(c echo.Context) error { } // 文件夹或者文件 file := c.FormValue("file") + + // 记录日志 + account, _ := GetCurrentAccount(c) + _ = service.StorageLogService.Save(context.Background(), s.AssetId, sessionId, account.ID, nt.StorageLogActionRm, file) + if "ssh" == s.Protocol { nextSession := session.GlobalSessionManager.GetById(sessionId) if nextSession == nil { @@ -502,6 +516,11 @@ func (api SessionApi) SessionRenameEndpoint(c echo.Context) error { } oldName := c.QueryParam("oldName") newName := c.QueryParam("newName") + + // 记录日志 + account, _ := GetCurrentAccount(c) + _ = service.StorageLogService.Save(context.Background(), s.AssetId, sessionId, account.ID, nt.StorageLogActionRename, oldName) + if "ssh" == s.Protocol { nextSession := session.GlobalSessionManager.GetById(sessionId) if nextSession == nil { @@ -533,15 +552,13 @@ func (api SessionApi) SessionRecordingEndpoint(c echo.Context) error { } var recording string - if s.Mode == constant.Native || s.Mode == constant.Terminal { + if s.Mode == nt.Native || s.Mode == nt.Terminal { recording = s.Recording } else { recording = s.Recording + "/recording" } _ = repository.SessionRepository.UpdateReadByIds(context.TODO(), true, []string{sessionId}) - log.Debugf("读取录屏文件:%v,是否存在: %v, 是否为文件: %v", recording, utils.FileExists(recording), utils.IsFile(recording)) - http.ServeFile(c.Response(), c.Request(), recording) return nil } @@ -570,8 +587,8 @@ func (api SessionApi) SessionStatsEndpoint(c echo.Context) error { if nextSession == nil { return errors.New("获取会话失败") } - sshClient := nextSession.NextTerminal.SshClient - stats, err := GetAllStats(sshClient) + + stats, err := GetAllStats(nextSession) if err != nil { return err } diff --git a/server/api/ssh_command_deal.go b/server/api/ssh_command_deal.go deleted file mode 100644 index b27f793..0000000 --- a/server/api/ssh_command_deal.go +++ /dev/null @@ -1,6 +0,0 @@ -package api - -func DealCommand(enterKeys []rune) { - println(string(enterKeys)) - -} diff --git a/server/api/stats.go b/server/api/stats.go index 730d2c3..0716b0b 100644 --- a/server/api/stats.go +++ b/server/api/stats.go @@ -3,6 +3,8 @@ package api import ( "bufio" "fmt" + "next-terminal/server/common/taskrunner" + "next-terminal/server/global/session" "strconv" "strings" "time" @@ -70,40 +72,56 @@ type Stat struct { CPU CPU `json:"cpu"` } -func GetAllStats(client *ssh.Client) (*Stat, error) { +func GetAllStats(nextSession *session.Session) (*Stat, error) { + client := nextSession.NextTerminal.SshClient start := time.Now() - stats := &Stat{} - if err := getUptime(client, stats); err != nil { - return nil, err + + stats := &Stat{ + Uptime: nextSession.Uptime, + Hostname: nextSession.Hostname, } - if err := getHostname(client, stats); err != nil { - return nil, err + if stats.Uptime == 0 { + if err := getUptime(client, stats); err != nil { + return nil, err + } + nextSession.Uptime = stats.Uptime } - if err := getLoad(client, stats); err != nil { - return nil, err - } - if err := getMem(client, stats); err != nil { - return nil, err - } - if err := getFileSystems(client, stats); err != nil { - return nil, err - } - if err := getInterfaces(client, stats); err != nil { - return nil, err - } - if err := getInterfaceInfo(client, stats); err != nil { - return nil, err - } - if err := getCPU(client, stats); err != nil { - return nil, err + + if stats.Hostname == "" { + if err := getHostname(client, stats); err != nil { + return nil, err + } + nextSession.Hostname = stats.Hostname } + + runner := taskrunner.Runner{} + + runner.Add(func() error { + return getLoad(client, stats) + }) + runner.Add(func() error { + return getMem(client, stats) + }) + runner.Add(func() error { + return getFileSystems(client, stats) + }) + runner.Add(func() error { + return getInterfaces(client, stats) + }) + runner.Add(func() error { + return getInterfaceInfo(client, stats) + }) + runner.Add(func() error { + return getCPU(client, stats) + }) + runner.Wait() cost := time.Since(start) fmt.Printf("%s: %v\n", "GetAllStats", cost) return stats, nil } func getHostname(client *ssh.Client, stat *Stat) (err error) { - //defer utils.TimeWatcher("getHostname") + defer utils.TimeWatcher("getHostname") hostname, err := utils.RunCommand(client, "/bin/hostname -f") if err != nil { return @@ -113,7 +131,7 @@ func getHostname(client *ssh.Client, stat *Stat) (err error) { } func getUptime(client *ssh.Client, stat *Stat) (err error) { - //defer utils.TimeWatcher("getUptime") + defer utils.TimeWatcher("getUptime") uptime, err := utils.RunCommand(client, "/bin/cat /proc/uptime") if err != nil { return @@ -132,7 +150,7 @@ func getUptime(client *ssh.Client, stat *Stat) (err error) { } func getLoad(client *ssh.Client, stat *Stat) (err error) { - //defer utils.TimeWatcher("getLoad") + defer utils.TimeWatcher("getLoad") line, err := utils.RunCommand(client, "/bin/cat /proc/loadavg") if err != nil { return @@ -154,7 +172,7 @@ func getLoad(client *ssh.Client, stat *Stat) (err error) { } func getMem(client *ssh.Client, stat *Stat) (err error) { - //defer utils.TimeWatcher("getMem") + defer utils.TimeWatcher("getMem") lines, err := utils.RunCommand(client, "/bin/cat /proc/meminfo") if err != nil { return @@ -192,7 +210,7 @@ func getMem(client *ssh.Client, stat *Stat) (err error) { } func getFileSystems(client *ssh.Client, stat *Stat) (err error) { - //defer utils.TimeWatcher("getFileSystems") + defer utils.TimeWatcher("getFileSystems") lines, err := utils.RunCommand(client, "/bin/df -B1") if err != nil { return @@ -228,7 +246,7 @@ func getFileSystems(client *ssh.Client, stat *Stat) (err error) { } func getInterfaces(client *ssh.Client, stats *Stat) (err error) { - //defer utils.TimeWatcher("getInterfaces") + defer utils.TimeWatcher("getInterfaces") var lines string lines, err = utils.RunCommand(client, "/bin/ip -o addr") if err != nil { @@ -273,16 +291,16 @@ func getInterfaces(client *ssh.Client, stats *Stat) (err error) { } func getInterfaceInfo(client *ssh.Client, stats *Stat) (err error) { - //defer utils.TimeWatcher("getInterfaceInfo") - lines, err := utils.RunCommand(client, "/bin/cat /proc/net/dev") - if err != nil { - return - } + defer utils.TimeWatcher("getInterfaceInfo") if stats.Network == nil { return } // should have been here already + lines, err := utils.RunCommand(client, "/bin/cat /proc/net/dev") + if err != nil { + return + } scanner := bufio.NewScanner(strings.NewReader(lines)) for scanner.Scan() { line := scanner.Text() @@ -345,7 +363,7 @@ func parseCPUFields(fields []string, stat *cpuRaw) { var preCPU cpuRaw func getCPU(client *ssh.Client, stats *Stat) (err error) { - //defer utils.TimeWatcher("getCPU") + defer utils.TimeWatcher("getCPU") lines, err := utils.RunCommand(client, "/bin/cat /proc/stat") if err != nil { return diff --git a/server/api/storage.go b/server/api/storage.go index 620b83b..206211c 100644 --- a/server/api/storage.go +++ b/server/api/storage.go @@ -3,12 +3,14 @@ package api import ( "context" "errors" + "next-terminal/server/common" + "next-terminal/server/common/maps" + "next-terminal/server/common/nt" "os" "path" "strconv" "strings" - "next-terminal/server/constant" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/service" @@ -44,7 +46,7 @@ func (api StorageApi) StoragePagingEndpoint(c echo.Context) error { } } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) @@ -59,7 +61,7 @@ func (api StorageApi) StorageCreateEndpoint(c echo.Context) error { account, _ := GetCurrentAccount(c) item.ID = utils.UUID() - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() item.Owner = account.ID // 创建对应的目录文件夹 drivePath := service.StorageService.GetBaseDrivePath() @@ -147,7 +149,7 @@ func (api StorageApi) PermissionCheck(c echo.Context, id string) error { return err } account, _ := GetCurrentAccount(c) - if account.Type != constant.TypeAdmin { + if account.Type != nt.TypeAdmin { if storage.Owner != account.ID { return errors.New("您没有权限访问此地址 :(") } diff --git a/server/api/storage_log.go b/server/api/storage_log.go new file mode 100644 index 0000000..bc1237c --- /dev/null +++ b/server/api/storage_log.go @@ -0,0 +1,48 @@ +package api + +import ( + "context" + "github.com/labstack/echo/v4" + "next-terminal/server/common/maps" + "next-terminal/server/repository" + "strconv" +) + +type StorageLogApi struct { +} + +func (api StorageLogApi) PagingEndpoint(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + assetId := c.QueryParam("assetId") + userId := c.QueryParam("userId") + action := c.QueryParam("action") + + order := c.QueryParam("order") + field := c.QueryParam("field") + + items, total, err := repository.StorageLogRepository.Find(context.TODO(), pageIndex, pageSize, assetId, userId, action, order, field) + if err != nil { + return err + } + + return Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api StorageLogApi) DeleteEndpoint(c echo.Context) error { + id := c.Param("id") + if err := repository.StorageLogRepository.DeleteById(context.Background(), id); err != nil { + return err + } + return Success(c, nil) +} + +func (api StorageLogApi) ClearEndpoint(c echo.Context) error { + if err := repository.StorageLogRepository.DeleteAll(context.Background()); err != nil { + return err + } + return Success(c, nil) +} diff --git a/server/api/strategy.go b/server/api/strategy.go index a837caa..252384f 100644 --- a/server/api/strategy.go +++ b/server/api/strategy.go @@ -2,7 +2,8 @@ package api import ( "context" - + "next-terminal/server/common" + "next-terminal/server/common/maps" "strconv" "strings" @@ -36,7 +37,7 @@ func (api StrategyApi) StrategyPagingEndpoint(c echo.Context) error { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) @@ -48,7 +49,7 @@ func (api StrategyApi) StrategyCreateEndpoint(c echo.Context) error { return err } item.ID = utils.UUID() - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() if err := repository.StrategyRepository.Create(context.TODO(), &item); err != nil { return err @@ -80,3 +81,12 @@ func (api StrategyApi) StrategyUpdateEndpoint(c echo.Context) error { } return Success(c, "") } + +func (api StrategyApi) GetEndpoint(c echo.Context) error { + id := c.Param("id") + strategy, err := repository.StrategyRepository.FindById(context.Background(), id) + if err != nil { + return err + } + return Success(c, strategy) +} diff --git a/server/api/tenant.go b/server/api/tenant.go new file mode 100644 index 0000000..e641f29 --- /dev/null +++ b/server/api/tenant.go @@ -0,0 +1,83 @@ +package api + +import ( + "context" + "next-terminal/server/common" + "next-terminal/server/common/maps" + "strconv" + "strings" + + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/utils" + + "github.com/labstack/echo/v4" +) + +type TenantApi struct{} + +func (api TenantApi) AllEndpoint(c echo.Context) error { + items, err := repository.TenantRepository.FindAll(context.TODO()) + if err != nil { + return err + } + return Success(c, items) +} + +func (api TenantApi) PagingEndpoint(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + name := c.QueryParam("name") + + order := c.QueryParam("order") + field := c.QueryParam("field") + + items, total, err := repository.TenantRepository.Find(context.TODO(), pageIndex, pageSize, name, order, field) + if err != nil { + return err + } + + return Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api TenantApi) CreateEndpoint(c echo.Context) error { + var item model.Tenant + if err := c.Bind(&item); err != nil { + return err + } + item.ID = utils.UUID() + item.Created = common.NowJsonTime() + + if err := repository.TenantRepository.Create(context.TODO(), &item); err != nil { + return err + } + return Success(c, "") +} + +func (api TenantApi) DeleteEndpoint(c echo.Context) error { + ids := c.Param("id") + split := strings.Split(ids, ",") + for i := range split { + id := split[i] + if err := repository.TenantRepository.DeleteById(context.TODO(), id); err != nil { + return err + } + } + return Success(c, nil) +} + +func (api TenantApi) UpdateEndpoint(c echo.Context) error { + id := c.Param("id") + var item model.Tenant + if err := c.Bind(&item); err != nil { + return err + } + + if err := repository.TenantRepository.UpdateById(context.TODO(), &item, id); err != nil { + return err + } + return Success(c, "") +} diff --git a/server/api/term.go b/server/api/term.go index 2efe6f3..ae580c4 100644 --- a/server/api/term.go +++ b/server/api/term.go @@ -4,20 +4,18 @@ import ( "context" "encoding/base64" "encoding/json" - "errors" + "next-terminal/server/common/nt" "path" "strconv" + "next-terminal/server/common/guacamole" + "next-terminal/server/common/term" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/dto" "next-terminal/server/global/session" - "next-terminal/server/guacd" - "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/service" - "next-terminal/server/term" "next-terminal/server/utils" "github.com/gorilla/websocket" @@ -38,7 +36,6 @@ type WebTerminalApi struct { func (api WebTerminalApi) SshEndpoint(c echo.Context) error { ws, err := UpGrader.Upgrade(c.Response().Writer, c.Request(), nil) if err != nil { - log.Errorf("升级为WebSocket协议失败:%v", err.Error()) return err } @@ -86,7 +83,7 @@ func (api WebTerminalApi) SshEndpoint(c echo.Context) error { recording := "" var isRecording = false - property, err := repository.PropertyRepository.FindByName(ctx, guacd.EnableRecording) + property, err := repository.PropertyRepository.FindByName(ctx, guacamole.EnableRecording) if err == nil && property.Value == "true" { isRecording = true } @@ -102,8 +99,8 @@ func (api WebTerminalApi) SshEndpoint(c echo.Context) error { var xterm = "xterm-256color" var nextTerminal *term.NextTerminal - if "true" == attributes[constant.SocksProxyEnable] { - nextTerminal, err = term.NewNextTerminalUseSocks(ip, port, username, password, privateKey, passphrase, rows, cols, recording, xterm, true, attributes[constant.SocksProxyHost], attributes[constant.SocksProxyPort], attributes[constant.SocksProxyUsername], attributes[constant.SocksProxyPassword]) + if "true" == attributes[nt.SocksProxyEnable] { + nextTerminal, err = term.NewNextTerminalUseSocks(ip, port, username, password, privateKey, passphrase, rows, cols, recording, xterm, true, attributes[nt.SocksProxyHost], attributes[nt.SocksProxyPort], attributes[nt.SocksProxyUsername], attributes[nt.SocksProxyPassword]) } else { nextTerminal, err = term.NewNextTerminal(ip, port, username, password, privateKey, passphrase, rows, cols, recording, xterm, true) } @@ -120,20 +117,19 @@ func (api WebTerminalApi) SshEndpoint(c echo.Context) error { return err } - sess := model.Session{ + sessionForUpdate := model.Session{ ConnectionId: sessionId, Width: cols, Height: rows, - Status: constant.Connecting, + Status: nt.Connecting, Recording: recording, } - if sess.Recording == "" { + if sessionForUpdate.Recording == "" { // 未录屏时无需审计 - sess.Reviewed = true + sessionForUpdate.Reviewed = true } // 创建新会话 - log.Debugf("创建新会话 %v", sess.ConnectionId) - if err := repository.SessionRepository.UpdateById(ctx, &sess, sessionId); err != nil { + if err := repository.SessionRepository.UpdateById(ctx, &sessionForUpdate, sessionId); err != nil { return err } @@ -152,7 +148,7 @@ func (api WebTerminalApi) SshEndpoint(c echo.Context) error { } session.GlobalSessionManager.Add(nextSession) - termHandler := NewTermHandler(sessionId, isRecording, ws, nextTerminal) + termHandler := NewTermHandler(s.Creator, s.AssetId, sessionId, isRecording, ws, nextTerminal) termHandler.Start() defer termHandler.Stop() @@ -160,14 +156,12 @@ func (api WebTerminalApi) SshEndpoint(c echo.Context) error { _, message, err := ws.ReadMessage() if err != nil { // web socket会话关闭后主动关闭ssh会话 - log.Debugf("WebSocket已关闭") service.SessionService.CloseSessionById(sessionId, Normal, "用户正常退出") break } msg, err := dto.ParseMessage(string(message)) if err != nil { - log.Warnf("消息解码失败: %v, 原始字符串:%v", err, string(message)) continue } @@ -175,31 +169,28 @@ func (api WebTerminalApi) SshEndpoint(c echo.Context) error { case Resize: decodeString, err := base64.StdEncoding.DecodeString(msg.Content) if err != nil { - log.Warnf("Base64解码失败: %v,原始字符串:%v", err, msg.Content) continue } var winSize dto.WindowSize err = json.Unmarshal(decodeString, &winSize) if err != nil { - log.Warnf("解析SSH会话窗口大小失败: %v,原始字符串:%v", err, msg.Content) continue } - if err := nextTerminal.WindowChange(winSize.Rows, winSize.Cols); err != nil { - log.Warnf("更改SSH会话窗口大小失败: %v", err) + if err := termHandler.WindowChange(winSize.Rows, winSize.Cols); err != nil { } _ = repository.SessionRepository.UpdateWindowSizeById(ctx, winSize.Rows, winSize.Cols, sessionId) case Data: input := []byte(msg.Content) - _, err := nextTerminal.Write(input) + err := termHandler.Write(input) if err != nil { service.SessionService.CloseSessionById(sessionId, TunnelClosed, "远程连接已关闭") } case Ping: - _, _, err := nextTerminal.SshClient.Conn.SendRequest("helloworld1024@foxmail.com", true, nil) + err := termHandler.SendRequest() if err != nil { service.SessionService.CloseSessionById(sessionId, TunnelClosed, "远程连接已关闭") } else { - _ = termHandler.WriteMessage(dto.NewMessage(Ping, "")) + _ = termHandler.SendMessageToWebSocket(dto.NewMessage(Ping, "")) } } @@ -210,7 +201,6 @@ func (api WebTerminalApi) SshEndpoint(c echo.Context) error { func (api WebTerminalApi) SshMonitorEndpoint(c echo.Context) error { ws, err := UpGrader.Upgrade(c.Response().Writer, c.Request(), nil) if err != nil { - log.Errorf("升级为WebSocket协议失败:%v", err.Error()) return err } @@ -238,12 +228,10 @@ func (api WebTerminalApi) SshMonitorEndpoint(c echo.Context) error { WebSocket: ws, } nextSession.Observer.Add(obSession) - log.Debugf("会话 %v 观察者 %v 进入", sessionId, obId) for { _, _, err := ws.ReadMessage() if err != nil { - log.Debugf("会话 %v 观察者 %v 退出", sessionId, obId) nextSession.Observer.Del(obId) break } @@ -253,16 +241,16 @@ func (api WebTerminalApi) SshMonitorEndpoint(c echo.Context) error { func (api WebTerminalApi) permissionCheck(c echo.Context, assetId string) error { user, _ := GetCurrentAccount(c) - if constant.TypeUser == user.Type { - // 检测是否有访问权限 - assetIds, err := repository.ResourceSharerRepository.FindAssetIdsByUserId(context.TODO(), user.ID) - if err != nil { - return err - } - - if !utils.Contains(assetIds, assetId) { - return errors.New("您没有权限访问此资产") - } + if nt.TypeUser == user.Type { + // 检测是否有访问权限 TODO + //assetIds, err := repository.ResourceSharerRepository.FindAssetIdsByUserId(context.TODO(), user.ID) + //if err != nil { + // return err + //} + // + //if !utils.Contains(assetIds, assetId) { + // return errors.New("您没有权限访问此资产") + //} } return nil } diff --git a/server/api/term_handler.go b/server/api/term_handler.go index 5728127..1008e12 100644 --- a/server/api/term_handler.go +++ b/server/api/term_handler.go @@ -1,16 +1,16 @@ package api import ( + "bytes" "context" "sync" "time" "unicode/utf8" + "github.com/gorilla/websocket" + "next-terminal/server/common/term" "next-terminal/server/dto" "next-terminal/server/global/session" - "next-terminal/server/term" - - "github.com/gorilla/websocket" ) type TermHandler struct { @@ -23,11 +23,13 @@ type TermHandler struct { dataChan chan rune tick *time.Ticker mutex sync.Mutex + buf bytes.Buffer } -func NewTermHandler(sessionId string, isRecording bool, ws *websocket.Conn, nextTerminal *term.NextTerminal) *TermHandler { +func NewTermHandler(userId, assetId, sessionId string, isRecording bool, ws *websocket.Conn, nextTerminal *term.NextTerminal) *TermHandler { ctx, cancel := context.WithCancel(context.Background()) tick := time.NewTicker(time.Millisecond * time.Duration(60)) + return &TermHandler{ sessionId: sessionId, isRecording: isRecording, @@ -46,6 +48,7 @@ func (r *TermHandler) Start() { } func (r *TermHandler) Stop() { + // 会话结束时记录最后一个命令 r.tick.Stop() r.cancel() } @@ -68,38 +71,50 @@ func (r *TermHandler) readFormTunnel() { } func (r *TermHandler) writeToWebsocket() { - var buf []byte for { select { case <-r.ctx.Done(): return case <-r.tick.C: - if len(buf) > 0 { - s := string(buf) - if err := r.WriteMessage(dto.NewMessage(Data, s)); err != nil { - return - } - // 录屏 - if r.isRecording { - _ = r.nextTerminal.Recorder.WriteData(s) - } - // 监控 - SendObData(r.sessionId, s) - buf = []byte{} + s := r.buf.String() + if err := r.SendMessageToWebSocket(dto.NewMessage(Data, s)); err != nil { + return } + // 录屏 + if r.isRecording { + _ = r.nextTerminal.Recorder.WriteData(s) + } + // 监控 + SendObData(r.sessionId, s) + r.buf.Reset() case data := <-r.dataChan: if data != utf8.RuneError { p := make([]byte, utf8.RuneLen(data)) utf8.EncodeRune(p, data) - buf = append(buf, p...) + r.buf.Write(p) } else { - buf = append(buf, []byte("@")...) + r.buf.Write([]byte("@")) } } } } -func (r *TermHandler) WriteMessage(msg dto.Message) error { +func (r *TermHandler) Write(input []byte) error { + // 正常的字符输入 + _, err := r.nextTerminal.Write(input) + return err +} + +func (r *TermHandler) WindowChange(h int, w int) error { + return r.nextTerminal.WindowChange(h, w) +} + +func (r *TermHandler) SendRequest() error { + _, _, err := r.nextTerminal.SshClient.Conn.SendRequest("helloworld1024@foxmail.com", true, nil) + return err +} + +func (r *TermHandler) SendMessageToWebSocket(msg dto.Message) error { if r.webSocket == nil { return nil } diff --git a/server/api/test/test.go b/server/api/test/test.go deleted file mode 100644 index 6078b4b..0000000 --- a/server/api/test/test.go +++ /dev/null @@ -1,66 +0,0 @@ -package main - -import ( - "fmt" - "strings" - - "github.com/manifoldco/promptui" -) - -type pepper struct { - Name string - HeatUnit int - Peppers int -} - -func main() { - peppers := []pepper{ - {Name: "Bell Pepper", HeatUnit: 0, Peppers: 0}, - {Name: "Banana Pepper", HeatUnit: 100, Peppers: 1}, - {Name: "Poblano", HeatUnit: 1000, Peppers: 2}, - {Name: "Jalapeño", HeatUnit: 3500, Peppers: 3}, - {Name: "Aleppo", HeatUnit: 10000, Peppers: 4}, - {Name: "Tabasco", HeatUnit: 30000, Peppers: 5}, - {Name: "Malagueta", HeatUnit: 50000, Peppers: 6}, - {Name: "Habanero", HeatUnit: 100000, Peppers: 7}, - {Name: "Red Savina Habanero", HeatUnit: 350000, Peppers: 8}, - {Name: "Dragon’s Breath", HeatUnit: 855000, Peppers: 9}, - } - - templates := &promptui.SelectTemplates{ - Label: "{{ . }}?", - Active: "\U0001F336 {{ .Name | cyan }} ({{ .HeatUnit | red }})", - Inactive: " {{ .Name | cyan }} ({{ .HeatUnit | red }})", - Selected: "\U0001F336 {{ .Name | red | cyan }}", - Details: ` ---------- Pepper ---------- -{{ "Name:" | faint }} {{ .Name }}/ -{{ "Heat Unit:" | faint }} {{ .HeatUnit }} -{{ "Peppers:" | faint }} {{ .Peppers }}`, - } - - searcher := func(input string, index int) bool { - pepper := peppers[index] - name := strings.Replace(strings.ToLower(pepper.Name), " ", "", -1) - input = strings.Replace(strings.ToLower(input), " ", "", -1) - - return strings.Contains(name, input) - } - - prompt := promptui.Select{ - Label: "Spicy Level", - Items: peppers, - Templates: templates, - Size: 4, - Searcher: searcher, - } - - i, _, err := prompt.Run() - - if err != nil { - fmt.Printf("Prompt failed %v\n", err) - return - } - - fmt.Printf("You choose number %d: %s\n", i+1, peppers[i].Name) -} diff --git a/server/api/user.go b/server/api/user.go index 40a59b1..9306d94 100644 --- a/server/api/user.go +++ b/server/api/user.go @@ -2,21 +2,19 @@ package api import ( "context" - "fmt" + "next-terminal/server/common/maps" "strconv" "strings" + "github.com/labstack/echo/v4" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/service" - "next-terminal/server/utils" - - "github.com/labstack/echo/v4" ) type UserApi struct{} -func (userApi UserApi) UserCreateEndpoint(c echo.Context) (err error) { +func (userApi UserApi) CreateEndpoint(c echo.Context) (err error) { var item model.User if err := c.Bind(&item); err != nil { return err @@ -29,7 +27,7 @@ func (userApi UserApi) UserCreateEndpoint(c echo.Context) (err error) { return Success(c, item) } -func (userApi UserApi) UserPagingEndpoint(c echo.Context) error { +func (userApi UserApi) PagingEndpoint(c echo.Context) error { pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) username := c.QueryParam("username") @@ -38,25 +36,26 @@ func (userApi UserApi) UserPagingEndpoint(c echo.Context) error { order := c.QueryParam("order") field := c.QueryParam("field") + online := c.QueryParam("online") - items, total, err := repository.UserRepository.Find(context.TODO(), pageIndex, pageSize, username, nickname, mail, order, field) + items, total, err := repository.UserRepository.Find(context.TODO(), pageIndex, pageSize, username, nickname, mail, online, "", order, field) if err != nil { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) } -func (userApi UserApi) UserUpdateEndpoint(c echo.Context) error { +func (userApi UserApi) UpdateEndpoint(c echo.Context) error { id := c.Param("id") - account, _ := GetCurrentAccount(c) - if account.ID == id { - return Fail(c, -1, "cannot modify itself") - } + //account, _ := GetCurrentAccount(c) + //if account.ID == id { + // return Fail(c, -1, "cannot modify itself") + //} var item model.User if err := c.Bind(&item); err != nil { @@ -70,7 +69,7 @@ func (userApi UserApi) UserUpdateEndpoint(c echo.Context) error { return Success(c, nil) } -func (userApi UserApi) UserUpdateStatusEndpoint(c echo.Context) error { +func (userApi UserApi) UpdateStatusEndpoint(c echo.Context) error { id := c.Param("id") status := c.QueryParam("status") account, _ := GetCurrentAccount(c) @@ -85,7 +84,7 @@ func (userApi UserApi) UserUpdateStatusEndpoint(c echo.Context) error { return Success(c, nil) } -func (userApi UserApi) UserDeleteEndpoint(c echo.Context) error { +func (userApi UserApi) DeleteEndpoint(c echo.Context) error { ids := c.Param("id") account, found := GetCurrentAccount(c) if !found { @@ -105,10 +104,10 @@ func (userApi UserApi) UserDeleteEndpoint(c echo.Context) error { return Success(c, nil) } -func (userApi UserApi) UserGetEndpoint(c echo.Context) error { +func (userApi UserApi) GetEndpoint(c echo.Context) error { id := c.Param("id") - item, err := repository.UserRepository.FindById(context.TODO(), id) + item, err := service.UserService.FindById(id) if err != nil { return err } @@ -116,49 +115,41 @@ func (userApi UserApi) UserGetEndpoint(c echo.Context) error { return Success(c, item) } -func (userApi UserApi) UserChangePasswordEndpoint(c echo.Context) error { +func (userApi UserApi) ChangePasswordEndpoint(c echo.Context) error { id := c.Param("id") password := c.FormValue("password") if password == "" { return Fail(c, -1, "请输入密码") } - - user, err := repository.UserRepository.FindById(context.TODO(), id) - if err != nil { + ids := strings.Split(id, ",") + if err := service.UserService.ChangePassword(ids, password); err != nil { return err } - passwd, err := utils.Encoder.Encode([]byte(password)) - if err != nil { - return err - } - u := &model.User{ - Password: string(passwd), - ID: id, - } - if err := repository.UserRepository.Update(context.TODO(), u); err != nil { - return err - } - - if user.Mail != "" { - subject := "密码修改通知" - text := fmt.Sprintf(`您好,%s。 - 管理员已将你的密码修改为:%s。 -`, user.Username, password) - go service.MailService.SendMail(user.Mail, subject, text) - } - return Success(c, "") } -func (userApi UserApi) UserResetTotpEndpoint(c echo.Context) error { +func (userApi UserApi) ResetTotpEndpoint(c echo.Context) error { id := c.Param("id") - u := &model.User{ - TOTPSecret: "-", - ID: id, - } - if err := repository.UserRepository.Update(context.TODO(), u); err != nil { + ids := strings.Split(id, ",") + if err := service.UserService.ResetTotp(ids); err != nil { return err } + return Success(c, "") } + +func (userApi UserApi) AllEndpoint(c echo.Context) error { + users, err := repository.UserRepository.FindAll(context.Background()) + if err != nil { + return err + } + items := make([]maps.Map, len(users)) + for i, user := range users { + items[i] = maps.Map{ + "id": user.ID, + "nickname": user.Nickname, + } + } + return Success(c, items) +} diff --git a/server/api/user-group.go b/server/api/user_group.go similarity index 79% rename from server/api/user-group.go rename to server/api/user_group.go index 2a262fd..2a6783d 100644 --- a/server/api/user-group.go +++ b/server/api/user_group.go @@ -2,6 +2,8 @@ package api import ( "context" + "next-terminal/server/common/maps" + "next-terminal/server/model" "strconv" "strings" @@ -15,7 +17,7 @@ import ( type UserGroupApi struct{} func (userGroupApi UserGroupApi) UserGroupCreateEndpoint(c echo.Context) error { - var item dto.UserGroup + var item model.UserGroup if err := c.Bind(&item); err != nil { return err } @@ -40,7 +42,7 @@ func (userGroupApi UserGroupApi) UserGroupPagingEndpoint(c echo.Context) error { return err } - return Success(c, Map{ + return Success(c, maps.Map{ "total": total, "items": items, }) @@ -49,7 +51,7 @@ func (userGroupApi UserGroupApi) UserGroupPagingEndpoint(c echo.Context) error { func (userGroupApi UserGroupApi) UserGroupUpdateEndpoint(c echo.Context) error { id := c.Param("id") - var item dto.UserGroup + var item model.UserGroup if err := c.Bind(&item); err != nil { return err } @@ -82,7 +84,7 @@ func (userGroupApi UserGroupApi) UserGroupGetEndpoint(c echo.Context) error { return err } - members, err := repository.UserGroupMemberRepository.FindUserIdsByUserGroupId(context.TODO(), id) + members, err := repository.UserGroupMemberRepository.FindByUserGroupId(context.TODO(), id) if err != nil { return err } @@ -90,8 +92,17 @@ func (userGroupApi UserGroupApi) UserGroupGetEndpoint(c echo.Context) error { userGroup := dto.UserGroup{ Id: item.ID, Name: item.Name, + Created: item.Created, Members: members, } return Success(c, userGroup) } + +func (userGroupApi UserGroupApi) UserGroupAllEndpoint(c echo.Context) error { + userGroups, err := repository.UserGroupRepository.FindAll(context.Background()) + if err != nil { + return err + } + return Success(c, userGroups) +} diff --git a/server/api/worker/asset.go b/server/api/worker/asset.go new file mode 100644 index 0000000..bea276d --- /dev/null +++ b/server/api/worker/asset.go @@ -0,0 +1,49 @@ +package worker + +import ( + "context" + "github.com/labstack/echo/v4" + "next-terminal/server/api/abi" + "next-terminal/server/common/maps" + "next-terminal/server/service" + "strconv" +) + +type WorkAssetApi struct { + abi.Abi +} + +func (api WorkAssetApi) PagingEndpoint(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + name := c.QueryParam("name") + protocol := c.QueryParam("protocol") + tags := c.QueryParam("tags") + + order := c.QueryParam("order") + field := c.QueryParam("field") + account, _ := api.GetCurrentAccount(c) + + items, total, err := service.WorkerService.FindMyAssetPaging(pageIndex, pageSize, name, protocol, tags, account.ID, order, field) + if err != nil { + return err + } + for i := range items { + items[i].IP = "" + items[i].Port = 0 + } + + return api.Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api WorkAssetApi) TagsEndpoint(c echo.Context) (err error) { + account, _ := api.GetCurrentAccount(c) + var items []string + if items, err = service.WorkerService.FindMyAssetTags(context.TODO(), account.ID); err != nil { + return err + } + return api.Success(c, items) +} diff --git a/server/api/worker/command.go b/server/api/worker/command.go new file mode 100644 index 0000000..f4aac07 --- /dev/null +++ b/server/api/worker/command.go @@ -0,0 +1,132 @@ +package worker + +import ( + "context" + "errors" + "gorm.io/gorm" + "next-terminal/server/common/nt" + "strconv" + "strings" + + "next-terminal/server/api/abi" + "next-terminal/server/common" + "next-terminal/server/common/maps" + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/utils" + + "github.com/labstack/echo/v4" +) + +type WorkCommandApi struct { + abi.Abi +} + +func (api WorkCommandApi) CommandCreateEndpoint(c echo.Context) error { + var item model.Command + if err := c.Bind(&item); err != nil { + return err + } + + account, _ := api.GetCurrentAccount(c) + item.Owner = account.ID + item.ID = utils.UUID() + item.Created = common.NowJsonTime() + + if err := repository.CommandRepository.Create(context.TODO(), &item); err != nil { + return err + } + + return api.Success(c, item) +} + +func (api WorkCommandApi) CommandAllEndpoint(c echo.Context) error { + account, _ := api.GetCurrentAccount(c) + userId := account.ID + items, err := repository.CommandRepository.FindByUserId(context.Background(), userId) + if err != nil { + return err + } + return api.Success(c, items) +} + +func (api WorkCommandApi) CommandPagingEndpoint(c echo.Context) error { + pageIndex, _ := strconv.Atoi(c.QueryParam("pageIndex")) + pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) + name := c.QueryParam("name") + content := c.QueryParam("content") + order := c.QueryParam("order") + field := c.QueryParam("field") + + account, _ := api.GetCurrentAccount(c) + userId := account.ID + + items, total, err := repository.CommandRepository.WorkerFind(context.TODO(), pageIndex, pageSize, name, content, order, field, userId) + if err != nil { + return err + } + + return api.Success(c, maps.Map{ + "total": total, + "items": items, + }) +} + +func (api WorkCommandApi) CommandUpdateEndpoint(c echo.Context) error { + id := c.Param("id") + + if !api.checkPermission(c, id) { + return nt.ErrPermissionDenied + } + + var item model.Command + if err := c.Bind(&item); err != nil { + return err + } + + if err := repository.CommandRepository.UpdateById(context.TODO(), &item, id); err != nil { + return err + } + + return api.Success(c, nil) +} + +func (api WorkCommandApi) CommandDeleteEndpoint(c echo.Context) error { + id := c.Param("id") + split := strings.Split(id, ",") + for i := range split { + if !api.checkPermission(c, id) { + return nt.ErrPermissionDenied + } + if err := repository.CommandRepository.DeleteById(context.TODO(), split[i]); err != nil { + return err + } + } + return api.Success(c, nil) +} + +func (api WorkCommandApi) CommandGetEndpoint(c echo.Context) (err error) { + id := c.Param("id") + if !api.checkPermission(c, id) { + return nt.ErrPermissionDenied + } + var item model.Command + if item, err = repository.CommandRepository.FindById(context.TODO(), id); err != nil { + return err + } + return api.Success(c, item) +} + +func (api WorkCommandApi) checkPermission(c echo.Context, commandId string) bool { + command, err := repository.CommandRepository.FindById(context.Background(), commandId) + if err != nil { + if errors.Is(gorm.ErrRecordNotFound, err) { + return true + } + return false + } + account, _ := api.GetCurrentAccount(c) + userId := account.ID + + return command.Owner == userId +} diff --git a/server/app/app.go b/server/app/app.go index e67e9a7..057ab3b 100644 --- a/server/app/app.go +++ b/server/app/app.go @@ -3,16 +3,12 @@ package app import ( "encoding/json" "fmt" - "net/http" - _ "net/http/pprof" - "next-terminal/server/log" - - "next-terminal/server/cli" + "next-terminal/server/branding" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/service" "next-terminal/server/sshd" + "next-terminal/server/task" "github.com/labstack/echo/v4" ) @@ -66,7 +62,12 @@ func (app App) InitDBData() (err error) { if err := service.StorageService.InitStorages(); err != nil { return err } - + if err := service.MenuService.Init(); err != nil { + return err + } + if err := service.RoleService.Init(); err != nil { + return err + } // 修复数据 if err := service.AssetService.FixSshMode(); err != nil { return err @@ -93,7 +94,7 @@ func (app App) ReloadData() error { func Run() error { - fmt.Printf(constant.AppBanner, constant.AppVersion) + fmt.Printf(branding.Hi) if err := app.InitDBData(); err != nil { panic(err) @@ -108,13 +109,10 @@ func Run() error { if err != nil { return err } - go func() { - log.Fatal(http.ListenAndServe("localhost:8099", nil)) - }() fmt.Printf("当前配置为: %v\n", string(jsonBytes)) } - _cli := cli.NewCli() + _cli := service.NewCli() if config.GlobalCfg.ResetPassword != "" { return _cli.ResetPassword(config.GlobalCfg.ResetPassword) @@ -127,6 +125,9 @@ func Run() error { return _cli.ChangeEncryptionKey(config.GlobalCfg.EncryptionKey, config.GlobalCfg.NewEncryptionKey) } + ticker := task.NewTicker() + ticker.SetupTicker() + if config.GlobalCfg.Sshd.Enable { go sshd.Sshd.Serve() } diff --git a/server/app/middleware.go b/server/app/middleware.go deleted file mode 100644 index fc4365e..0000000 --- a/server/app/middleware.go +++ /dev/null @@ -1,145 +0,0 @@ -package app - -import ( - "fmt" - "net" - "strings" - - "next-terminal/server/api" - "next-terminal/server/constant" - "next-terminal/server/dto" - "next-terminal/server/global/cache" - "next-terminal/server/global/security" - "next-terminal/server/utils" - - "github.com/labstack/echo/v4" -) - -func ErrorHandler(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - - if err := next(c); err != nil { - - if he, ok := err.(*echo.HTTPError); ok { - message := fmt.Sprintf("%v", he.Message) - return api.Fail(c, he.Code, message) - } - - return api.Fail(c, 0, err.Error()) - } - return nil - } -} - -func TcpWall(next echo.HandlerFunc) echo.HandlerFunc { - - return func(c echo.Context) error { - securities := security.GlobalSecurityManager.Values() - if len(securities) == 0 { - return next(c) - } - - ip := c.RealIP() - - for _, s := range securities { - if strings.Contains(s.IP, "/") { - // CIDR - _, ipNet, err := net.ParseCIDR(s.IP) - if err != nil { - continue - } - if !ipNet.Contains(net.ParseIP(ip)) { - continue - } - } else if strings.Contains(s.IP, "-") { - // 范围段 - split := strings.Split(s.IP, "-") - if len(split) < 2 { - continue - } - start := split[0] - end := split[1] - intReqIP := utils.IpToInt(ip) - if intReqIP < utils.IpToInt(start) || intReqIP > utils.IpToInt(end) { - continue - } - } else { - // IP - if s.IP != ip { - continue - } - } - - if s.Rule == constant.AccessRuleAllow { - return next(c) - } - if s.Rule == constant.AccessRuleReject { - if c.Request().Header.Get("X-Requested-With") != "" || c.Request().Header.Get(constant.Token) != "" { - return api.Fail(c, 0, "您的访问请求被拒绝 :(") - } else { - return c.HTML(666, "您的访问请求被拒绝 :(") - } - } - } - - return next(c) - } -} - -var anonymousUrls = []string{"/login", "/static", "/favicon.ico", "/logo.svg", "/asciinema"} - -func Auth(next echo.HandlerFunc) echo.HandlerFunc { - - return func(c echo.Context) error { - - uri := c.Request().RequestURI - if uri == "/" || strings.HasPrefix(uri, "/#") { - return next(c) - } - // 路由拦截 - 登录身份、资源权限判断等 - for i := range anonymousUrls { - if strings.HasPrefix(uri, anonymousUrls[i]) { - return next(c) - } - } - - token := api.GetToken(c) - if token == "" { - return api.Fail(c, 401, "您的登录信息已失效,请重新登录后再试。") - } - - v, found := cache.TokenManager.Get(token) - if !found { - return api.Fail(c, 401, "您的登录信息已失效,请重新登录后再试。") - } - - authorization := v.(dto.Authorization) - - if strings.EqualFold(constant.LoginToken, authorization.Type) { - if authorization.Remember { - // 记住登录有效期两周 - cache.TokenManager.Set(token, authorization, cache.RememberMeExpiration) - } else { - cache.TokenManager.Set(token, authorization, cache.NotRememberExpiration) - } - } - - return next(c) - } -} - -func Admin(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - - account, found := api.GetCurrentAccount(c) - if !found { - return api.Fail(c, 401, "您的登录信息已失效,请重新登录后再试。") - } - - if account.Type != constant.TypeAdmin { - return api.Fail(c, 403, "permission denied") - } - - return next(c) - } -} diff --git a/server/app/middleware/auth.go b/server/app/middleware/auth.go new file mode 100644 index 0000000..b661973 --- /dev/null +++ b/server/app/middleware/auth.go @@ -0,0 +1,138 @@ +package middleware + +import ( + "next-terminal/server/common/nt" + "strings" + + "next-terminal/server/api" + "next-terminal/server/dto" + "next-terminal/server/global/cache" + "next-terminal/server/service" + + "github.com/labstack/echo/v4" + "github.com/ucarion/urlpath" +) + +var anonymousUrls = []string{"/login", "/static", "/favicon.ico", "/logo.svg", "/branding"} + +var allowUrls = []urlpath.Path{ + urlpath.New("/account/info"), + urlpath.New("/share-sessions/:id"), + urlpath.New("/sessions"), + urlpath.New("/sessions/:id/tunnel"), + urlpath.New("/sessions/:id/connect"), + urlpath.New("/sessions/:id/resize"), + urlpath.New("/sessions/:id/stats"), + urlpath.New("/sessions/:id/ls"), + urlpath.New("/sessions/:id/download"), + urlpath.New("/sessions/:id/upload"), + urlpath.New("/sessions/:id/edit"), + urlpath.New("/sessions/:id/mkdir"), + urlpath.New("/sessions/:id/rm"), + urlpath.New("/sessions/:id/rename"), + urlpath.New("/sessions/:id/ssh"), +} + +func Auth(next echo.HandlerFunc) echo.HandlerFunc { + + return func(c echo.Context) error { + + uri := c.Request().RequestURI + if uri == "/" || strings.HasPrefix(uri, "/#") { + return next(c) + } + // 路由拦截 - 登录身份、资源权限判断等 + for i := range anonymousUrls { + if strings.HasPrefix(uri, anonymousUrls[i]) { + return next(c) + } + } + + token := api.GetToken(c) + if token == "" { + return api.Fail(c, 401, "您的登录信息已失效,请重新登录后再试。") + } + + v, found := cache.TokenManager.Get(token) + if !found { + return api.Fail(c, 401, "您的登录信息已失效,请重新登录后再试。") + } + + authorization := v.(dto.Authorization) + + if strings.EqualFold(nt.LoginToken, authorization.Type) { + if authorization.Remember { + // 记住登录有效期两周 + cache.TokenManager.Set(token, authorization, cache.RememberMeExpiration) + } else { + cache.TokenManager.Set(token, authorization, cache.NotRememberExpiration) + } + } + + if strings.HasPrefix(uri, "/account") { + return next(c) + } + if strings.HasPrefix(uri, "/worker") { + return next(c) + } + + // 放行接入相关接口 + uri = strings.Split(uri, "?")[0] + for _, url := range allowUrls { + _, ok := url.Match(uri) + if ok { + return next(c) + } + } + + account, _ := api.GetCurrentAccount(c) + + if service.UserService.IsSuperAdmin(account.ID) { + return next(c) + } + var roles []string + v, ok := cache.UserRolesManager.Get(account.ID) + if ok { + roles = v.([]string) + if len(roles) == 0 { + roles, _ = service.RoleService.GetRolesByUserId(account.ID) + cache.UserRolesManager.SetDefault(account.ID, roles) + } + } else { + roles, _ = service.RoleService.GetRolesByUserId(account.ID) + cache.UserRolesManager.SetDefault(account.ID, roles) + } + + urlPath := c.Request().URL.Path + + for _, role := range roles { + menus := service.RoleService.GetMenuListByRole(role) + for _, menu := range menus { + permissions := service.MenuService.GetPermissionByMenu(menu) + for _, perm := range permissions { + _, ok := perm.Match(urlPath) + if ok { + return next(c) + } + } + } + } + return api.Fail(c, 403, "permission denied") + } +} + +func Admin(next echo.HandlerFunc) echo.HandlerFunc { + return func(c echo.Context) error { + + account, found := api.GetCurrentAccount(c) + if !found { + return api.Fail(c, 401, "您的登录信息已失效,请重新登录后再试。") + } + + if account.Type != nt.TypeAdmin { + return api.Fail(c, 403, "permission denied.") + } + + return next(c) + } +} diff --git a/server/app/middleware/error_handler.go b/server/app/middleware/error_handler.go new file mode 100644 index 0000000..5ea328e --- /dev/null +++ b/server/app/middleware/error_handler.go @@ -0,0 +1,28 @@ +package middleware + +import ( + "fmt" + "next-terminal/server/log" + + "next-terminal/server/api" + + "github.com/labstack/echo/v4" +) + +func ErrorHandler(next echo.HandlerFunc) echo.HandlerFunc { + return func(c echo.Context) error { + + if err := next(c); err != nil { + + fmt.Printf("%+v\n", err) + log.Error("api error", log.NamedError("err", err)) + if he, ok := err.(*echo.HTTPError); ok { + message := fmt.Sprintf("%v", he.Message) + return api.Fail(c, he.Code, message) + } + + return api.Fail(c, -1, err.Error()) + } + return nil + } +} diff --git a/server/app/middleware/tcpwall.go b/server/app/middleware/tcpwall.go new file mode 100644 index 0000000..b3c3aa2 --- /dev/null +++ b/server/app/middleware/tcpwall.go @@ -0,0 +1,72 @@ +package middleware + +import ( + "net" + "next-terminal/server/common/nt" + "strings" + + "next-terminal/server/api" + "next-terminal/server/global/security" + "next-terminal/server/utils" + + "github.com/labstack/echo/v4" +) + +func TcpWall(next echo.HandlerFunc) echo.HandlerFunc { + + return func(c echo.Context) error { + securities := security.GlobalSecurityManager.Values() + if len(securities) == 0 { + return next(c) + } + + ip := c.RealIP() + + var pass = true + + for _, s := range securities { + ipGroups := strings.Split(s.IP, ",") + for _, ipGroup := range ipGroups { + if strings.Contains(ipGroup, "/") { + // CIDR + _, ipNet, err := net.ParseCIDR(ipGroup) + if err != nil { + continue + } + if !ipNet.Contains(net.ParseIP(ip)) { + continue + } + } else if strings.Contains(ipGroup, "-") { + // 范围段 + split := strings.Split(ipGroup, "-") + if len(split) < 2 { + continue + } + start := split[0] + end := split[1] + intReqIP := utils.IpToInt(ip) + if intReqIP < utils.IpToInt(start) || intReqIP > utils.IpToInt(end) { + continue + } + } else { + // IP + if ipGroup != ip { + continue + } + } + + pass = s.Rule == nt.AccessRuleAllow + } + } + + if !pass { + if c.Request().Header.Get("X-Requested-With") != "" || c.Request().Header.Get(nt.Token) != "" { + return api.Fail(c, -1, "您的访问请求被拒绝 :(") + } else { + return c.HTML(666, "您的访问请求被拒绝 :(") + } + } + + return next(c) + } +} diff --git a/server/app/server.go b/server/app/server.go index cd2b308..7d8e149 100644 --- a/server/app/server.go +++ b/server/app/server.go @@ -6,6 +6,8 @@ import ( "os" "next-terminal/server/api" + "next-terminal/server/api/worker" + mw "next-terminal/server/app/middleware" "next-terminal/server/config" "next-terminal/server/log" "next-terminal/server/resource" @@ -48,7 +50,7 @@ func setupRoutes() *echo.Echo { fileServer := http.FileServer(http.FS(fsys)) handler := WrapHandler(fileServer) e.GET("/", handler) - e.GET("/asciinema.html", handler) + e.GET("/branding", api.Branding) e.GET("/favicon.ico", handler) e.GET("/static/*", handler) @@ -58,9 +60,11 @@ func setupRoutes() *echo.Echo { AllowOrigins: []string{"*"}, AllowMethods: []string{http.MethodGet, http.MethodHead, http.MethodPut, http.MethodPatch, http.MethodPost, http.MethodDelete}, })) - e.Use(ErrorHandler) - e.Use(TcpWall) - e.Use(Auth) + e.Use(mw.ErrorHandler) + e.Use(mw.TcpWall) + e.Use(mw.Auth) + //e.Use(RBAC) + e.Use(middleware.Gzip()) accountApi := new(api.AccountApi) guacamoleApi := new(api.GuacamoleApi) @@ -71,7 +75,6 @@ func setupRoutes() *echo.Echo { CommandApi := new(api.CommandApi) CredentialApi := new(api.CredentialApi) SessionApi := new(api.SessionApi) - ResourceSharerApi := new(api.ResourceSharerApi) LoginLogApi := new(api.LoginLogApi) PropertyApi := new(api.PropertyApi) OverviewApi := new(api.OverviewApi) @@ -81,14 +84,17 @@ func setupRoutes() *echo.Echo { StrategyApi := new(api.StrategyApi) AccessGatewayApi := new(api.AccessGatewayApi) BackupApi := new(api.BackupApi) + TenantApi := new(api.TenantApi) + RoleApi := new(api.RoleApi) + LoginPolicyApi := new(api.LoginPolicyApi) + StorageLogApi := new(api.StorageLogApi) + AuthorisedApi := new(api.AuthorisedApi) e.POST("/login", accountApi.LoginEndpoint) - e.POST("/loginWithTotp", accountApi.LoginWithTotpEndpoint) account := e.Group("/account") { account.GET("/info", accountApi.InfoEndpoint) - account.GET("/assets", accountApi.AccountAssetEndpoint) account.GET("/storage", accountApi.AccountStorageEndpoint) account.POST("/logout", accountApi.LogoutEndpoint) account.POST("/change-password", accountApi.ChangePasswordEndpoint) @@ -97,30 +103,54 @@ func setupRoutes() *echo.Echo { account.POST("/confirm-totp", accountApi.ConfirmTOTPEndpoint) account.GET("/access-token", accountApi.AccessTokenGetEndpoint) account.POST("/access-token", accountApi.AccessTokenGenEndpoint) + account.DELETE("/access-token", accountApi.AccessTokenDelEndpoint) } - users := e.Group("/users", Admin) + _worker := e.Group("/worker") { - users.POST("", UserApi.UserCreateEndpoint) - users.GET("/paging", UserApi.UserPagingEndpoint) - users.PUT("/:id", UserApi.UserUpdateEndpoint) - users.PATCH("/:id/status", UserApi.UserUpdateStatusEndpoint) - users.DELETE("/:id", UserApi.UserDeleteEndpoint) - users.GET("/:id", UserApi.UserGetEndpoint) - users.POST("/:id/change-password", UserApi.UserChangePasswordEndpoint) - users.POST("/:id/reset-totp", UserApi.UserResetTotpEndpoint) + commands := _worker.Group("/commands") + { + workerCommandApi := new(worker.WorkCommandApi) + commands.GET("", workerCommandApi.CommandAllEndpoint) + commands.GET("/paging", workerCommandApi.CommandPagingEndpoint) + commands.POST("", workerCommandApi.CommandCreateEndpoint) + commands.PUT("/:id", workerCommandApi.CommandUpdateEndpoint) + commands.DELETE("/:id", workerCommandApi.CommandDeleteEndpoint) + commands.GET("/:id", workerCommandApi.CommandGetEndpoint) + } + + assets := _worker.Group("/assets") + { + workAssetApi := new(worker.WorkAssetApi) + assets.GET("/paging", workAssetApi.PagingEndpoint) + assets.GET("/tags", workAssetApi.TagsEndpoint) + } } - userGroups := e.Group("/user-groups", Admin) + users := e.Group("/users", mw.Admin) + { + users.GET("", UserApi.AllEndpoint) + users.GET("/paging", UserApi.PagingEndpoint) + users.POST("", UserApi.CreateEndpoint) + users.PUT("/:id", UserApi.UpdateEndpoint) + users.PATCH("/:id/status", UserApi.UpdateStatusEndpoint) + users.DELETE("/:id", UserApi.DeleteEndpoint) + users.GET("/:id", UserApi.GetEndpoint) + users.POST("/:id/change-password", UserApi.ChangePasswordEndpoint) + users.POST("/:id/reset-totp", UserApi.ResetTotpEndpoint) + } + + userGroups := e.Group("/user-groups", mw.Admin) { userGroups.POST("", UserGroupApi.UserGroupCreateEndpoint) + userGroups.GET("", UserGroupApi.UserGroupAllEndpoint) userGroups.GET("/paging", UserGroupApi.UserGroupPagingEndpoint) userGroups.PUT("/:id", UserGroupApi.UserGroupUpdateEndpoint) userGroups.DELETE("/:id", UserGroupApi.UserGroupDeleteEndpoint) userGroups.GET("/:id", UserGroupApi.UserGroupGetEndpoint) } - assets := e.Group("/assets", Admin) + assets := e.Group("/assets", mw.Admin) { assets.GET("", AssetApi.AssetAllEndpoint) assets.POST("", AssetApi.AssetCreateEndpoint) @@ -135,7 +165,7 @@ func setupRoutes() *echo.Echo { e.GET("/tags", AssetApi.AssetTagsEndpoint) - commands := e.Group("/commands") + commands := e.Group("/commands", mw.Admin) { commands.GET("", CommandApi.CommandAllEndpoint) commands.GET("/paging", CommandApi.CommandPagingEndpoint) @@ -143,12 +173,12 @@ func setupRoutes() *echo.Echo { commands.PUT("/:id", CommandApi.CommandUpdateEndpoint) commands.DELETE("/:id", CommandApi.CommandDeleteEndpoint) commands.GET("/:id", CommandApi.CommandGetEndpoint) - commands.POST("/:id/change-owner", CommandApi.CommandChangeOwnerEndpoint, Admin) + commands.POST("/:id/change-owner", CommandApi.CommandChangeOwnerEndpoint, mw.Admin) } - credentials := e.Group("/credentials", Admin) + credentials := e.Group("/credentials", mw.Admin) { - credentials.GET("", CredentialApi.CredentialAllEndpoint) + //credentials.GET("", CredentialApi.CredentialAllEndpoint) credentials.GET("/paging", CredentialApi.CredentialPagingEndpoint) credentials.POST("", CredentialApi.CredentialCreateEndpoint) credentials.PUT("/:id", CredentialApi.CredentialUpdateEndpoint) @@ -159,15 +189,15 @@ func setupRoutes() *echo.Echo { sessions := e.Group("/sessions") { - sessions.GET("/paging", Admin(SessionApi.SessionPagingEndpoint)) - sessions.POST("/:id/disconnect", Admin(SessionApi.SessionDisconnectEndpoint)) - sessions.DELETE("/:id", Admin(SessionApi.SessionDeleteEndpoint)) - sessions.GET("/:id/recording", Admin(SessionApi.SessionRecordingEndpoint)) - sessions.GET("/:id", Admin(SessionApi.SessionGetEndpoint)) - sessions.POST("/:id/reviewed", Admin(SessionApi.SessionReviewedEndpoint)) - sessions.POST("/:id/unreviewed", Admin(SessionApi.SessionUnViewedEndpoint)) - sessions.POST("/clear", Admin(SessionApi.SessionClearEndpoint)) - sessions.POST("/reviewed", Admin(SessionApi.SessionReviewedAllEndpoint)) + sessions.GET("/paging", mw.Admin(SessionApi.SessionPagingEndpoint)) + sessions.POST("/:id/disconnect", mw.Admin(SessionApi.SessionDisconnectEndpoint)) + sessions.DELETE("/:id", mw.Admin(SessionApi.SessionDeleteEndpoint)) + sessions.GET("/:id/recording", mw.Admin(SessionApi.SessionRecordingEndpoint)) + sessions.GET("/:id", mw.Admin(SessionApi.SessionGetEndpoint)) + sessions.POST("/:id/reviewed", mw.Admin(SessionApi.SessionReviewedEndpoint)) + sessions.POST("/:id/unreviewed", mw.Admin(SessionApi.SessionUnViewedEndpoint)) + sessions.POST("/clear", mw.Admin(SessionApi.SessionClearEndpoint)) + sessions.POST("/reviewed", mw.Admin(SessionApi.SessionReviewedAllEndpoint)) sessions.POST("", SessionApi.SessionCreateEndpoint) sessions.POST("/:id/connect", SessionApi.SessionConnectEndpoint) @@ -187,34 +217,35 @@ func setupRoutes() *echo.Echo { sessions.POST("/:id/rename", SessionApi.SessionRenameEndpoint) } - resourceSharers := e.Group("/resource-sharers", Admin) - { - resourceSharers.GET("", ResourceSharerApi.RSGetSharersEndPoint) - resourceSharers.POST("/remove-resources", ResourceSharerApi.ResourceRemoveByUserIdAssignEndPoint) - resourceSharers.POST("/add-resources", ResourceSharerApi.ResourceAddByUserIdAssignEndPoint) - } - - loginLogs := e.Group("login-logs", Admin) + loginLogs := e.Group("login-logs", mw.Admin) { loginLogs.GET("/paging", LoginLogApi.LoginLogPagingEndpoint) loginLogs.DELETE("/:id", LoginLogApi.LoginLogDeleteEndpoint) loginLogs.POST("/clear", LoginLogApi.LoginLogClearEndpoint) } - properties := e.Group("properties", Admin) + storageLogs := e.Group("storage-logs", mw.Admin) + { + storageLogs.GET("/paging", StorageLogApi.PagingEndpoint) + storageLogs.DELETE("/:id", StorageLogApi.DeleteEndpoint) + storageLogs.POST("/clear", StorageLogApi.ClearEndpoint) + } + + properties := e.Group("properties", mw.Admin) { properties.GET("", PropertyApi.PropertyGetEndpoint) properties.PUT("", PropertyApi.PropertyUpdateEndpoint) } - overview := e.Group("overview", Admin) + overview := e.Group("overview", mw.Admin) { overview.GET("/counter", OverviewApi.OverviewCounterEndPoint) overview.GET("/asset", OverviewApi.OverviewAssetEndPoint) - overview.GET("/access", OverviewApi.OverviewAccessEndPoint) + overview.GET("/date-counter", OverviewApi.OverviewDateCounterEndPoint) + overview.GET("/ps", OverviewApi.OverviewPS) } - jobs := e.Group("/jobs", Admin) + jobs := e.Group("/jobs", mw.Admin) { jobs.POST("", JobApi.JobCreateEndpoint) jobs.GET("/paging", JobApi.JobPagingEndpoint) @@ -223,11 +254,12 @@ func setupRoutes() *echo.Echo { jobs.POST("/:id/exec", JobApi.JobExecEndpoint) jobs.DELETE("/:id", JobApi.JobDeleteEndpoint) jobs.GET("/:id", JobApi.JobGetEndpoint) - jobs.GET("/:id/logs", JobApi.JobGetLogsEndpoint) + + jobs.GET("/:id/logs/paging", JobApi.JobGetLogsEndpoint) jobs.DELETE("/:id/logs", JobApi.JobDeleteLogsEndpoint) } - securities := e.Group("/securities", Admin) + securities := e.Group("/securities", mw.Admin) { securities.POST("", SecurityApi.SecurityCreateEndpoint) securities.GET("/paging", SecurityApi.SecurityPagingEndpoint) @@ -238,12 +270,12 @@ func setupRoutes() *echo.Echo { storages := e.Group("/storages") { - storages.GET("/paging", StorageApi.StoragePagingEndpoint, Admin) - storages.POST("", StorageApi.StorageCreateEndpoint, Admin) - storages.DELETE("/:id", StorageApi.StorageDeleteEndpoint, Admin) - storages.PUT("/:id", StorageApi.StorageUpdateEndpoint, Admin) - storages.GET("/shares", StorageApi.StorageSharesEndpoint, Admin) - storages.GET("/:id", StorageApi.StorageGetEndpoint, Admin) + storages.GET("/paging", StorageApi.StoragePagingEndpoint, mw.Admin) + storages.POST("", StorageApi.StorageCreateEndpoint, mw.Admin) + storages.DELETE("/:id", StorageApi.StorageDeleteEndpoint, mw.Admin) + storages.PUT("/:id", StorageApi.StorageUpdateEndpoint, mw.Admin) + storages.GET("/shares", StorageApi.StorageSharesEndpoint, mw.Admin) + storages.GET("/:id", StorageApi.StorageGetEndpoint, mw.Admin) storages.POST("/:storageId/ls", StorageApi.StorageLsEndpoint) storages.GET("/:storageId/download", StorageApi.StorageDownloadEndpoint) @@ -254,16 +286,17 @@ func setupRoutes() *echo.Echo { storages.POST("/:storageId/edit", StorageApi.StorageEditEndpoint) } - strategies := e.Group("/strategies", Admin) + strategies := e.Group("/strategies", mw.Admin) { strategies.GET("", StrategyApi.StrategyAllEndpoint) strategies.GET("/paging", StrategyApi.StrategyPagingEndpoint) strategies.POST("", StrategyApi.StrategyCreateEndpoint) strategies.DELETE("/:id", StrategyApi.StrategyDeleteEndpoint) strategies.PUT("/:id", StrategyApi.StrategyUpdateEndpoint) + strategies.GET("/:id", StrategyApi.GetEndpoint) } - accessGateways := e.Group("/access-gateways", Admin) + accessGateways := e.Group("/access-gateways", mw.Admin) { accessGateways.GET("", AccessGatewayApi.AccessGatewayAllEndpoint) accessGateways.POST("", AccessGatewayApi.AccessGatewayCreateEndpoint) @@ -273,11 +306,57 @@ func setupRoutes() *echo.Echo { accessGateways.GET("/:id", AccessGatewayApi.AccessGatewayGetEndpoint) } - backup := e.Group("/backup", Admin) + backup := e.Group("/backup", mw.Admin) { backup.GET("/export", BackupApi.BackupExportEndpoint) backup.POST("/import", BackupApi.BackupImportEndpoint) } + tenants := e.Group("/tenants", mw.Admin) + { + tenants.GET("", TenantApi.AllEndpoint) + tenants.GET("/paging", TenantApi.PagingEndpoint) + tenants.POST("", TenantApi.CreateEndpoint) + tenants.DELETE("/:id", TenantApi.DeleteEndpoint) + tenants.PUT("/:id", TenantApi.UpdateEndpoint) + } + + roles := e.Group("/roles", mw.Admin) + { + roles.GET("", RoleApi.AllEndpoint) + roles.GET("/paging", RoleApi.PagingEndpoint) + roles.GET("/:id", RoleApi.GetEndpoint) + roles.POST("", RoleApi.CreateEndpoint) + roles.DELETE("/:id", RoleApi.DeleteEndpoint) + roles.PUT("/:id", RoleApi.UpdateEndpoint) + } + + loginPolicies := e.Group("/login-policies", mw.Admin) + { + loginPolicies.GET("/paging", LoginPolicyApi.PagingEndpoint) + loginPolicies.GET("/:id", LoginPolicyApi.GetEndpoint) + loginPolicies.GET("/:id/users/paging", LoginPolicyApi.GetUserPageEndpoint) + loginPolicies.GET("/:id/users/id", LoginPolicyApi.GetUserIdEndpoint) + loginPolicies.POST("", LoginPolicyApi.CreateEndpoint) + loginPolicies.DELETE("/:id", LoginPolicyApi.DeleteEndpoint) + loginPolicies.PUT("/:id", LoginPolicyApi.UpdateEndpoint) + loginPolicies.POST("/:id/bind", LoginPolicyApi.BindEndpoint) + loginPolicies.POST("/:id/unbind", LoginPolicyApi.UnbindEndpoint) + } + + authorised := e.Group("/authorised", mw.Admin) + { + authorised.GET("/assets/paging", AuthorisedApi.PagingAsset) + authorised.GET("/users/paging", AuthorisedApi.PagingUser) + authorised.GET("/user-groups/paging", AuthorisedApi.PagingUserGroup) + authorised.GET("/selected", AuthorisedApi.Selected) + authorised.POST("/assets", AuthorisedApi.AuthorisedAssets) + authorised.POST("/users", AuthorisedApi.AuthorisedUsers) + authorised.POST("/user-groups", AuthorisedApi.AuthorisedUserGroups) + authorised.DELETE("/:id", AuthorisedApi.Delete) + } + + e.GET("/menus", RoleApi.TreeMenus, mw.Admin) + return e } diff --git a/server/branding/branding.go b/server/branding/branding.go new file mode 100644 index 0000000..6d6bc74 --- /dev/null +++ b/server/branding/branding.go @@ -0,0 +1,13 @@ +package branding + +var Name = "Next Terminal" +var Copyright = "Copyright © 2020-2022 dushixiang, All Rights Reserved." +var Banner = ` ___ ___ + /\__\ /\ \ + /:| _|_ \:\ \ + /::|/\__\ /::\__\ + \/|::/ / /:/\/__/ + |:/ / \/__/ + \/__/ ` +var Version = `v1.3.0-beta1` +var Hi = Banner + Version diff --git a/server/guacd/guacd.go b/server/common/guacamole/guacd.go similarity index 92% rename from server/guacd/guacd.go rename to server/common/guacamole/guacd.go index 656aa0f..0e549c6 100644 --- a/server/guacd/guacd.go +++ b/server/common/guacamole/guacd.go @@ -1,12 +1,16 @@ -package guacd +package guacamole import ( "bufio" + "encoding/base64" "errors" "fmt" "net" + "strconv" "strings" "time" + + "github.com/gorilla/websocket" ) const ( @@ -288,3 +292,12 @@ func (opt *Tunnel) Close() error { opt.IsOpen = false return opt.conn.Close() } + +func Disconnect(ws *websocket.Conn, code int, reason string) { + // guacd 无法处理中文字符,所以进行了base64编码。 + encodeReason := base64.StdEncoding.EncodeToString([]byte(reason)) + err := NewInstruction("error", encodeReason, strconv.Itoa(code)) + _ = ws.WriteMessage(websocket.TextMessage, []byte(err.String())) + disconnect := NewInstruction("disconnect") + _ = ws.WriteMessage(websocket.TextMessage, []byte(disconnect.String())) +} diff --git a/server/utils/jsontime.go b/server/common/jsontime.go similarity index 98% rename from server/utils/jsontime.go rename to server/common/jsontime.go index 495a914..640bfd9 100644 --- a/server/utils/jsontime.go +++ b/server/common/jsontime.go @@ -1,4 +1,4 @@ -package utils +package common import ( "database/sql/driver" diff --git a/server/common/maps/maps.go b/server/common/maps/maps.go new file mode 100644 index 0000000..61aed45 --- /dev/null +++ b/server/common/maps/maps.go @@ -0,0 +1,3 @@ +package maps + +type Map map[string]interface{} diff --git a/server/constant/const.go b/server/common/nt/const.go similarity index 54% rename from server/constant/const.go rename to server/common/nt/const.go index 9f172f4..8a7b89c 100644 --- a/server/constant/const.go +++ b/server/common/nt/const.go @@ -1,21 +1,7 @@ -package constant +package nt import ( - "next-terminal/server/guacd" -) - -const ( - AppVersion = "v1.2.7" - AppName = "Next Terminal" - AppBanner = ` - _______ __ ___________ .__ .__ - \ \ ____ ___ ____/ |_ \__ ___/__________ _____ |__| ____ _____ | | - / | \_/ __ \\ \/ /\ __\ | |_/ __ \_ __ \/ \| |/ \\__ \ | | - / | \ ___/ > < | | | |\ ___/| | \/ Y Y \ | | \/ __ \| |__ - \____|__ /\___ >__/\_ \ |__| |____| \___ >__| |__|_| /__|___| (____ /____/ - \/ \/ \/ \/ \/ \/ \/ %s - - ` + "next-terminal/server/common/guacamole" ) const Token = "X-Auth-Token" @@ -78,10 +64,16 @@ const ( ShareSession = "share-session" Anonymous = "anonymous" + + StorageLogActionRm = "rm" // 删除 + StorageLogActionUpload = "upload" // 上传 + StorageLogActionDownload = "download" // 下载 + StorageLogActionMkdir = "mkdir" // 创建文件夹 + StorageLogActionRename = "rename" // 重命名 ) -var SSHParameterNames = []string{guacd.FontName, guacd.FontSize, guacd.ColorScheme, guacd.Backspace, guacd.TerminalType, SshMode, SocksProxyEnable, SocksProxyHost, SocksProxyPort, SocksProxyUsername, SocksProxyPassword} -var RDPParameterNames = []string{guacd.Domain, guacd.RemoteApp, guacd.RemoteAppDir, guacd.RemoteAppArgs, guacd.EnableDrive, guacd.DrivePath, guacd.ColorDepth, guacd.ForceLossless, guacd.PreConnectionId, guacd.PreConnectionBlob} -var VNCParameterNames = []string{guacd.ColorDepth, guacd.Cursor, guacd.SwapRedBlue, guacd.DestHost, guacd.DestPort} -var TelnetParameterNames = []string{guacd.FontName, guacd.FontSize, guacd.ColorScheme, guacd.Backspace, guacd.TerminalType, guacd.UsernameRegex, guacd.PasswordRegex, guacd.LoginSuccessRegex, guacd.LoginFailureRegex} -var KubernetesParameterNames = []string{guacd.FontName, guacd.FontSize, guacd.ColorScheme, guacd.Backspace, guacd.TerminalType, guacd.Namespace, guacd.Pod, guacd.Container, guacd.UesSSL, guacd.ClientCert, guacd.ClientKey, guacd.CaCert, guacd.IgnoreCert} +var SSHParameterNames = []string{guacamole.FontName, guacamole.FontSize, guacamole.ColorScheme, guacamole.Backspace, guacamole.TerminalType, SshMode, SocksProxyEnable, SocksProxyHost, SocksProxyPort, SocksProxyUsername, SocksProxyPassword} +var RDPParameterNames = []string{guacamole.Domain, guacamole.RemoteApp, guacamole.RemoteAppDir, guacamole.RemoteAppArgs, guacamole.EnableDrive, guacamole.DrivePath, guacamole.ColorDepth, guacamole.ForceLossless, guacamole.PreConnectionId, guacamole.PreConnectionBlob} +var VNCParameterNames = []string{guacamole.ColorDepth, guacamole.Cursor, guacamole.SwapRedBlue, guacamole.DestHost, guacamole.DestPort} +var TelnetParameterNames = []string{guacamole.FontName, guacamole.FontSize, guacamole.ColorScheme, guacamole.Backspace, guacamole.TerminalType, guacamole.UsernameRegex, guacamole.PasswordRegex, guacamole.LoginSuccessRegex, guacamole.LoginFailureRegex} +var KubernetesParameterNames = []string{guacamole.FontName, guacamole.FontSize, guacamole.ColorScheme, guacamole.Backspace, guacamole.TerminalType, guacamole.Namespace, guacamole.Pod, guacamole.Container, guacamole.UesSSL, guacamole.ClientCert, guacamole.ClientKey, guacamole.CaCert, guacamole.IgnoreCert} diff --git a/server/common/nt/errors.go b/server/common/nt/errors.go new file mode 100644 index 0000000..092e3c8 --- /dev/null +++ b/server/common/nt/errors.go @@ -0,0 +1,8 @@ +package nt + +import "errors" + +var ( + ErrNameAlreadyUsed = errors.New("name already used") + ErrPermissionDenied = errors.New("permission denied") +) diff --git a/server/common/sets/set.go b/server/common/sets/set.go new file mode 100644 index 0000000..cbcbba8 --- /dev/null +++ b/server/common/sets/set.go @@ -0,0 +1,34 @@ +package sets + +func NewStringSet() *Set { + return &Set{data: make(map[string]struct{})} +} + +type Set struct { + data map[string]struct{} +} + +func (s *Set) Add(key ...string) { + for _, k := range key { + s.data[k] = struct{}{} + } +} + +func (s *Set) Remove(key ...string) { + for _, k := range key { + delete(s.data, k) + } +} + +func (s *Set) Contains(key string) bool { + _, ok := s.data[key] + return ok +} + +func (s *Set) ToArray() []string { + var keys []string + for key, _ := range s.data { + keys = append(keys, key) + } + return keys +} diff --git a/server/common/slices/slices.go b/server/common/slices/slices.go new file mode 100644 index 0000000..dbe6304 --- /dev/null +++ b/server/common/slices/slices.go @@ -0,0 +1 @@ +package slices diff --git a/server/common/taskrunner/task_runner.go b/server/common/taskrunner/task_runner.go new file mode 100644 index 0000000..36f455c --- /dev/null +++ b/server/common/taskrunner/task_runner.go @@ -0,0 +1,30 @@ +package taskrunner + +import "sync" + +type Runner struct { + wg sync.WaitGroup + errors []error + mux sync.Mutex +} + +func (r *Runner) Add(f func() error) { + r.wg.Add(1) + go func() { + defer r.wg.Done() + if err := f(); err != nil { + r.addError(err) + } + }() +} + +func (r *Runner) addError(err error) { + r.mux.Lock() + defer r.mux.Unlock() + r.errors = append(r.errors, err) +} + +func (r *Runner) Wait() []error { + r.wg.Wait() + return r.errors +} diff --git a/server/term/next_terminal.go b/server/common/term/next_terminal.go similarity index 97% rename from server/term/next_terminal.go rename to server/common/term/next_terminal.go index 307b5c9..58b8f55 100644 --- a/server/term/next_terminal.go +++ b/server/common/term/next_terminal.go @@ -2,6 +2,7 @@ package term import ( "bufio" + "errors" "io" "github.com/pkg/sftp" @@ -76,6 +77,9 @@ func newNT(sshClient *ssh.Client, pipe bool, recording string, term string, rows } func (ret *NextTerminal) Write(p []byte) (int, error) { + if ret.StdinPipe == nil { + return 0, errors.New("pipe is not open") + } return ret.StdinPipe.Write(p) } diff --git a/server/term/recorder.go b/server/common/term/recorder.go similarity index 100% rename from server/term/recorder.go rename to server/common/term/recorder.go diff --git a/server/term/ssh.go b/server/common/term/ssh.go similarity index 100% rename from server/term/ssh.go rename to server/common/term/ssh.go diff --git a/server/term/test/test_ssh.go b/server/common/term/test/test_ssh.go similarity index 100% rename from server/term/test/test_ssh.go rename to server/common/term/test/test_ssh.go diff --git a/server/totp/totp.go b/server/common/totp.go similarity index 95% rename from server/totp/totp.go rename to server/common/totp.go index 3b4c42e..cc16127 100644 --- a/server/totp/totp.go +++ b/server/common/totp.go @@ -1,4 +1,4 @@ -package totp +package common import ( otp_t "github.com/pquerna/otp" diff --git a/server/config/config.go b/server/config/config.go index ee21062..ffb89ed 100644 --- a/server/config/config.go +++ b/server/config/config.go @@ -108,9 +108,7 @@ func SetupConfig() (*Config, error) { if err := viper.BindPFlags(pflag.CommandLine); err != nil { return nil, err } - if err := viper.ReadInConfig(); err != nil { - return nil, err - } + _ = viper.ReadInConfig() sshdKey, err := homedir.Expand(viper.GetString("sshd.key")) if err != nil { diff --git a/server/constant/errors.go b/server/constant/errors.go deleted file mode 100644 index 0f9bf84..0000000 --- a/server/constant/errors.go +++ /dev/null @@ -1,7 +0,0 @@ -package constant - -import "errors" - -var ( - ErrNameAlreadyUsed = errors.New("name already used") -) diff --git a/server/dto/auth.go b/server/dto/auth.go index 503717f..3eed42e 100644 --- a/server/dto/auth.go +++ b/server/dto/auth.go @@ -7,6 +7,7 @@ type Authorization struct { Remember bool Type string // LoginToken: 登录令牌, AccessToken: 授权令牌, ShareSession: 会话分享, AccessSession: 只允许访问特定的会话 User *model.User + Roles []string } type LoginAccount struct { diff --git a/server/dto/authorised.go b/server/dto/authorised.go new file mode 100644 index 0000000..e6944b3 --- /dev/null +++ b/server/dto/authorised.go @@ -0,0 +1,52 @@ +package dto + +import "next-terminal/server/common" + +type AuthorisedAsset struct { + AssetIds []string `json:"assetIds"` + CommandFilterId string `json:"commandFilterId"` + StrategyId string `json:"strategyId"` + UserId string `json:"userId"` + UserGroupId string `json:"userGroupId"` +} + +type AuthorisedUser struct { + UserIds []string `json:"userIds"` + CommandFilterId string `json:"commandFilterId"` + StrategyId string `json:"strategyId"` + AssetId string `json:"assetId"` +} + +type AuthorisedUserGroup struct { + UserGroupIds []string `json:"UserGroupIds"` + CommandFilterId string `json:"commandFilterId"` + StrategyId string `json:"strategyId"` + AssetId string `json:"assetId"` +} + +type AssetPageForAuthorised struct { + Id string `json:"id"` + AssetId string `json:"assetId"` + AssetName string `json:"assetName"` + StrategyId string `json:"strategyId"` + StrategyName string `json:"strategyName"` + Created common.JsonTime `json:"created"` +} + +type UserPageForAuthorised struct { + Id string `json:"id"` + UserId string `json:"userId"` + UserName string `json:"userName"` + StrategyId string `json:"strategyId"` + StrategyName string `json:"strategyName"` + Created common.JsonTime `json:"created"` +} + +type UserGroupPageForAuthorised struct { + Id string `json:"id"` + UserGroupId string `json:"userGroupId"` + UserGroupName string `json:"userGroupName"` + StrategyId string `json:"strategyId"` + StrategyName string `json:"strategyName"` + Created common.JsonTime `json:"created"` +} diff --git a/server/dto/dashboard.go b/server/dto/dashboard.go index c3c7371..64bcce0 100644 --- a/server/dto/dashboard.go +++ b/server/dto/dashboard.go @@ -1,8 +1,10 @@ package dto type Counter struct { - User int64 `json:"user"` - Asset int64 `json:"asset"` - Credential int64 `json:"credential"` - OnlineSession int64 `json:"onlineSession"` + TotalUser int64 `json:"totalUser"` + OnlineUser int64 `json:"onlineUser"` + TotalAsset int64 `json:"totalAsset"` + ActiveAsset int64 `json:"activeAsset"` + OfflineSession int64 `json:"offlineSession"` + FailLoginCount int64 `json:"failLoginCount"` } diff --git a/server/dto/identity.go b/server/dto/identity.go index 9304d3d..0011e78 100644 --- a/server/dto/identity.go +++ b/server/dto/identity.go @@ -1,7 +1,15 @@ package dto +import "next-terminal/server/common" + type UserGroup struct { - Id string `json:"id"` - Name string `json:"name"` - Members []string `json:"members"` + Id string `json:"id"` + Name string `json:"name"` + Members []UserGroupMember `json:"members"` + Created common.JsonTime `json:"created"` +} + +type UserGroupMember struct { + Id string `json:"id"` + Name string `json:"name"` } diff --git a/server/dto/overview.go b/server/dto/overview.go new file mode 100644 index 0000000..ebc82d2 --- /dev/null +++ b/server/dto/overview.go @@ -0,0 +1,7 @@ +package dto + +type DateCounter struct { + Date string `json:"date"` + Value uint64 `json:"value"` + Type string `json:"type"` +} diff --git a/server/dto/permission.go b/server/dto/permission.go new file mode 100644 index 0000000..3b5b7fe --- /dev/null +++ b/server/dto/permission.go @@ -0,0 +1,7 @@ +package dto + +type TreeMenu struct { + Title string `json:"title"` + Key string `json:"key"` + Children []TreeMenu `json:"children"` +} diff --git a/server/dto/resource.go b/server/dto/resource.go index 8bfffb2..4aebf00 100644 --- a/server/dto/resource.go +++ b/server/dto/resource.go @@ -27,6 +27,5 @@ type Backup struct { Commands []model.Command `json:"commands"` Credentials []model.Credential `json:"credentials"` Assets []map[string]interface{} `json:"assets"` - ResourceSharers []model.ResourceSharer `json:"resource_sharers"` Jobs []model.Job `json:"jobs"` } diff --git a/server/dto/storage_log.go b/server/dto/storage_log.go new file mode 100644 index 0000000..4bc5824 --- /dev/null +++ b/server/dto/storage_log.go @@ -0,0 +1,15 @@ +package dto + +import "next-terminal/server/common" + +type StorageLogForPage struct { + ID string `json:"id"` + AssetId string `json:"assetId"` + AssetName string `json:"assetName"` + SessionId string `json:"sessionId"` + UserId string `json:"userId"` + UserName string `json:"userName"` + Action string `json:"action"` // 操作类型: 上传、下载、删除、重命名、编辑 + FileName string `json:"fileName"` // 文件名称 + Created common.JsonTime `json:"created"` // 操作时间 +} diff --git a/server/env/db.go b/server/env/db.go index 96946df..3bdb03e 100644 --- a/server/env/db.go +++ b/server/env/db.go @@ -48,9 +48,13 @@ func setupDB() *gorm.DB { } if err := db.AutoMigrate(&model.User{}, &model.Asset{}, &model.AssetAttribute{}, &model.Session{}, &model.Command{}, - &model.Credential{}, &model.Property{}, &model.ResourceSharer{}, &model.UserGroup{}, &model.UserGroupMember{}, + &model.Credential{}, &model.Property{}, &model.UserGroup{}, &model.UserGroupMember{}, &model.LoginLog{}, &model.Job{}, &model.JobLog{}, &model.AccessSecurity{}, &model.AccessGateway{}, - &model.Storage{}, &model.Strategy{}, &model.AccessToken{}); err != nil { + &model.Storage{}, &model.Strategy{}, + &model.AccessToken{}, &model.ShareSession{}, + &model.Role{}, &model.RoleMenuRef{}, &model.UserRoleRef{}, + &model.LoginPolicy{}, &model.LoginPolicyUserRef{}, &model.TimePeriod{}, + &model.StorageLog{}, &model.Authorised{}); err != nil { panic(fmt.Errorf("初始化数据库表结构异常: %v", err.Error())) } return db diff --git a/server/global/cache/cache.go b/server/global/cache/cache.go index ef34119..36232c6 100644 --- a/server/global/cache/cache.go +++ b/server/global/cache/cache.go @@ -15,8 +15,10 @@ const ( var TokenManager *cache.Cache var LoginFailedKeyManager *cache.Cache +var UserRolesManager *cache.Cache func init() { TokenManager = cache.New(5*time.Minute, 10*time.Minute) LoginFailedKeyManager = cache.New(5*time.Minute, 10*time.Minute) + UserRolesManager = cache.New(5*time.Minute, 10*time.Minute) } diff --git a/server/global/gateway/gateway.go b/server/global/gateway/gateway.go index bc28fc1..ae92fc9 100644 --- a/server/global/gateway/gateway.go +++ b/server/global/gateway/gateway.go @@ -4,10 +4,10 @@ import ( "errors" "fmt" "net" + "next-terminal/server/common/term" "os" "sync" - "next-terminal/server/term" "next-terminal/server/utils" "golang.org/x/crypto/ssh" @@ -90,7 +90,9 @@ func (g *Gateway) CloseSshTunnel(id string) { } if len(g.tunnels) == 0 { - _ = g.SshClient.Close() + if g.SshClient != nil { + _ = g.SshClient.Close() + } g.Connected = false g.Message = "暂未使用" } diff --git a/server/global/gateway/manager.go b/server/global/gateway/manager.go index 8c1b2be..749036d 100644 --- a/server/global/gateway/manager.go +++ b/server/global/gateway/manager.go @@ -3,7 +3,6 @@ package gateway import ( "sync" - "next-terminal/server/log" "next-terminal/server/model" ) @@ -33,7 +32,6 @@ func (m *manager) Add(model *model.AccessGateway) *Gateway { tunnels: make(map[string]*Tunnel), } m.gateways.Store(g.ID, g) - log.Infof("add Gateway: %s", g.ID) return g } @@ -43,7 +41,6 @@ func (m *manager) Del(id string) { g.Close() } m.gateways.Delete(id) - log.Infof("del Gateway: %s", id) } var GlobalGatewayManager *manager diff --git a/server/global/gateway/tunnel.go b/server/global/gateway/tunnel.go index b83314e..1597a4f 100644 --- a/server/global/gateway/tunnel.go +++ b/server/global/gateway/tunnel.go @@ -5,8 +5,6 @@ import ( "io" "net" - "next-terminal/server/log" - "golang.org/x/crypto/ssh" ) @@ -22,34 +20,23 @@ type Tunnel struct { } func (r *Tunnel) Open(sshClient *ssh.Client) { - localAddr := fmt.Sprintf("%s:%d", r.localHost, r.localPort) for { - log.Debugf("隧道 %v 等待客户端访问 %v", r.id, localAddr) localConn, err := r.listener.Accept() if err != nil { - log.Debugf("隧道 %v 接受连接失败 %v, 退出循环", r.id, err.Error()) - log.Debug("-------------------------------------------------") return } r.localConnections = append(r.localConnections, localConn) - log.Debugf("隧道 %v 新增本地连接 %v", r.id, localConn.RemoteAddr().String()) remoteAddr := fmt.Sprintf("%s:%d", r.remoteHost, r.remotePort) - log.Debugf("隧道 %v 连接远程地址 %v ...", r.id, remoteAddr) remoteConn, err := sshClient.Dial("tcp", remoteAddr) if err != nil { - log.Debugf("隧道 %v 连接远程地址 %v, 退出循环", r.id, err.Error()) - log.Debug("-------------------------------------------------") return } r.remoteConnections = append(r.remoteConnections, remoteConn) - log.Debugf("隧道 %v 连接远程主机成功", r.id) go copyConn(localConn, remoteConn) go copyConn(remoteConn, localConn) - log.Debugf("隧道 %v 开始转发数据 [%v]->[%v]", r.id, localAddr, remoteAddr) - log.Debug("~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~") } } @@ -63,7 +50,6 @@ func (r *Tunnel) Close() { } r.remoteConnections = nil _ = r.listener.Close() - log.Debugf("隧道 %v 监听器关闭", r.id) } func copyConn(writer, reader net.Conn) { diff --git a/server/global/license/license.go b/server/global/license/license.go new file mode 100644 index 0000000..bbcca58 --- /dev/null +++ b/server/global/license/license.go @@ -0,0 +1,12 @@ +package license + +type License struct { + Type string `json:"type"` // 类型:免费版 free,会员版 vip, 旗舰版 ultimate, 企业版 enterprise + MachineId string `json:"machineId"` // 唯一机器码:免费版为空 + Assert int64 `json:"assert"` // 资产数量 + Concurrent int64 `json:"concurrent"` // 并发数量 + User int64 `json:"user"` // 用户数量 + Expired int64 `json:"expired"` // 过期时间 +} + +var CurrentLicense *License diff --git a/server/global/security/security.go b/server/global/security/security.go index 86b62a7..70f360d 100644 --- a/server/global/security/security.go +++ b/server/global/security/security.go @@ -3,8 +3,6 @@ package security import ( "sort" "sync" - - "next-terminal/server/log" ) type Security struct { @@ -54,13 +52,11 @@ func (m *Manager) Values() []*Security { func (m *Manager) Add(s *Security) { m.securities.Store(s.ID, s) m.LoadData() - log.Infof("add security: %s", s.ID) } func (m *Manager) Del(id string) { m.securities.Delete(id) m.LoadData() - log.Infof("del security: %s", id) } var GlobalSecurityManager *Manager diff --git a/server/global/session/session.go b/server/global/session/session.go index fb77828..eacf6b0 100644 --- a/server/global/session/session.go +++ b/server/global/session/session.go @@ -1,14 +1,12 @@ package session import ( + "next-terminal/server/common/guacamole" + "next-terminal/server/common/term" "sync" - "next-terminal/server/dto" - "next-terminal/server/guacd" - "next-terminal/server/log" - "next-terminal/server/term" - "github.com/gorilla/websocket" + "next-terminal/server/dto" ) type Session struct { @@ -16,10 +14,13 @@ type Session struct { Protocol string Mode string WebSocket *websocket.Conn - GuacdTunnel *guacd.Tunnel + GuacdTunnel *guacamole.Tunnel NextTerminal *term.NextTerminal Observer *Manager mutex sync.Mutex + + Uptime int64 + Hostname string } func (s *Session) WriteMessage(msg dto.Message) error { @@ -79,7 +80,6 @@ func (m *Manager) GetById(id string) *Session { func (m *Manager) Add(s *Session) { m.sessions.Store(s.ID, s) - log.Infof("add session: %s", s.ID) } func (m *Manager) Del(id string) { @@ -91,7 +91,6 @@ func (m *Manager) Del(id string) { } } m.sessions.Delete(id) - log.Infof("del session: %s", id) } func (m *Manager) Clear() { diff --git a/server/global/stat/load.go b/server/global/stat/load.go new file mode 100644 index 0000000..cd7f4ac --- /dev/null +++ b/server/global/stat/load.go @@ -0,0 +1,104 @@ +package stat + +type systemLoad struct { + LoadStat *LoadStat `json:"loadStat"` + Mem *Mem `json:"mem"` + MemStat []*entry `json:"memStat"` + Cpu *Cpu `json:"cpu"` + CpuStat []*entry `json:"cpuStat"` + Disk *Disk `json:"disk"` + DiskIOStat []*ioEntry `json:"diskIO"` + NetIOStat []*ioEntry `json:"netIO"` +} + +type Mem struct { + Total uint64 `json:"total"` + Available uint64 `json:"available"` + Used uint64 `json:"used"` + UsedPercent float64 `json:"usedPercent"` +} + +type Cpu struct { + Count int `json:"count"` + PhyCount int `json:"phyCount"` + UsedPercent float64 `json:"usedPercent"` + Info []*CpuInfo `json:"info"` +} + +type Disk struct { + Total uint64 `json:"total"` + Used uint64 `json:"used"` + Available uint64 `json:"available"` + UsedPercent float64 `json:"usedPercent"` +} + +type CpuInfo struct { + ModelName string `json:"modelName"` + CacheSize int32 `json:"cacheSize"` + MHZ float64 `json:"mhz"` +} + +type LoadStat struct { + Load1 float64 `json:"load1"` + Load5 float64 `json:"load5"` + Load15 float64 `json:"load15"` + Percent float64 `json:"percent"` +} + +type entry struct { + Time string `json:"time"` + Value float64 `json:"value"` +} + +func NewStat(time string, value float64) *entry { + return &entry{ + Time: time, + Value: value, + } +} + +func NewIOStat(time string, read, write uint64) *ioEntry { + return &ioEntry{ + Time: time, + Read: read, + Write: write, + } +} + +type ioEntry struct { + Time string `json:"time"` + Read uint64 `json:"read"` + Write uint64 `json:"write"` +} + +var SystemLoad *systemLoad + +func init() { + SystemLoad = &systemLoad{ + LoadStat: &LoadStat{ + Load1: 0, + Load5: 0, + Load15: 0, + Percent: 0, + }, + Mem: &Mem{ + Total: 0, + Available: 0, + Used: 0, + UsedPercent: 0, + }, + MemStat: make([]*entry, 0), + Cpu: &Cpu{ + Count: 0, + UsedPercent: 0, + }, + CpuStat: make([]*entry, 0), + Disk: &Disk{ + Total: 0, + Used: 0, + UsedPercent: 0, + }, + DiskIOStat: make([]*ioEntry, 0), + NetIOStat: make([]*ioEntry, 0), + } +} diff --git a/server/log/logger.go b/server/log/logger.go index cf34ee2..35a381a 100644 --- a/server/log/logger.go +++ b/server/log/logger.go @@ -1,266 +1,151 @@ package log import ( - "fmt" - "io" "os" - "path" - "path/filepath" - "strconv" - "strings" "time" - "next-terminal/server/config" - - "github.com/labstack/echo/v4" - "github.com/sirupsen/logrus" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" "gopkg.in/natefinch/lumberjack.v2" ) -type Formatter struct{} +var ( + _logger *zap.Logger // zap ensure that zap.Logger is safe for concurrent use +) -func (s *Formatter) Format(entry *logrus.Entry) ([]byte, error) { - timestamp := time.Now().Local().Format("2006-01-02 15:04:05") - var file string - var l int - if entry.HasCaller() { - file = filepath.Base(entry.Caller.Function) - l = entry.Caller.Line +func init() { + cfg := zap.NewProductionConfig() + cfg.EncoderConfig.EncodeTime = func(t time.Time, enc zapcore.PrimitiveArrayEncoder) { + enc.AppendString(t.Format("2006-01-02 15:04:05.000")) } - msg := fmt.Sprintf("%s %s [%s:%d]%s\n", timestamp, strings.ToUpper(entry.Level.String()), file, l, entry.Message) - return []byte(msg), nil -} - -var stdOut = NewLogger() - -// Trace logs a message at level Trace on the standard logger. -func Trace(args ...interface{}) { - stdOut.Trace(args...) -} - -// Debug logs a message at level Debug on the standard logger. -func Debug(args ...interface{}) { - stdOut.Debug(args...) -} - -// Print logs a message at level Info on the standard logger. -func Print(args ...interface{}) { - stdOut.Print(args...) -} - -// Info logs a message at level Info on the standard logger. -func Info(args ...interface{}) { - stdOut.Info(args...) -} - -// Warn logs a message at level Warn on the standard logger. -func Warn(args ...interface{}) { - stdOut.Warn(args...) -} - -// Warning logs a message at level Warn on the standard logger. -func Warning(args ...interface{}) { - stdOut.Warning(args...) -} - -// Error logs a message at level Error on the standard logger. -func Error(args ...interface{}) { - stdOut.Error(args...) -} - -// Panic logs a message at level Panic on the standard logger. -func Panic(args ...interface{}) { - stdOut.Panic(args...) -} - -// Fatal logs a message at level Fatal on the standard logger then the process will exit with status set to 1. -func Fatal(args ...interface{}) { - stdOut.Fatal(args...) -} - -// Tracef logs a message at level Trace on the standard logger. -func Tracef(format string, args ...interface{}) { - stdOut.Tracef(format, args...) -} - -// Debugf logs a message at level Debug on the standard logger. -func Debugf(format string, args ...interface{}) { - stdOut.Debugf(format, args...) -} - -// Printf logs a message at level Info on the standard logger. -func Printf(format string, args ...interface{}) { - stdOut.Printf(format, args...) -} - -// Infof logs a message at level Info on the standard logger. -func Infof(format string, args ...interface{}) { - stdOut.Infof(format, args...) -} - -// Warnf logs a message at level Warn on the standard logger. -func Warnf(format string, args ...interface{}) { - stdOut.Warnf(format, args...) -} - -// Warningf logs a message at level Warn on the standard logger. -func Warningf(format string, args ...interface{}) { - stdOut.Warningf(format, args...) -} - -// Errorf logs a message at level Error on the standard logger. -func Errorf(format string, args ...interface{}) { - stdOut.Errorf(format, args...) -} - -// Panicf logs a message at level Panic on the standard logger. -func Panicf(format string, args ...interface{}) { - stdOut.Panicf(format, args...) -} - -// Fatalf logs a message at level Fatal on the standard logger then the process will exit with status set to 1. -func Fatalf(format string, args ...interface{}) { - stdOut.Fatalf(format, args...) -} - -// Traceln logs a message at level Trace on the standard logger. -func Traceln(args ...interface{}) { - stdOut.Traceln(args...) -} - -// Debugln logs a message at level Debug on the standard logger. -func Debugln(args ...interface{}) { - stdOut.Debugln(args...) -} - -// Println logs a message at level Info on the standard logger. -func Println(args ...interface{}) { - stdOut.Println(args...) -} - -// Infoln logs a message at level Info on the standard logger. -func Infoln(args ...interface{}) { - stdOut.Infoln(args...) -} - -// Warnln logs a message at level Warn on the standard logger. -func Warnln(args ...interface{}) { - stdOut.Warnln(args...) -} - -// Warningln logs a message at level Warn on the standard logger. -func Warningln(args ...interface{}) { - stdOut.Warningln(args...) -} - -// Errorln logs a message at level Error on the standard logger. -func Errorln(args ...interface{}) { - stdOut.Errorln(args...) -} - -// Panicln logs a message at level Panic on the standard logger. -func Panicln(args ...interface{}) { - stdOut.Panicln(args...) -} - -// Fatalln logs a message at level Fatal on the standard logger then the process will exit with status set to 1. -func Fatalln(args ...interface{}) { - stdOut.Fatalln(args...) -} - -// WithError creates an entry from the standard logger and adds an error to it, using the value defined in ErrorKey as key. -func WithError(err error) *logrus.Entry { - return stdOut.WithField(logrus.ErrorKey, err) -} - -// WithField creates an entry from the standard logger and adds a field to -// it. If you want multiple fields, use `WithFields`. -// -// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal -// or Panic on the Entry it returns. -func WithField(key string, value interface{}) *logrus.Entry { - return stdOut.WithField(key, value) -} - -// Logrus : implement log -type Logrus struct { - *logrus.Logger -} - -// GetEchoLogger for e.l -func NewLogger() Logrus { - logFilePath := "" - if dir, err := os.Getwd(); err == nil { - logFilePath = dir + "/logs/" - } - if err := os.MkdirAll(logFilePath, 0755); err != nil { - fmt.Println(err.Error()) - } - logFileName := "next-terminal.log" - //日志文件 - fileName := path.Join(logFilePath, logFileName) - if _, err := os.Stat(fileName); err != nil { - if _, err := os.Create(fileName); err != nil { - fmt.Println(err.Error()) - } + var cores = []zapcore.Core{ + zapcore.NewCore( + zapcore.NewConsoleEncoder(cfg.EncoderConfig), + zapcore.Lock(os.Stdout), + zap.LevelEnablerFunc(func(level zapcore.Level) bool { + return level <= zapcore.InfoLevel + }), + ), + zapcore.NewCore( + zapcore.NewJSONEncoder(cfg.EncoderConfig), + zapcore.AddSync(&lumberjack.Logger{ + Filename: "logs/next-terminal.log", + MaxSize: 100, + MaxAge: 7, + MaxBackups: 3, + Compress: true, + }), + zap.LevelEnablerFunc(func(level zapcore.Level) bool { + return level <= zapcore.InfoLevel + }), + ), + zapcore.NewCore( + zapcore.NewConsoleEncoder(cfg.EncoderConfig), + zapcore.Lock(os.Stdout), + zap.LevelEnablerFunc(func(level zapcore.Level) bool { + return level > zapcore.InfoLevel + }), + ), + zapcore.NewCore( + zapcore.NewJSONEncoder(cfg.EncoderConfig), + zapcore.AddSync(&lumberjack.Logger{ + Filename: "logs/next-terminal-error.log", + MaxSize: 100, + MaxAge: 7, + MaxBackups: 3, + Compress: true, + }), + zap.LevelEnablerFunc(func(level zapcore.Level) bool { + return level > zapcore.InfoLevel + }), + ), } - //实例化 - logger := logrus.New() - //设置输出 - logger.SetOutput(io.MultiWriter(&lumberjack.Logger{ - Filename: fileName, - MaxSize: 100, // megabytes - MaxBackups: 3, - MaxAge: 7, //days - Compress: true, // disabled by default - }, os.Stdout)) - logger.SetReportCaller(true) - //设置日志级别 - if config.GlobalCfg.Debug { - logger.SetLevel(logrus.DebugLevel) - } else { - logger.SetLevel(logrus.InfoLevel) - } - //设置日志格式 - logger.SetFormatter(new(Formatter)) - return Logrus{Logger: logger} + _logger = zap.New(zapcore.NewTee(cores...), zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel)) } -func logrusMiddlewareHandler(c echo.Context, next echo.HandlerFunc) error { - l := NewLogger() - req := c.Request() - res := c.Response() - start := time.Now() - if err := next(c); err != nil { - c.Error(err) - } - stop := time.Now() +type Field = zap.Field - l.Debugf("%s %s %s %s %s %3d %s %13v %s %s", - c.RealIP(), - req.Host, - req.Method, - req.RequestURI, - req.URL.Path, - res.Status, - strconv.FormatInt(res.Size, 10), - stop.Sub(start).String(), - req.Referer(), - req.UserAgent(), - ) +// function variables for all field types +// in github.com/uber-go/zap/field.go - return nil +var ( + Skip = zap.Skip + Binary = zap.Binary + Bool = zap.Bool + Boolp = zap.Boolp + ByteString = zap.ByteString + Complex128 = zap.Complex128 + Complex128p = zap.Complex128p + Complex64 = zap.Complex64 + Complex64p = zap.Complex64p + Float64 = zap.Float64 + Float64p = zap.Float64p + Float32 = zap.Float32 + Float32p = zap.Float32p + Int = zap.Int + Intp = zap.Intp + Int64 = zap.Int64 + Int64p = zap.Int64p + Int32 = zap.Int32 + Int32p = zap.Int32p + Int16 = zap.Int16 + Int16p = zap.Int16p + Int8 = zap.Int8 + Int8p = zap.Int8p + String = zap.String + Stringp = zap.Stringp + Uint = zap.Uint + Uintp = zap.Uintp + Uint64 = zap.Uint64 + Uint64p = zap.Uint64p + Uint32 = zap.Uint32 + Uint32p = zap.Uint32p + Uint16 = zap.Uint16 + Uint16p = zap.Uint16p + Uint8 = zap.Uint8 + Uint8p = zap.Uint8p + Uintptr = zap.Uintptr + Uintptrp = zap.Uintptrp + Reflect = zap.Reflect + Namespace = zap.Namespace + Stringer = zap.Stringer + Time = zap.Time + Timep = zap.Timep + Stack = zap.Stack + StackSkip = zap.StackSkip + Duration = zap.Duration + Durationp = zap.Durationp + Any = zap.Any + NamedError = zap.NamedError +) + +func Debug(msg string, fields ...Field) { + _logger.Debug(msg, fields...) } -func logger(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - return logrusMiddlewareHandler(c, next) - } +func Info(msg string, fields ...Field) { + _logger.Info(msg, fields...) } -// Hook is a function to process log. -func Hook() echo.MiddlewareFunc { - return logger +func Warn(msg string, fields ...Field) { + _logger.Warn(msg, fields...) +} + +func Error(msg string, fields ...Field) { + _logger.Error(msg, fields...) +} +func DPanic(msg string, fields ...Field) { + _logger.DPanic(msg, fields...) +} +func Panic(msg string, fields ...Field) { + _logger.Panic(msg, fields...) +} +func Fatal(msg string, fields ...Field) { + _logger.Fatal(msg, fields...) +} + +func Sync() error { + return _logger.Sync() } diff --git a/server/model/StorageLog.go b/server/model/StorageLog.go new file mode 100644 index 0000000..12c591a --- /dev/null +++ b/server/model/StorageLog.go @@ -0,0 +1,17 @@ +package model + +import "next-terminal/server/common" + +type StorageLog struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + AssetId string `gorm:"index,type:varchar(36)" json:"assetId"` + SessionId string `gorm:"index,type:varchar(36)" json:"sessionId"` + UserId string `gorm:"index,type:varchar(36)" json:"userId"` + Action string `gorm:"type:varchar(20)" json:"action"` // 操作类型: 上传、下载、删除、重命名、编辑 + FileName string `gorm:"type:varchar(200)" json:"fileName"` // 文件名称 + Created common.JsonTime `json:"created"` // 操作时间 +} + +func (s StorageLog) TableName() string { + return "storage_logs" +} diff --git a/server/model/access_gateway.go b/server/model/access_gateway.go index d760e38..00c3602 100644 --- a/server/model/access_gateway.go +++ b/server/model/access_gateway.go @@ -1,19 +1,21 @@ package model -import "next-terminal/server/utils" +import ( + "next-terminal/server/common" +) // AccessGateway 接入网关 type AccessGateway struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Name string `gorm:"type:varchar(500)" json:"name"` - IP string `gorm:"type:varchar(500)" json:"ip"` - Port int `gorm:"type:int(5)" json:"port"` - AccountType string `gorm:"type:varchar(50)" json:"accountType"` - Username string `gorm:"type:varchar(200)" json:"username"` - Password string `gorm:"type:varchar(500)" json:"password"` - PrivateKey string `gorm:"type:text" json:"privateKey"` - Passphrase string `gorm:"type:varchar(500)" json:"passphrase"` - Created utils.JsonTime `json:"created"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + IP string `gorm:"type:varchar(500)" json:"ip"` + Port int `gorm:"type:int(5)" json:"port"` + AccountType string `gorm:"type:varchar(50)" json:"accountType"` + Username string `gorm:"type:varchar(200)" json:"username"` + Password string `gorm:"type:varchar(500)" json:"password"` + PrivateKey string `gorm:"type:text" json:"privateKey"` + Passphrase string `gorm:"type:varchar(500)" json:"passphrase"` + Created common.JsonTime `json:"created"` } func (r *AccessGateway) TableName() string { @@ -21,13 +23,13 @@ func (r *AccessGateway) TableName() string { } type AccessGatewayForPage struct { - ID string `json:"id"` - Name string `json:"name"` - IP string `json:"ip"` - Port int `json:"port"` - AccountType string `json:"accountType"` - Username string `json:"username"` - Created utils.JsonTime `json:"created"` - Connected bool `json:"connected"` - Message string `json:"message"` + ID string `json:"id"` + Name string `json:"name"` + IP string `json:"ip"` + Port int `json:"port"` + AccountType string `json:"accountType"` + Username string `json:"username"` + Created common.JsonTime `json:"created"` + Connected bool `json:"connected"` + Message string `json:"message"` } diff --git a/server/model/access_token.go b/server/model/access_token.go index 722099d..aadda47 100644 --- a/server/model/access_token.go +++ b/server/model/access_token.go @@ -1,12 +1,14 @@ package model -import "next-terminal/server/utils" +import ( + "next-terminal/server/common" +) type AccessToken struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - UserId string `gorm:"index,type:varchar(200)" json:"userId"` - Token string `gorm:"index,type:varchar(128)" json:"token"` - Created utils.JsonTime `json:"created"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + UserId string `gorm:"index,type:varchar(200)" json:"userId"` + Token string `gorm:"index,type:varchar(128)" json:"token"` + Created common.JsonTime `json:"created"` } func (r *AccessToken) TableName() string { diff --git a/server/model/asset.go b/server/model/asset.go index 6689b38..8373e23 100644 --- a/server/model/asset.go +++ b/server/model/asset.go @@ -1,44 +1,46 @@ package model import ( - "next-terminal/server/utils" + "next-terminal/server/common" ) type AssetProto string type Asset struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Name string `gorm:"type:varchar(500)" json:"name"` - Protocol string `gorm:"type:varchar(20)" json:"protocol"` - IP string `gorm:"type:varchar(200)" json:"ip"` - Port int `json:"port"` - AccountType string `gorm:"type:varchar(20)" json:"accountType"` - Username string `gorm:"type:varchar(200)" json:"username"` - Password string `gorm:"type:varchar(500)" json:"password"` - CredentialId string `gorm:"index,type:varchar(36)" json:"credentialId"` - PrivateKey string `gorm:"type:text" json:"privateKey"` - Passphrase string `gorm:"type:varchar(500)" json:"passphrase"` - Description string `json:"description"` - Active bool `json:"active"` - Created utils.JsonTime `json:"created"` - Tags string `json:"tags"` - Owner string `gorm:"index,type:varchar(36)" json:"owner"` - Encrypted bool `json:"encrypted"` - AccessGatewayId string `gorm:"type:varchar(36)" json:"accessGatewayId"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + Protocol string `gorm:"type:varchar(20)" json:"protocol"` + IP string `gorm:"type:varchar(200)" json:"ip"` + Port int `json:"port"` + AccountType string `gorm:"type:varchar(20)" json:"accountType"` + Username string `gorm:"type:varchar(200)" json:"username"` + Password string `gorm:"type:varchar(500)" json:"password"` + CredentialId string `gorm:"index,type:varchar(36)" json:"credentialId"` + PrivateKey string `gorm:"type:text" json:"privateKey"` + Passphrase string `gorm:"type:varchar(500)" json:"passphrase"` + Description string `json:"description"` + Active bool `json:"active"` + ActiveMessage string `gorm:"type:varchar(200)" json:"activeMessage"` + Created common.JsonTime `json:"created"` + Tags string `json:"tags"` + Owner string `gorm:"index,type:varchar(36)" json:"owner"` + Encrypted bool `json:"encrypted"` + AccessGatewayId string `gorm:"type:varchar(36)" json:"accessGatewayId"` } type AssetForPage struct { - ID string `json:"id"` - Name string `json:"name"` - IP string `json:"ip"` - Protocol string `json:"protocol"` - Port int `json:"port"` - Active bool `json:"active"` - Created utils.JsonTime `json:"created"` - Tags string `json:"tags"` - Owner string `json:"owner"` - OwnerName string `json:"ownerName"` - SshMode string `json:"sshMode"` + ID string `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + IP string `json:"ip"` + Protocol string `json:"protocol"` + Port int `json:"port"` + Active bool `json:"active"` + ActiveMessage string `json:"activeMessage"` + Created common.JsonTime `json:"created"` + Tags string `json:"tags"` + Owner string `json:"owner"` + OwnerName string `json:"ownerName"` } func (r *Asset) TableName() string { diff --git a/server/model/authorised.go b/server/model/authorised.go new file mode 100644 index 0000000..4d717bb --- /dev/null +++ b/server/model/authorised.go @@ -0,0 +1,18 @@ +package model + +import "next-terminal/server/common" + +// Authorised 资产授权 +type Authorised struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + AssetId string `gorm:"index,type:varchar(36)" json:"assetId"` + CommandFilterId string `gorm:"index,type:varchar(36)" json:"commandFilterId"` + StrategyId string `gorm:"index,type:varchar(36)" json:"strategyId"` + UserId string `gorm:"index,type:varchar(36)" json:"userId"` + UserGroupId string `gorm:"index,type:varchar(36)" json:"userGroupId"` + Created common.JsonTime `json:"created"` +} + +func (m Authorised) TableName() string { + return "authorised" +} diff --git a/server/model/command.go b/server/model/command.go index c8aa944..691eebf 100644 --- a/server/model/command.go +++ b/server/model/command.go @@ -1,25 +1,24 @@ package model import ( - "next-terminal/server/utils" + "next-terminal/server/common" ) type Command struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Name string `gorm:"type:varchar(500)" json:"name"` - Content string `json:"content"` - Created utils.JsonTime `json:"created"` - Owner string `gorm:"index,type:varchar(36)" json:"owner"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + Content string `json:"content"` + Created common.JsonTime `json:"created"` + Owner string `gorm:"index,type:varchar(36)" json:"owner"` } type CommandForPage struct { - ID string `gorm:"primary_key" json:"id"` - Name string `json:"name"` - Content string `json:"content"` - Created utils.JsonTime `json:"created"` - Owner string `json:"owner"` - OwnerName string `json:"ownerName"` - SharerCount int64 `json:"sharerCount"` + ID string `gorm:"primary_key" json:"id"` + Name string `json:"name"` + Content string `json:"content"` + Created common.JsonTime `json:"created"` + Owner string `json:"owner"` + OwnerName string `json:"ownerName"` } func (r *Command) TableName() string { diff --git a/server/model/credential.go b/server/model/credential.go index 0f2552d..2abbf72 100644 --- a/server/model/credential.go +++ b/server/model/credential.go @@ -1,20 +1,20 @@ package model import ( - "next-terminal/server/utils" + "next-terminal/server/common" ) type Credential struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Name string `gorm:"type:varchar(500)" json:"name"` - Type string `gorm:"type:varchar(50)" json:"type"` - Username string `gorm:"type:varchar(200)" json:"username"` - Password string `gorm:"type:varchar(500)" json:"password"` - PrivateKey string `gorm:"type:text" json:"privateKey"` - Passphrase string `gorm:"type:varchar(500)" json:"passphrase"` - Created utils.JsonTime `json:"created"` - Owner string `gorm:"index,type:varchar(36)" json:"owner"` - Encrypted bool `json:"encrypted"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + Type string `gorm:"type:varchar(50)" json:"type"` + Username string `gorm:"type:varchar(200)" json:"username"` + Password string `gorm:"type:varchar(500)" json:"password"` + PrivateKey string `gorm:"type:text" json:"privateKey"` + Passphrase string `gorm:"type:varchar(500)" json:"passphrase"` + Created common.JsonTime `json:"created"` + Owner string `gorm:"index,type:varchar(36)" json:"owner"` + Encrypted bool `json:"encrypted"` } func (r *Credential) TableName() string { @@ -22,14 +22,13 @@ func (r *Credential) TableName() string { } type CredentialForPage struct { - ID string `json:"id"` - Name string `json:"name"` - Type string `json:"type"` - Username string `json:"username"` - Created utils.JsonTime `json:"created"` - Owner string `json:"owner"` - OwnerName string `json:"ownerName"` - SharerCount int64 `json:"sharerCount"` + ID string `json:"id"` + Name string `json:"name"` + Type string `json:"type"` + Username string `json:"username"` + Created common.JsonTime `json:"created"` + Owner string `json:"owner"` + OwnerName string `json:"ownerName"` } type CredentialSimpleVo struct { diff --git a/server/model/job.go b/server/model/job.go index 0cbc9ad..f66a81b 100644 --- a/server/model/job.go +++ b/server/model/job.go @@ -1,21 +1,21 @@ package model import ( - "next-terminal/server/utils" + "next-terminal/server/common" ) type Job struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - CronJobId int `json:"cronJobId"` - Name string `gorm:"type:varchar(500)" json:"name"` - Func string `gorm:"type:varchar(200)" json:"func"` - Cron string `gorm:"type:varchar(100)" json:"cron"` - Mode string `gorm:"type:varchar(50)" json:"mode"` - ResourceIds string `json:"resourceIds"` - Status string `gorm:"type:varchar(20)" json:"status"` - Metadata string `json:"metadata"` - Created utils.JsonTime `json:"created"` - Updated utils.JsonTime `json:"updated"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + CronJobId int `json:"cronJobId"` + Name string `gorm:"type:varchar(500)" json:"name"` + Func string `gorm:"type:varchar(200)" json:"func"` + Cron string `gorm:"type:varchar(100)" json:"cron"` + Mode string `gorm:"type:varchar(50)" json:"mode"` + ResourceIds string `json:"resourceIds"` + Status string `gorm:"type:varchar(20)" json:"status"` + Metadata string `json:"metadata"` + Created common.JsonTime `json:"created"` + Updated common.JsonTime `json:"updated"` } func (r *Job) TableName() string { @@ -23,10 +23,10 @@ func (r *Job) TableName() string { } type JobLog struct { - ID string `json:"id"` - Timestamp utils.JsonTime `json:"timestamp"` - JobId string `json:"jobId"` - Message string `json:"message"` + ID string `json:"id"` + Timestamp common.JsonTime `json:"timestamp"` + JobId string `json:"jobId"` + Message string `json:"message"` } func (r *JobLog) TableName() string { diff --git a/server/model/login_log.go b/server/model/login_log.go index ae5f61c..1523295 100644 --- a/server/model/login_log.go +++ b/server/model/login_log.go @@ -1,19 +1,19 @@ package model import ( - "next-terminal/server/utils" + "next-terminal/server/common" ) type LoginLog struct { - ID string `gorm:"primary_key,type:varchar(128)" json:"id"` - Username string `gorm:"index,type:varchar(200)" json:"username"` - ClientIP string `gorm:"type:varchar(200)" json:"clientIp"` - ClientUserAgent string `gorm:"type:varchar(500)" json:"clientUserAgent"` - LoginTime utils.JsonTime `json:"loginTime"` - LogoutTime utils.JsonTime `json:"logoutTime"` - Remember bool `json:"remember"` - State string `gorm:"type:varchar(1)" json:"state"` // 成功 1 失败 0 - Reason string `gorm:"type:varchar(500)" json:"reason"` + ID string `gorm:"primary_key,type:varchar(128)" json:"id"` + Username string `gorm:"index,type:varchar(200)" json:"username"` + ClientIP string `gorm:"type:varchar(200)" json:"clientIp"` + ClientUserAgent string `gorm:"type:varchar(500)" json:"clientUserAgent"` + LoginTime common.JsonTime `json:"loginTime"` + LogoutTime common.JsonTime `json:"logoutTime"` + Remember bool `json:"remember"` + State string `gorm:"type:varchar(1)" json:"state"` // 成功 1 失败 0 + Reason string `gorm:"type:varchar(500)" json:"reason"` } func (r *LoginLog) TableName() string { diff --git a/server/model/login_policy.go b/server/model/login_policy.go new file mode 100644 index 0000000..4bb559b --- /dev/null +++ b/server/model/login_policy.go @@ -0,0 +1,36 @@ +package model + +type LoginPolicy struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` // 名称 + IpGroup string `json:"ipGroup"` // IP组 格式为逗号分隔的字符串, 0.0.0.0 匹配所有。例如: 192.168.0.1, 192.168.1.0/24, 192.168.2.0-192.168.2.20 + Priority int64 `json:"priority"` // 优先级 越小优先级越高 + Enabled bool `json:"enabled"` // 是否激活 + Rule string `gorm:"type:varchar(20)" json:"rule"` // 规则 允许或拒绝 + TimePeriod []TimePeriod `gorm:"-" json:"timePeriod"` // 时间区间 +} + +func (r *LoginPolicy) TableName() string { + return "login_policies" +} + +type LoginPolicyUserRef struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + UserId string `gorm:"index,type:varchar(36)" json:"userId"` + LoginPolicyId string `gorm:"index,type:varchar(36)" json:"loginPolicyId"` +} + +func (r *LoginPolicyUserRef) TableName() string { + return "login_policies_ref" +} + +type TimePeriod struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + LoginPolicyId string `gorm:"index,type:varchar(36)" json:"loginPolicyId"` + Key int `json:"key"` + Value string `json:"value"` +} + +func (r *TimePeriod) TableName() string { + return "time_periods" +} diff --git a/server/model/resource_sharer.go b/server/model/resource_sharer.go deleted file mode 100644 index b9a6ff6..0000000 --- a/server/model/resource_sharer.go +++ /dev/null @@ -1,14 +0,0 @@ -package model - -type ResourceSharer struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - ResourceId string `gorm:"index,type:varchar(36)" json:"resourceId"` - ResourceType string `gorm:"index,type:varchar(36)" json:"resourceType"` - StrategyId string `gorm:"index,type:varchar(36)" json:"strategyId"` - UserId string `gorm:"index,type:varchar(36)" json:"userId"` - UserGroupId string `gorm:"index,type:varchar(36)" json:"userGroupId"` -} - -func (r *ResourceSharer) TableName() string { - return "resource_sharers" -} diff --git a/server/model/role.go b/server/model/role.go new file mode 100644 index 0000000..eaa5101 --- /dev/null +++ b/server/model/role.go @@ -0,0 +1,90 @@ +package model + +import ( + "next-terminal/server/common" + "next-terminal/server/utils" + "strings" +) + +// Role 角色 +type Role struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + Type string `gorm:"type:varchar(10)" json:"type"` + Deletable bool `json:"deletable"` + Modifiable bool `json:"modifiable"` + Created common.JsonTime `json:"created"` + Menus []RoleMenuRef `gorm:"-" json:"menus"` +} + +func (r *Role) TableName() string { + return "roles" +} + +func NewRole(id, name, _type string, deletable, modifiable bool, menus []RoleMenuRef) *Role { + return &Role{ + ID: id, + Name: name, + Type: _type, + Deletable: deletable, + Modifiable: modifiable, + Created: common.NowJsonTime(), + Menus: menus, + } +} + +// Menu 菜单 +type Menu struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + ParentId string `gorm:"index,type:varchar(36)" json:"parentId"` + Permissions []*Permission `gorm:"-"` +} + +func NewMenu(id, name, parentId string, permissions ...*Permission) *Menu { + return &Menu{ + ID: id, + Name: name, + ParentId: parentId, + Permissions: permissions, + } +} + +// Permission 权限 +type Permission struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + Method string `gorm:"type:varchar(10)" json:"method"` + Path string `gorm:"type:varchar(200)" json:"path"` + RequiredParams string `gorm:"type:varchar(200)" json:"params"` +} + +func NewPermission(method, path string, requiredParams ...string) *Permission { + return &Permission{ + ID: utils.Sign([]string{method, path}), + Method: method, + Path: path, + RequiredParams: strings.Join(requiredParams, ","), + } +} + +type RoleMenuRef struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + RoleId string `gorm:"index,type:varchar(36)" json:"roleId"` + MenuId string `gorm:"index,type:varchar(36)" json:"menuId"` + Checked bool `json:"checked"` +} + +func (r *RoleMenuRef) TableName() string { + return "roles_menus_ref" +} + +type UserRoleRef struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + UserId string `gorm:"index,type:varchar(36)" json:"userId"` + RoleId string `gorm:"index,type:varchar(36)" json:"roleId"` +} + +func (r *UserRoleRef) TableName() string { + return "users_roles_ref" +} diff --git a/server/model/session.go b/server/model/session.go index d06e493..ec02b6d 100644 --- a/server/model/session.go +++ b/server/model/session.go @@ -1,43 +1,45 @@ package model import ( - "next-terminal/server/utils" + "next-terminal/server/common" ) type Session struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Protocol string `gorm:"type:varchar(20)" json:"protocol"` - IP string `gorm:"type:varchar(200)" json:"ip"` - Port int `json:"port"` - ConnectionId string `gorm:"type:varchar(50)" json:"connectionId"` - AssetId string `gorm:"index,type:varchar(36)" json:"assetId"` - Username string `gorm:"type:varchar(200)" json:"username"` - Password string `gorm:"type:varchar(500)" json:"password"` - Creator string `gorm:"index,type:varchar(36)" json:"creator"` - ClientIP string `gorm:"type:varchar(200)" json:"clientIp"` - Width int `json:"width"` - Height int `json:"height"` - Status string `gorm:"index,type:varchar(20)" json:"status"` - Recording string `gorm:"type:varchar(1000)" json:"recording"` - PrivateKey string `gorm:"type:text" json:"privateKey"` - Passphrase string `gorm:"type:varchar(500)" json:"passphrase"` - Code int `json:"code"` - Message string `json:"message"` - ConnectedTime utils.JsonTime `json:"connectedTime"` - DisconnectedTime utils.JsonTime `json:"disconnectedTime"` - Mode string `gorm:"type:varchar(10)" json:"mode"` - FileSystem string `gorm:"type:varchar(1)" json:"fileSystem"` // 1 = true, 0 = false - Upload string `gorm:"type:varchar(1)" json:"upload"` - Download string `gorm:"type:varchar(1)" json:"download"` - Delete string `gorm:"type:varchar(1)" json:"delete"` - Rename string `gorm:"type:varchar(1)" json:"rename"` - Edit string `gorm:"type:varchar(1)" json:"edit"` - CreateDir string `gorm:"type:varchar(1)" json:"createDir"` - Copy string `gorm:"type:varchar(1)" json:"copy"` - Paste string `gorm:"type:varchar(1)" json:"paste"` - StorageId string `gorm:"type:varchar(36)" json:"storageId"` - AccessGatewayId string `gorm:"type:varchar(36)" json:"accessGatewayId"` - Reviewed bool `gorm:"type:tinyint(1)" json:"reviewed"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Protocol string `gorm:"type:varchar(20)" json:"protocol"` + IP string `gorm:"type:varchar(200)" json:"ip"` + Port int `json:"port"` + ConnectionId string `gorm:"type:varchar(50)" json:"connectionId"` + AssetId string `gorm:"index,type:varchar(36)" json:"assetId"` + Username string `gorm:"type:varchar(200)" json:"username"` + Password string `gorm:"type:varchar(500)" json:"password"` + Creator string `gorm:"index,type:varchar(36)" json:"creator"` + ClientIP string `gorm:"type:varchar(200)" json:"clientIp"` + Width int `json:"width"` + Height int `json:"height"` + Status string `gorm:"index,type:varchar(20)" json:"status"` + Recording string `gorm:"type:varchar(1000)" json:"recording"` + PrivateKey string `gorm:"type:text" json:"privateKey"` + Passphrase string `gorm:"type:varchar(500)" json:"passphrase"` + Code int `json:"code"` + Message string `json:"message"` + ConnectedTime common.JsonTime `json:"connectedTime"` + DisconnectedTime common.JsonTime `json:"disconnectedTime"` + + Mode string `gorm:"type:varchar(10)" json:"mode"` + FileSystem string `gorm:"type:varchar(1)" json:"fileSystem"` // 1 = true, 0 = false + Upload string `gorm:"type:varchar(1)" json:"upload"` + Download string `gorm:"type:varchar(1)" json:"download"` + Delete string `gorm:"type:varchar(1)" json:"delete"` + Rename string `gorm:"type:varchar(1)" json:"rename"` + Edit string `gorm:"type:varchar(1)" json:"edit"` + CreateDir string `gorm:"type:varchar(1)" json:"createDir"` + Copy string `gorm:"type:varchar(1)" json:"copy"` + Paste string `gorm:"type:varchar(1)" json:"paste"` + StorageId string `gorm:"type:varchar(36)" json:"storageId"` + AccessGatewayId string `gorm:"type:varchar(36)" json:"accessGatewayId"` + Reviewed bool `gorm:"type:tinyint(1)" json:"reviewed"` + CommandCount int64 `json:"commandCount"` } func (r *Session) TableName() string { @@ -45,27 +47,28 @@ func (r *Session) TableName() string { } type SessionForPage struct { - ID string `json:"id"` - Protocol string `json:"protocol"` - IP string `json:"ip"` - Port int `json:"port"` - Username string `json:"username"` - ConnectionId string `json:"connectionId"` - AssetId string `json:"assetId"` - Creator string `json:"creator"` - ClientIP string `json:"clientIp"` - Width int `json:"width"` - Height int `json:"height"` - Status string `json:"status"` - Recording string `json:"recording"` - ConnectedTime utils.JsonTime `json:"connectedTime"` - DisconnectedTime utils.JsonTime `json:"disconnectedTime"` - AssetName string `json:"assetName"` - CreatorName string `json:"creatorName"` - Code int `json:"code"` - Message string `json:"message"` - Mode string `json:"mode"` - Reviewed bool `json:"reviewed"` + ID string `json:"id"` + Protocol string `json:"protocol"` + IP string `json:"ip"` + Port int `json:"port"` + Username string `json:"username"` + ConnectionId string `json:"connectionId"` + AssetId string `json:"assetId"` + Creator string `json:"creator"` + ClientIP string `json:"clientIp"` + Width int `json:"width"` + Height int `json:"height"` + Status string `json:"status"` + Recording string `json:"recording"` + ConnectedTime common.JsonTime `json:"connectedTime"` + DisconnectedTime common.JsonTime `json:"disconnectedTime"` + AssetName string `json:"assetName"` + CreatorName string `json:"creatorName"` + Code int `json:"code"` + Message string `json:"message"` + Mode string `json:"mode"` + Reviewed bool `json:"reviewed"` + CommandCount int64 `json:"commandCount"` } type SessionForAccess struct { diff --git a/server/model/share_session.go b/server/model/share_session.go new file mode 100644 index 0000000..c7c5f5f --- /dev/null +++ b/server/model/share_session.go @@ -0,0 +1,21 @@ +package model + +import ( + "next-terminal/server/common" +) + +type ShareSession struct { + ID string `gorm:"primary_key,type:varchar(130)" json:"id"` + AssetId string `gorm:"index,type:varchar(36)" json:"assetId"` + FileSystem string `gorm:"type:varchar(1)" json:"fileSystem"` // 1 = true, 0 = false + Upload string `gorm:"type:varchar(1)" json:"upload"` + Download string `gorm:"type:varchar(1)" json:"download"` + Delete string `gorm:"type:varchar(1)" json:"delete"` + Rename string `gorm:"type:varchar(1)" json:"rename"` + Edit string `gorm:"type:varchar(1)" json:"edit"` + CreateDir string `gorm:"type:varchar(1)" json:"createDir"` + Mode string `gorm:"type:varchar(20)" json:"mode"` + Creator string `gorm:"type:varchar(36)" json:"creator"` + Created common.JsonTime `json:"created"` // 创建时间 + Expiration common.JsonTime `json:"expiration"` // 过期时间 +} diff --git a/server/model/storage.go b/server/model/storage.go index c7b52df..e200213 100644 --- a/server/model/storage.go +++ b/server/model/storage.go @@ -1,15 +1,17 @@ package model -import "next-terminal/server/utils" +import ( + "next-terminal/server/common" +) type Storage struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Name string `gorm:"type:varchar(500)" json:"name"` - IsShare bool `json:"isShare"` // 是否共享 - LimitSize int64 `json:"limitSize"` // 大小限制,单位字节 - IsDefault bool `json:"isDefault"` // 是否为用户默认的 - Owner string `gorm:"index,type:varchar(36)" json:"owner"` - Created utils.JsonTime `json:"created"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + IsShare bool `json:"isShare"` // 是否共享 + LimitSize int64 `json:"limitSize"` // 大小限制,单位字节 + IsDefault bool `json:"isDefault"` // 是否为用户默认的 + Owner string `gorm:"index,type:varchar(36)" json:"owner"` + Created common.JsonTime `json:"created"` } func (r *Storage) TableName() string { @@ -17,13 +19,13 @@ func (r *Storage) TableName() string { } type StorageForPage struct { - ID string `gorm:"primary_key " json:"id"` - Name string `json:"name"` - IsShare bool `json:"isShare"` // 是否共享 - LimitSize int64 `json:"limitSize"` // 大小限制,单位字节 - UsedSize int64 `json:"usedSize"` - IsDefault bool `json:"isDefault"` // 是否为用户默认的 - Owner string `gorm:"index" json:"owner"` - OwnerName string `json:"ownerName"` - Created utils.JsonTime `json:"created"` + ID string `gorm:"primary_key " json:"id"` + Name string `json:"name"` + IsShare bool `json:"isShare"` // 是否共享 + LimitSize int64 `json:"limitSize"` // 大小限制,单位字节 + UsedSize int64 `json:"usedSize"` + IsDefault bool `json:"isDefault"` // 是否为用户默认的 + Owner string `gorm:"index" json:"owner"` + OwnerName string `json:"ownerName"` + Created common.JsonTime `json:"created"` } diff --git a/server/model/strategy.go b/server/model/strategy.go index 92f1c5e..4e88b71 100644 --- a/server/model/strategy.go +++ b/server/model/strategy.go @@ -1,19 +1,21 @@ package model -import "next-terminal/server/utils" +import ( + "next-terminal/server/common" +) type Strategy struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Name string `gorm:"type:varchar(500)" json:"name"` - Upload string `gorm:"type:varchar(1)" json:"upload"` // 1 = true, 0 = false - Download string `gorm:"type:varchar(1)" json:"download"` - Delete string `gorm:"type:varchar(1)" json:"delete"` - Rename string `gorm:"type:varchar(1)" json:"rename"` - Edit string `gorm:"type:varchar(1)" json:"edit"` - CreateDir string `gorm:"type:varchar(1)" json:"createDir"` - Copy string `gorm:"type:varchar(1)" json:"copy"` - Paste string `gorm:"type:varchar(1)" json:"paste"` - Created utils.JsonTime `json:"created"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + Upload *bool `gorm:"type:tinyint;default:false" json:"upload"` // 1 = true, 0 = false + Download *bool `gorm:"type:tinyint;default:false" json:"download"` + Delete *bool `gorm:"type:tinyint;default:false" json:"delete"` + Rename *bool `gorm:"type:tinyint;default:false" json:"rename"` + Edit *bool `gorm:"type:tinyint;default:false" json:"edit"` + CreateDir *bool `gorm:"type:tinyint;default:false" json:"createDir"` + Copy *bool `gorm:"type:tinyint;default:false" json:"copy"` + Paste *bool `gorm:"type:tinyint;default:false" json:"paste"` + Created common.JsonTime `json:"created"` } func (r *Strategy) TableName() string { diff --git a/server/model/tenant.go b/server/model/tenant.go new file mode 100644 index 0000000..70cf08d --- /dev/null +++ b/server/model/tenant.go @@ -0,0 +1,15 @@ +package model + +import ( + "next-terminal/server/common" +) + +type Tenant struct { + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + Created common.JsonTime `json:"created"` +} + +func (r *Tenant) TableName() string { + return "tenants" +} diff --git a/server/model/user.go b/server/model/user.go index 649d03f..ba38c73 100644 --- a/server/model/user.go +++ b/server/model/user.go @@ -1,35 +1,36 @@ package model import ( - "next-terminal/server/utils" + "next-terminal/server/common" ) type User struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Username string `gorm:"index,type:varchar(200)" json:"username"` - Password string `gorm:"type:varchar(500)" json:"password"` - Nickname string `gorm:"type:varchar(500)" json:"nickname"` - TOTPSecret string `json:"-"` - Online bool `json:"online"` - Status string `gorm:"type:varchar(10)" json:"status"` - Created utils.JsonTime `json:"created"` - Type string `gorm:"type:varchar(20)" json:"type"` - Mail string `gorm:"type:varchar(500)" json:"mail"` - Source string `gorm:"type:varchar(20)" json:"source"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Username string `gorm:"index,type:varchar(200)" json:"username"` + Password string `gorm:"type:varchar(500)" json:"password"` + Nickname string `gorm:"type:varchar(500)" json:"nickname"` + TOTPSecret string `json:"-"` + Online *bool `json:"online"` + Status string `gorm:"type:varchar(10)" json:"status"` + Created common.JsonTime `json:"created"` + Type string `gorm:"type:varchar(20)" json:"type"` + Mail string `gorm:"type:varchar(500)" json:"mail"` + Source string `gorm:"type:varchar(20)" json:"source"` + Roles []string `gorm:"-" json:"roles"` } type UserForPage struct { - ID string `json:"id"` - Username string `json:"username"` - Nickname string `json:"nickname"` - TOTPSecret string `json:"totpSecret"` - Mail string `json:"mail"` - Online bool `json:"online"` - Status string `json:"status"` - Created utils.JsonTime `json:"created"` - Type string `json:"type"` - Source string `json:"source"` - SharerAssetCount int64 `json:"sharerAssetCount"` + ID string `json:"id"` + Username string `json:"username"` + Nickname string `json:"nickname"` + TOTPSecret string `json:"totpSecret"` + Mail string `json:"mail"` + Online bool `json:"online"` + Status string `json:"status"` + Created common.JsonTime `json:"created"` + Type string `json:"type"` + Source string `json:"source"` + SharerAssetCount int64 `json:"sharerAssetCount"` } func (r *User) TableName() string { diff --git a/server/model/user_group.go b/server/model/user_group.go index cc39391..068c8b8 100644 --- a/server/model/user_group.go +++ b/server/model/user_group.go @@ -1,21 +1,21 @@ package model import ( - "next-terminal/server/utils" + "next-terminal/server/common" ) type UserGroup struct { - ID string `gorm:"primary_key,type:varchar(36)" json:"id"` - Name string `gorm:"type:varchar(500)" json:"name"` - Created utils.JsonTime `json:"created"` - Members []string `gorm:"-" json:"members"` + ID string `gorm:"primary_key,type:varchar(36)" json:"id"` + Name string `gorm:"type:varchar(500)" json:"name"` + Created common.JsonTime `json:"created"` + Members []string `gorm:"-" json:"members"` } type UserGroupForPage struct { - ID string `json:"id"` - Name string `json:"name"` - Created utils.JsonTime `json:"created"` - AssetCount int64 `json:"assetCount"` + ID string `json:"id"` + Name string `json:"name"` + Created common.JsonTime `json:"created"` + AssetCount int64 `json:"assetCount"` } func (r *UserGroup) TableName() string { diff --git a/server/repository/access_token.go b/server/repository/access_token.go index 90d0e88..97ea445 100644 --- a/server/repository/access_token.go +++ b/server/repository/access_token.go @@ -6,6 +6,8 @@ import ( "next-terminal/server/model" ) +var AccessTokenRepository = new(accessTokenRepository) + type accessTokenRepository struct { baseRepository } diff --git a/server/repository/asset.go b/server/repository/asset.go index a7d94bd..0993476 100644 --- a/server/repository/asset.go +++ b/server/repository/asset.go @@ -3,16 +3,19 @@ package repository import ( "context" "fmt" + "next-terminal/server/common/nt" + "strconv" "strings" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/model" "next-terminal/server/utils" "github.com/labstack/echo/v4" ) +var AssetRepository = new(assetRepository) + type assetRepository struct { baseRepository } @@ -28,7 +31,11 @@ func (r assetRepository) FindByIds(c context.Context, assetIds []string) (o []mo } func (r assetRepository) FindByProtocol(c context.Context, protocol string) (o []model.Asset, err error) { - err = r.GetDB(c).Where("protocol = ?", protocol).Find(&o).Error + db := r.GetDB(c) + if protocol != "" { + db = db.Where("protocol = ?", protocol) + } + err = db.Order("name asc").Find(&o).Error return } @@ -37,65 +44,9 @@ func (r assetRepository) FindByProtocolAndIds(c context.Context, protocol string return } -func (r assetRepository) FindByProtocolAndUser(c context.Context, protocol string, account model.User) (o []model.Asset, err error) { - db := r.GetDB(c).Table("assets").Select("assets.id,assets.name,assets.ip,assets.port,assets.protocol,assets.active,assets.owner,assets.created,assets.tags,assets.description, users.nickname as owner_name").Joins("left join users on assets.owner = users.id").Joins("left join resource_sharers on assets.id = resource_sharers.resource_id").Group("assets.id") - - if constant.TypeUser == account.Type { - owner := account.ID - db = db.Where("assets.owner = ? or resource_sharers.user_id = ?", owner, owner) - - // 查询用户所在用户组列表 - userGroupIds, err := UserGroupMemberRepository.FindUserGroupIdsByUserId(c, account.ID) - if err != nil { - return nil, err - } - - if len(userGroupIds) > 0 { - db = db.Or("resource_sharers.user_group_id in ?", userGroupIds) - } - } - - if len(protocol) > 0 { - db = db.Where("assets.protocol = ?", protocol) - } - err = db.Find(&o).Error - return -} - -func (r assetRepository) Find(c context.Context, pageIndex, pageSize int, name, protocol, tags string, account *model.User, owner, sharer, userGroupId, ip, order, field string) (o []model.AssetForPage, total int64, err error) { - db := r.GetDB(c).Table("assets").Select("assets.id,assets.name,assets.ip,assets.port,assets.protocol,assets.active,assets.owner,assets.created,assets.tags,assets.description, users.nickname as owner_name").Joins("left join users on assets.owner = users.id").Joins("left join resource_sharers on assets.id = resource_sharers.resource_id").Group("assets.id") - dbCounter := r.GetDB(c).Table("assets").Select("DISTINCT assets.id").Joins("left join resource_sharers on assets.id = resource_sharers.resource_id").Group("assets.id") - - if constant.TypeUser == account.Type { - owner := account.ID - db = db.Where("assets.owner = ? or resource_sharers.user_id = ?", owner, owner) - dbCounter = dbCounter.Where("assets.owner = ? or resource_sharers.user_id = ?", owner, owner) - - // 查询用户所在用户组列表 - userGroupIds, err := UserGroupMemberRepository.FindUserGroupIdsByUserId(c, account.ID) - if err != nil { - return nil, 0, err - } - - if len(userGroupIds) > 0 { - db = db.Or("resource_sharers.user_group_id in ?", userGroupIds) - dbCounter = dbCounter.Or("resource_sharers.user_group_id in ?", userGroupIds) - } - } else { - if len(owner) > 0 { - db = db.Where("assets.owner = ?", owner) - dbCounter = dbCounter.Where("assets.owner = ?", owner) - } - if len(sharer) > 0 { - db = db.Where("resource_sharers.user_id = ?", sharer) - dbCounter = dbCounter.Where("resource_sharers.user_id = ?", sharer) - } - - if len(userGroupId) > 0 { - db = db.Where("resource_sharers.user_group_id = ?", userGroupId) - dbCounter = dbCounter.Where("resource_sharers.user_group_id = ?", userGroupId) - } - } +func (r assetRepository) Find(c context.Context, pageIndex, pageSize int, name, protocol, tags, ip, active, order, field string) (o []model.AssetForPage, total int64, err error) { + db := r.GetDB(c).Table("assets").Select("assets.id,assets.name,assets.ip,assets.port,assets.protocol,assets.active,assets.active_message,assets.owner,assets.created,assets.tags,assets.description, users.nickname as owner_name").Joins("left join users on assets.owner = users.id") + dbCounter := r.GetDB(c).Table("assets") if len(name) > 0 { db = db.Where("assets.name like ?", "%"+name+"%") @@ -125,6 +76,14 @@ func (r assetRepository) Find(c context.Context, pageIndex, pageSize int, name, } } + if active != "" { + _active, err := strconv.ParseBool(active) + if err == nil { + db = db.Where("assets.active = ?", _active) + dbCounter = dbCounter.Where("assets.active = ?", _active) + } + } + err = dbCounter.Count(&total).Error if err != nil { return nil, 0, err @@ -146,22 +105,6 @@ func (r assetRepository) Find(c context.Context, pageIndex, pageSize int, name, if o == nil { o = make([]model.AssetForPage, 0) - } else { - for i := 0; i < len(o); i++ { - if o[i].Protocol == "ssh" { - attributes, err := r.FindAttrById(c, o[i].ID) - if err != nil { - continue - } - - for j := range attributes { - if attributes[j].Name == constant.SshMode { - o[i].SshMode = attributes[j].Value - break - } - } - } - } } return } @@ -180,9 +123,9 @@ func (r assetRepository) UpdateById(c context.Context, o *model.Asset, id string return r.GetDB(c).Updates(o).Error } -func (r assetRepository) UpdateActiveById(c context.Context, active bool, id string) error { - sql := "update assets set active = ? where id = ?" - return r.GetDB(c).Exec(sql, active, id).Error +func (r assetRepository) UpdateActiveById(c context.Context, active bool, message, id string) error { + sql := "update assets set active = ?, active_message = ? where id = ?" + return r.GetDB(c).Exec(sql, active, message, id).Error } func (r assetRepository) DeleteById(c context.Context, assetId string) (err error) { @@ -198,47 +141,16 @@ func (r assetRepository) Count(c context.Context) (total int64, err error) { return } +func (r assetRepository) CountByActive(c context.Context, active bool) (total int64, err error) { + err = r.GetDB(c).Find(&model.Asset{}).Where("active = ?", active).Count(&total).Error + return +} + func (r assetRepository) CountByProtocol(c context.Context, protocol string) (total int64, err error) { err = r.GetDB(c).Find(&model.Asset{}).Where("protocol = ?", protocol).Count(&total).Error return } -func (r assetRepository) CountByUserId(c context.Context, userId string) (total int64, err error) { - db := r.GetDB(c).Joins("left join resource_sharers on assets.id = resource_sharers.resource_id") - - db = db.Where("assets.owner = ? or resource_sharers.user_id = ?", userId, userId) - - // 查询用户所在用户组列表 - userGroupIds, err := UserGroupMemberRepository.FindUserGroupIdsByUserId(c, userId) - if err != nil { - return 0, err - } - - if len(userGroupIds) > 0 { - db = db.Or("resource_sharers.user_group_id in ?", userGroupIds) - } - err = db.Find(&model.Asset{}).Count(&total).Error - return -} - -func (r assetRepository) CountByUserIdAndProtocol(c context.Context, userId, protocol string) (total int64, err error) { - db := r.GetDB(c).Joins("left join resource_sharers on assets.id = resource_sharers.resource_id") - - db = db.Where("( assets.owner = ? or resource_sharers.user_id = ? ) and assets.protocol = ?", userId, userId, protocol) - - // 查询用户所在用户组列表 - userGroupIds, err := UserGroupMemberRepository.FindUserGroupIdsByUserId(c, userId) - if err != nil { - return 0, err - } - - if len(userGroupIds) > 0 { - db = db.Or("resource_sharers.user_group_id in ?", userGroupIds) - } - err = db.Find(&model.Asset{}).Count(&total).Error - return -} - func (r assetRepository) FindTags(c context.Context) (o []string, err error) { var assets []model.Asset err = r.GetDB(c).Not("tags = '' or tags = '-' ").Find(&assets).Error @@ -265,15 +177,15 @@ func (r assetRepository) UpdateAttributes(c context.Context, assetId, protocol s var parameterNames []string switch protocol { case "ssh": - parameterNames = constant.SSHParameterNames + parameterNames = nt.SSHParameterNames case "rdp": - parameterNames = constant.RDPParameterNames + parameterNames = nt.RDPParameterNames case "vnc": - parameterNames = constant.VNCParameterNames + parameterNames = nt.VNCParameterNames case "telnet": - parameterNames = constant.TelnetParameterNames + parameterNames = nt.TelnetParameterNames case "kubernetes": - parameterNames = constant.KubernetesParameterNames + parameterNames = nt.KubernetesParameterNames } for i := range parameterNames { @@ -322,15 +234,15 @@ func (r assetRepository) FindAssetAttrMapByAssetId(c context.Context, assetId st var parameterNames []string switch asset.Protocol { case "ssh": - parameterNames = constant.SSHParameterNames + parameterNames = nt.SSHParameterNames case "rdp": - parameterNames = constant.RDPParameterNames + parameterNames = nt.RDPParameterNames case "vnc": - parameterNames = constant.VNCParameterNames + parameterNames = nt.VNCParameterNames case "telnet": - parameterNames = constant.TelnetParameterNames + parameterNames = nt.TelnetParameterNames case "kubernetes": - parameterNames = constant.KubernetesParameterNames + parameterNames = nt.KubernetesParameterNames } propertiesMap := PropertyRepository.FindAllMap(c) var attributeMap = make(map[string]string) @@ -350,3 +262,91 @@ func (r assetRepository) UpdateAttrs(c context.Context, name, value, newValue st sql := "update asset_attributes set value = ? where name = ? and value = ?" return r.GetDB(c).Exec(sql, newValue, name, value).Error } + +func (r assetRepository) ExistById(c context.Context, id string) (bool, error) { + m := model.Asset{} + var count uint64 + err := r.GetDB(c).Table(m.TableName()).Select("count(*)"). + Where("id = ?", id). + Find(&count). + Error + if err != nil { + return false, err + } + return count > 0, nil +} + +func (r assetRepository) FindMyAssets(c context.Context, pageIndex, pageSize int, name, protocol, tags string, assetIds []string, order, field string) (o []model.AssetForPage, total int64, err error) { + db := r.GetDB(c).Table("assets").Select("assets.id,assets.name,assets.protocol,assets.active,assets.active_message,assets.tags,assets.description"). + Where("id in ?", assetIds) + dbCounter := r.GetDB(c).Table("assets").Where("id in ?", assetIds) + + if len(name) > 0 { + db = db.Where("assets.name like ?", "%"+name+"%") + dbCounter = dbCounter.Where("assets.name like ?", "%"+name+"%") + } + + if len(protocol) > 0 { + db = db.Where("assets.protocol = ?", protocol) + dbCounter = dbCounter.Where("assets.protocol = ?", protocol) + } + + if len(tags) > 0 { + tagArr := strings.Split(tags, ",") + for i := range tagArr { + if config.GlobalCfg.DB == "sqlite" { + db = db.Where("(',' || assets.tags || ',') LIKE ?", "%,"+tagArr[i]+",%") + dbCounter = dbCounter.Where("(',' || assets.tags || ',') LIKE ?", "%,"+tagArr[i]+",%") + } else { + db = db.Where("find_in_set(?, assets.tags)", tagArr[i]) + dbCounter = dbCounter.Where("find_in_set(?, assets.tags)", tagArr[i]) + } + } + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + if order == "ascend" { + order = "asc" + } else { + order = "desc" + } + + if field == "name" { + field = "name" + } else { + field = "created" + } + + err = db.Order("assets." + field + " " + order).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error + + if o == nil { + o = make([]model.AssetForPage, 0) + } + return +} + +func (r assetRepository) FindMyAssetTags(c context.Context, assetIds []string) (o []string, err error) { + + var assets []model.Asset + err = r.GetDB(c).Not("tags = '' or tags = '-' ").Where("id in ?", assetIds).Find(&assets).Error + if err != nil { + return nil, err + } + + o = make([]string, 0) + + for i := range assets { + if len(assets[i].Tags) == 0 { + continue + } + split := strings.Split(assets[i].Tags, ",") + + o = append(o, split...) + } + + return utils.Distinct(o), nil +} diff --git a/server/repository/authorised.go b/server/repository/authorised.go new file mode 100644 index 0000000..2b192fa --- /dev/null +++ b/server/repository/authorised.go @@ -0,0 +1,167 @@ +package repository + +import ( + "context" + "next-terminal/server/dto" + "next-terminal/server/model" +) + +var AuthorisedRepository = new(authorisedRepository) + +type authorisedRepository struct { + baseRepository +} + +func (r authorisedRepository) Create(c context.Context, m *model.Authorised) error { + return r.GetDB(c).Create(m).Error +} + +func (r authorisedRepository) CreateInBatches(c context.Context, m []model.Authorised) error { + return r.GetDB(c).CreateInBatches(m, 100).Error +} + +func (r authorisedRepository) DeleteByUserId(c context.Context, userId string) error { + return r.GetDB(c).Where("user_id = ?", userId).Delete(model.Authorised{}).Error +} + +func (r authorisedRepository) DeleteByUserGroupId(c context.Context, userGroupId string) error { + return r.GetDB(c).Where("user_group_id = ?", userGroupId).Delete(model.Authorised{}).Error +} + +func (r authorisedRepository) DeleteByAssetId(c context.Context, assetId string) error { + return r.GetDB(c).Where("asset_id = ?", assetId).Delete(model.Authorised{}).Error +} + +func (r authorisedRepository) FindByUserId(c context.Context, userId string) (items []model.Authorised, err error) { + err = r.GetDB(c).Where("user_id = ?", userId).Find(&items).Error + return +} + +func (r authorisedRepository) FindById(c context.Context, id string) (item model.Authorised, err error) { + err = r.GetDB(c).Where("id = ?", id).Find(&item).Error + return +} + +func (r authorisedRepository) FindByUserGroupId(c context.Context, userGroupId string) (items []model.Authorised, err error) { + err = r.GetDB(c).Where("user_group_id = ?", userGroupId).Find(&items).Error + return +} + +func (r authorisedRepository) FindByUserGroupIdIn(c context.Context, userGroupIds []string) (items []model.Authorised, err error) { + err = r.GetDB(c).Where("user_group_id in ?", userGroupIds).Find(&items).Error + return +} + +func (r authorisedRepository) FindAll(c context.Context, userId, userGroupId, assetId string) (items []model.Authorised, err error) { + db := r.GetDB(c) + if userId != "" { + db = db.Where("user_id = ?", userId) + } + if userGroupId != "" { + db = db.Where("user_group_id = ?", userGroupId) + } + if assetId != "" { + db = db.Where("asset_id = ?", assetId) + } + err = db.Find(&items).Error + return +} + +func (r authorisedRepository) FindAssetPage(c context.Context, pageIndex, pageSize int, assetName, userId, userGroupId string) (o []dto.AssetPageForAuthorised, total int64, err error) { + db := r.GetDB(c).Table("assets"). + Select("authorised.id, authorised.created, assets.id as asset_id, assets.name as asset_name, strategies.id as strategy_id, strategies.name as strategy_name "). + Joins("left join authorised on authorised.asset_id = assets.id"). + Joins("left join strategies on strategies.id = authorised.strategy_id"). + Group("assets.id") + dbCounter := r.GetDB(c).Table("assets").Joins("left join authorised on assets.id = authorised.asset_id").Group("assets.id") + + if assetName != "" { + db = db.Where("assets.name like ?", "%"+assetName+"%") + dbCounter = dbCounter.Where("assets.name like ?", "%"+assetName+"%") + } + + if userId != "" { + db = db.Where("authorised.user_id = ?", userId) + dbCounter = dbCounter.Where("authorised.user_id = ?", userId) + } + + if userGroupId != "" { + db = db.Where("authorised.user_group_id = ?", userGroupId) + dbCounter = dbCounter.Where("authorised.user_group_id = ?", userGroupId) + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + err = db.Order("authorised.created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error + if o == nil { + o = make([]dto.AssetPageForAuthorised, 0) + } + return +} + +func (r authorisedRepository) DeleteById(c context.Context, id string) error { + return r.GetDB(c).Where("id = ?", id).Delete(model.Authorised{}).Error +} + +func (r authorisedRepository) FindUserPage(c context.Context, pageIndex, pageSize int, userName, assetId string) (o []dto.UserPageForAuthorised, total int64, err error) { + db := r.GetDB(c).Table("users"). + Select("authorised.id, authorised.created, users.id as user_id, users.nickname as user_name, strategies.id as strategy_id, strategies.name as strategy_name "). + Joins("left join authorised on authorised.user_id = users.id"). + Joins("left join strategies on strategies.id = authorised.strategy_id"). + Group("users.id") + dbCounter := r.GetDB(c).Table("assets").Joins("left join authorised on assets.id = authorised.asset_id").Group("assets.id") + + if userName != "" { + db = db.Where("users.nickname like ?", "%"+userName+"%") + dbCounter = dbCounter.Where("users.nickname like ?", "%"+userName+"%") + } + + if assetId != "" { + db = db.Where("authorised.asset_id = ?", assetId) + dbCounter = dbCounter.Where("authorised.asset_id = ?", assetId) + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + err = db.Order("authorised.created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error + if o == nil { + o = make([]dto.UserPageForAuthorised, 0) + } + return +} + +func (r authorisedRepository) FindUserGroupPage(c context.Context, pageIndex, pageSize int, userName, assetId string) (o []dto.UserGroupPageForAuthorised, total int64, err error) { + db := r.GetDB(c).Table("user_groups"). + Select("authorised.id, authorised.created, user_groups.id as user_group_id, user_groups.name as user_group_name, strategies.id as strategy_id, strategies.name as strategy_name "). + Joins("left join authorised on authorised.user_group_id = user_groups.id"). + Joins("left join strategies on strategies.id = authorised.strategy_id"). + Group("user_groups.id") + dbCounter := r.GetDB(c).Table("assets").Joins("left join authorised on assets.id = authorised.asset_id").Group("assets.id") + + if userName != "" { + db = db.Where("user_groups.name like ?", "%"+userName+"%") + dbCounter = dbCounter.Where("user_groups.name like ?", "%"+userName+"%") + } + + if assetId != "" { + db = db.Where("authorised.asset_id = ?", assetId) + dbCounter = dbCounter.Where("authorised.asset_id = ?", assetId) + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + err = db.Order("authorised.created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error + if o == nil { + o = make([]dto.UserGroupPageForAuthorised, 0) + } + return +} diff --git a/server/repository/base.go b/server/repository/base.go index e43f74e..4ac4db7 100644 --- a/server/repository/base.go +++ b/server/repository/base.go @@ -2,8 +2,8 @@ package repository import ( "context" + "next-terminal/server/common/nt" - "next-terminal/server/constant" "next-terminal/server/env" "gorm.io/gorm" @@ -13,7 +13,7 @@ type baseRepository struct { } func (b *baseRepository) GetDB(c context.Context) *gorm.DB { - db, ok := c.Value(constant.DB).(*gorm.DB) + db, ok := c.Value(nt.DB).(*gorm.DB) if !ok { return env.GetDB() } diff --git a/server/repository/command.go b/server/repository/command.go index 7b16a0e..013b3d6 100644 --- a/server/repository/command.go +++ b/server/repository/command.go @@ -3,24 +3,57 @@ package repository import ( "context" - "next-terminal/server/constant" "next-terminal/server/model" ) +var CommandRepository = new(commandRepository) + type commandRepository struct { baseRepository } -func (r commandRepository) Find(c context.Context, pageIndex, pageSize int, name, content, order, field string, account *model.User) (o []model.CommandForPage, total int64, err error) { - db := r.GetDB(c).Table("commands").Select("commands.id,commands.name,commands.content,commands.owner,commands.created, users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on commands.owner = users.id").Joins("left join resource_sharers on commands.id = resource_sharers.resource_id").Group("commands.id") - dbCounter := r.GetDB(c).Table("commands").Select("DISTINCT commands.id").Joins("left join resource_sharers on commands.id = resource_sharers.resource_id").Group("commands.id") +func (r commandRepository) Find(c context.Context, pageIndex, pageSize int, name, content, order, field string) (o []model.CommandForPage, total int64, err error) { + db := r.GetDB(c).Table("commands").Select("commands.id,commands.name,commands.content,commands.owner,commands.created, users.nickname as owner_name").Joins("left join users on commands.owner = users.id").Group("commands.id") + dbCounter := r.GetDB(c).Table("commands") - if constant.TypeUser == account.Type { - owner := account.ID - db = db.Where("commands.owner = ? or resource_sharers.user_id = ?", owner, owner) - dbCounter = dbCounter.Where("commands.owner = ? or resource_sharers.user_id = ?", owner, owner) + if len(name) > 0 { + db = db.Where("commands.name like ?", "%"+name+"%") + dbCounter = dbCounter.Where("commands.name like ?", "%"+name+"%") } + if len(content) > 0 { + db = db.Where("commands.content like ?", "%"+content+"%") + dbCounter = dbCounter.Where("commands.content like ?", "%"+content+"%") + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + if order == "ascend" { + order = "asc" + } else { + order = "desc" + } + + if field == "name" { + field = "name" + } else { + field = "created" + } + + err = db.Order("commands." + field + " " + order).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error + if o == nil { + o = make([]model.CommandForPage, 0) + } + return +} + +func (r commandRepository) WorkerFind(c context.Context, pageIndex, pageSize int, name, content, order, field, userId string) (o []model.CommandForPage, total int64, err error) { + db := r.GetDB(c).Table("commands").Select("commands.id,commands.name,commands.content,commands.owner,commands.created").Where("commands.owner = ?", userId) + dbCounter := r.GetDB(c).Table("commands").Where("commands.owner = ?", userId) + if len(name) > 0 { db = db.Where("commands.name like ?", "%"+name+"%") dbCounter = dbCounter.Where("commands.name like ?", "%"+name+"%") @@ -76,21 +109,12 @@ func (r commandRepository) DeleteById(c context.Context, id string) error { return r.GetDB(c).Where("id = ?", id).Delete(&model.Command{}).Error } -func (r commandRepository) FindByUser(c context.Context, account *model.User) (o []model.CommandForPage, err error) { - db := r.GetDB(c).Table("commands").Select("commands.id,commands.name,commands.content,commands.owner,commands.created, users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on commands.owner = users.id").Joins("left join resource_sharers on commands.id = resource_sharers.resource_id").Group("commands.id") - - if constant.TypeUser == account.Type { - owner := account.ID - db = db.Where("commands.owner = ? or resource_sharers.user_id = ?", owner, owner) - } - err = db.Order("commands.name asc").Find(&o).Error - if o == nil { - o = make([]model.CommandForPage, 0) - } - return -} - func (r commandRepository) FindAll(c context.Context) (o []model.Command, err error) { err = r.GetDB(c).Find(&o).Error return } + +func (r commandRepository) FindByUserId(c context.Context, userId string) (o []model.Command, err error) { + err = r.GetDB(c).Where("owner = ?", userId).First(&o).Error + return +} diff --git a/server/repository/credential.go b/server/repository/credential.go index 935359a..23c2445 100644 --- a/server/repository/credential.go +++ b/server/repository/credential.go @@ -3,29 +3,24 @@ package repository import ( "context" - "next-terminal/server/constant" "next-terminal/server/model" ) +var CredentialRepository = new(credentialRepository) + type credentialRepository struct { baseRepository } -func (r credentialRepository) FindByUser(c context.Context) (o []model.CredentialSimpleVo, err error) { - db := r.GetDB(c).Table("credentials").Select("DISTINCT credentials.id,credentials.name").Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id") +func (r credentialRepository) FindByAll(c context.Context) (o []model.CredentialSimpleVo, err error) { + db := r.GetDB(c).Table("credentials") err = db.Find(&o).Error return } -func (r credentialRepository) Find(c context.Context, pageIndex, pageSize int, name, order, field string, account *model.User) (o []model.CredentialForPage, total int64, err error) { - db := r.GetDB(c).Table("credentials").Select("credentials.id,credentials.name,credentials.type,credentials.username,credentials.owner,credentials.created,users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on credentials.owner = users.id").Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id").Group("credentials.id") - dbCounter := r.GetDB(c).Table("credentials").Select("DISTINCT credentials.id").Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id").Group("credentials.id") - - if constant.TypeUser == account.Type { - owner := account.ID - db = db.Where("credentials.owner = ? or resource_sharers.user_id = ?", owner, owner) - dbCounter = dbCounter.Where("credentials.owner = ? or resource_sharers.user_id = ?", owner, owner) - } +func (r credentialRepository) Find(c context.Context, pageIndex, pageSize int, name, order, field string) (o []model.CredentialForPage, total int64, err error) { + db := r.GetDB(c).Table("credentials").Select("credentials.id,credentials.name,credentials.type,credentials.username,credentials.owner,credentials.created,users.nickname as owner_name").Joins("left join users on credentials.owner = users.id") + dbCounter := r.GetDB(c).Table("credentials") if len(name) > 0 { db = db.Where("credentials.name like ?", "%"+name+"%") @@ -79,24 +74,6 @@ func (r credentialRepository) Count(c context.Context) (total int64, err error) return } -//func (r credentialRepository) CountByUserId(c context.Context, userId string) (total int64, err error) { -// db := r.GetDB(c).Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id") -// -// db = db.Where("credentials.owner = ? or resource_sharers.user_id = ?", userId, userId) -// -// // 查询用户所在用户组列表 -// userGroupIds, err := userGroupRepository.FindUserGroupIdsByUserId(c, userId) -// if err != nil { -// return 0, err -// } -// -// if len(userGroupIds) > 0 { -// db = db.Or("resource_sharers.user_group_id in ?", userGroupIds) -// } -// err = db.Find(&model.Credential{}).Count(&total).Error -// return -//} - func (r credentialRepository) FindAll(c context.Context) (o []model.Credential, err error) { err = r.GetDB(c).Find(&o).Error return diff --git a/server/repository/gateway.go b/server/repository/gateway.go index d19a619..30200f2 100644 --- a/server/repository/gateway.go +++ b/server/repository/gateway.go @@ -6,6 +6,8 @@ import ( "next-terminal/server/model" ) +var GatewayRepository = new(gatewayRepository) + type gatewayRepository struct { baseRepository } diff --git a/server/repository/job.go b/server/repository/job.go index 372b71f..bc4e0a5 100644 --- a/server/repository/job.go +++ b/server/repository/job.go @@ -3,10 +3,12 @@ package repository import ( "context" + "next-terminal/server/common" "next-terminal/server/model" - "next-terminal/server/utils" ) +var JobRepository = new(jobRepository) + type jobRepository struct { baseRepository } @@ -73,7 +75,7 @@ func (r jobRepository) UpdateById(c context.Context, o *model.Job) (err error) { } func (r jobRepository) UpdateLastUpdatedById(c context.Context, id string) (err error) { - err = r.GetDB(c).Updates(model.Job{ID: id, Updated: utils.NowJsonTime()}).Error + err = r.GetDB(c).Updates(model.Job{ID: id, Updated: common.NowJsonTime()}).Error return } diff --git a/server/repository/job_log.go b/server/repository/job_log.go index 2cee1b7..fe5c7b0 100644 --- a/server/repository/job_log.go +++ b/server/repository/job_log.go @@ -7,6 +7,8 @@ import ( "next-terminal/server/model" ) +var JobLogRepository = new(jobLogRepository) + type jobLogRepository struct { baseRepository } @@ -15,8 +17,16 @@ func (r jobLogRepository) Create(c context.Context, o *model.JobLog) error { return r.GetDB(c).Create(o).Error } -func (r jobLogRepository) FindByJobId(c context.Context, jobId string) (o []model.JobLog, err error) { - err = r.GetDB(c).Where("job_id = ?", jobId).Order("timestamp asc").Find(&o).Error +func (r jobLogRepository) FindByJobId(c context.Context, jobId string, pageIndex, pageSize int) (o []model.JobLog, total int64, err error) { + + err = r.GetDB(c).Table("job_logs").Where("job_id = ?", jobId).Count(&total).Error + if err != nil { + return nil, 0, err + } + err = r.GetDB(c).Where("job_id = ?", jobId).Order("timestamp desc").Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error + if o == nil { + o = make([]model.JobLog, 0) + } return } diff --git a/server/repository/login_log.go b/server/repository/login_log.go index fe6e0c5..34ab4f0 100644 --- a/server/repository/login_log.go +++ b/server/repository/login_log.go @@ -4,9 +4,12 @@ import ( "context" "time" + "next-terminal/server/dto" "next-terminal/server/model" ) +var LoginLogRepository = new(loginLogRepository) + type loginLogRepository struct { baseRepository } @@ -84,3 +87,18 @@ func (r loginLogRepository) FindById(c context.Context, id string) (o model.Logi func (r loginLogRepository) Update(c context.Context, o *model.LoginLog) error { return r.GetDB(c).Updates(o).Error } + +func (r loginLogRepository) CountByState(c context.Context, state string) (total int64, err error) { + err = r.GetDB(c).Where("state = ?", state).Find(&model.LoginLog{}).Count(&total).Error + return +} + +func (r loginLogRepository) CountWithGroupByLoginTime(c context.Context, loginTime time.Time) (counter []dto.DateCounter, err error) { + err = r.GetDB(c).Table("login_logs").Select("date(login_time) as date, count(id) as value").Where("login_time > ?", loginTime).Group("date(login_time)").Scan(&counter).Error + return +} + +func (r loginLogRepository) CountWithGroupByLoginTimeAndUsername(c context.Context, loginTime time.Time) (counter []dto.DateCounter, err error) { + err = r.GetDB(c).Table("login_logs").Select("date(login_time) as date, count(distinct(username)) as value").Where("login_time > ?", loginTime).Group("date(login_time), username").Scan(&counter).Error + return +} diff --git a/server/repository/login_policy.go b/server/repository/login_policy.go new file mode 100644 index 0000000..d8753a2 --- /dev/null +++ b/server/repository/login_policy.go @@ -0,0 +1,79 @@ +package repository + +import ( + "context" + + "next-terminal/server/model" +) + +var LoginPolicyRepository = new(loginPolicyRepository) + +type loginPolicyRepository struct { + baseRepository +} + +func (r loginPolicyRepository) Find(c context.Context, pageIndex, pageSize int, name, userId, order, field string) (o []model.LoginPolicy, total int64, err error) { + m := model.LoginPolicy{} + db := r.GetDB(c).Table(m.TableName()).Joins("left join login_policies_ref as ref on login_policies.id = ref.login_policy_id").Group("login_policies.id") + dbCounter := r.GetDB(c).Table(m.TableName()).Joins("left join login_policies_ref as ref on login_policies.id = ref.login_policy_id").Group("login_policies.id") + + if len(name) > 0 { + db = db.Where("login_policies.name like ?", "%"+name+"%") + dbCounter = dbCounter.Where("login_policies.name like ?", "%"+name+"%") + } + + if len(userId) > 0 { + db = db.Where("ref.user_id = ?", userId) + dbCounter = dbCounter.Where("ref.user_id = ?", userId) + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + if order == "" { + order = "asc" + } else if order == "ascend" { + order = "asc" + } else { + order = "desc" + } + + if field == "name" { + field = "login_policies.name" + } else { + field = "login_policies.priority" + } + + err = db.Order(field + " " + order).Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error + if o == nil { + o = make([]model.LoginPolicy, 0) + } + return +} + +func (r loginPolicyRepository) FindByUserId(c context.Context, userId string) (items []model.LoginPolicy, err error) { + m := model.LoginPolicy{} + db := r.GetDB(c).Table(m.TableName()).Joins("left join login_policies_ref as ref on login_policies.id = ref.login_policy_id") + err = db.Where("ref.user_id = ?", userId).Order("login_policies.priority desc").Find(&items).Error + return +} + +func (r loginPolicyRepository) DeleteById(c context.Context, id string) error { + return r.GetDB(c).Where("id = ?", id).Delete(model.LoginPolicy{}).Error +} + +func (r loginPolicyRepository) Create(c context.Context, m *model.LoginPolicy) error { + return r.GetDB(c).Create(m).Error +} + +func (r loginPolicyRepository) UpdateById(c context.Context, o *model.LoginPolicy, id string) error { + o.ID = id + return r.GetDB(c).Updates(o).Error +} + +func (r loginPolicyRepository) FindById(c context.Context, id string) (m model.LoginPolicy, err error) { + err = r.GetDB(c).Where("id = ?", id).First(&m).Error + return +} diff --git a/server/repository/login_policy_user_ref.go b/server/repository/login_policy_user_ref.go new file mode 100644 index 0000000..3d6f588 --- /dev/null +++ b/server/repository/login_policy_user_ref.go @@ -0,0 +1,67 @@ +package repository + +import ( + "context" + + "next-terminal/server/model" +) + +var ( + LoginPolicyUserRefRepository = new(loginPolicyUserRefRepository) + TimePeriodRepository = new(timePeriodRepository) +) + +type loginPolicyUserRefRepository struct { + baseRepository +} + +func (r loginPolicyUserRefRepository) Create(c context.Context, m *model.LoginPolicyUserRef) error { + return r.GetDB(c).Create(m).Error +} + +func (r loginPolicyUserRefRepository) CreateInBatches(c context.Context, m []model.LoginPolicyUserRef) error { + return r.GetDB(c).CreateInBatches(m, 100).Error +} + +func (r loginPolicyUserRefRepository) DeleteByUserId(c context.Context, userId string) error { + return r.GetDB(c).Where("user_id = ?", userId).Delete(model.LoginPolicyUserRef{}).Error +} + +func (r loginPolicyUserRefRepository) FindByUserId(c context.Context, userId string) (items []model.LoginPolicyUserRef, err error) { + err = r.GetDB(c).Where("user_id = ?", userId).Find(&items).Error + return +} + +func (r loginPolicyUserRefRepository) FindByLoginPolicyId(c context.Context, loginPolicyId string) (items []model.LoginPolicyUserRef, err error) { + err = r.GetDB(c).Where("login_policy_id = ?", loginPolicyId).Find(&items).Error + return +} + +func (r loginPolicyUserRefRepository) DeleteByLoginPolicyId(c context.Context, loginPolicyId string) error { + return r.GetDB(c).Where("login_policy_id = ?", loginPolicyId).Delete(model.LoginPolicyUserRef{}).Error +} + +func (r loginPolicyUserRefRepository) DeleteByLoginPolicyIdAndUserId(c context.Context, loginPolicyId, userId string) error { + return r.GetDB(c).Where("login_policy_id = ? and user_id = ?", loginPolicyId, userId).Delete(model.LoginPolicyUserRef{}).Error +} + +func (r loginPolicyUserRefRepository) DeleteId(c context.Context, id string) error { + return r.GetDB(c).Where("id = ?", id).Delete(model.LoginPolicyUserRef{}).Error +} + +type timePeriodRepository struct { + baseRepository +} + +func (r timePeriodRepository) CreateInBatches(c context.Context, m []model.TimePeriod) error { + return r.GetDB(c).CreateInBatches(m, 7).Error +} + +func (r timePeriodRepository) DeleteByLoginPolicyId(c context.Context, loginPolicyId string) error { + return r.GetDB(c).Where("login_policy_id = ?", loginPolicyId).Delete(model.TimePeriod{}).Error +} + +func (r timePeriodRepository) FindByLoginPolicyId(c context.Context, loginPolicyId string) (items []model.TimePeriod, err error) { + err = r.GetDB(c).Where("login_policy_id = ?", loginPolicyId).Find(&items).Error + return +} diff --git a/server/repository/property.go b/server/repository/property.go index b94cd87..83d2ae7 100644 --- a/server/repository/property.go +++ b/server/repository/property.go @@ -6,6 +6,8 @@ import ( "next-terminal/server/model" ) +var PropertyRepository = new(propertyRepository) + type propertyRepository struct { baseRepository } diff --git a/server/repository/resource_sharer.go b/server/repository/resource_sharer.go deleted file mode 100644 index 022a2dc..0000000 --- a/server/repository/resource_sharer.go +++ /dev/null @@ -1,184 +0,0 @@ -package repository - -import ( - "context" - - "next-terminal/server/model" - "next-terminal/server/utils" - - "github.com/labstack/echo/v4" - "gorm.io/gorm" -) - -type resourceSharerRepository struct { - baseRepository -} - -func (r *resourceSharerRepository) OverwriteUserIdsByResourceId(c context.Context, resourceId, resourceType string, userIds []string) (err error) { - db := r.GetDB(c).Begin() - - var owner string - // 检查资产是否存在 - switch resourceType { - case "asset": - resource := model.Asset{} - err = db.Where("id = ?", resourceId).First(&resource).Error - owner = resource.Owner - case "command": - resource := model.Command{} - err = db.Where("id = ?", resourceId).First(&resource).Error - owner = resource.Owner - case "credential": - resource := model.Credential{} - err = db.Where("id = ?", resourceId).First(&resource).Error - owner = resource.Owner - } - - if err == gorm.ErrRecordNotFound { - return echo.NewHTTPError(404, "资源「"+resourceId+"」不存在") - } - - for i := range userIds { - if owner == userIds[i] { - return echo.NewHTTPError(400, "参数错误") - } - } - - db.Where("resource_id = ?", resourceId).Delete(&model.ResourceSharer{}) - - for i := range userIds { - userId := userIds[i] - if len(userId) == 0 { - continue - } - id := utils.Sign([]string{resourceId, resourceType, userId}) - resource := &model.ResourceSharer{ - ID: id, - ResourceId: resourceId, - ResourceType: resourceType, - UserId: userId, - } - err = db.Create(resource).Error - if err != nil { - return err - } - } - db.Commit() - return nil -} - -func (r *resourceSharerRepository) DeleteByUserIdAndResourceTypeAndResourceIdIn(c context.Context, userGroupId, userId, resourceType string, resourceIds []string) error { - db := r.GetDB(c) - if userGroupId != "" { - db = db.Where("user_group_id = ?", userGroupId) - } - - if userId != "" { - db = db.Where("user_id = ?", userId) - } - - if resourceType != "" { - db = db.Where("resource_type = ?", resourceType) - } - - if len(resourceIds) > 0 { - db = db.Where("resource_id in ?", resourceIds) - } - - return db.Delete(&model.ResourceSharer{}).Error -} - -func (r *resourceSharerRepository) DeleteByResourceId(c context.Context, resourceId string) error { - return r.GetDB(c).Where("resource_id = ?", resourceId).Delete(&model.ResourceSharer{}).Error -} - -func (r *resourceSharerRepository) DeleteByUserId(c context.Context, userId string) error { - return r.GetDB(c).Where("user_id = ?", userId).Delete(&model.ResourceSharer{}).Error -} - -func (r *resourceSharerRepository) DeleteByUserGroupId(c context.Context, userGroupId string) error { - return r.GetDB(c).Where("user_group_id = ?", userGroupId).Delete(&model.ResourceSharer{}).Error -} - -func (r *resourceSharerRepository) AddSharerResource(c context.Context, m *model.ResourceSharer) error { - return r.GetDB(c).Create(m).Error -} - -func (r *resourceSharerRepository) FindAssetIdsByUserId(c context.Context, userId string) (assetIds []string, err error) { - // 查询当前用户创建的资产 - var ownerAssetIds, sharerAssetIds []string - asset := model.Asset{} - err = r.GetDB(c).Table(asset.TableName()).Select("id").Where("owner = ?", userId).Find(&ownerAssetIds).Error - if err != nil { - return nil, err - } - - // 查询其他用户授权给该用户的资产 - groupIds, err := UserGroupMemberRepository.FindUserGroupIdsByUserId(c, userId) - if err != nil { - return nil, err - } - - db := r.GetDB(c).Table("resource_sharers").Select("resource_id").Where("user_id = ?", userId) - if len(groupIds) > 0 { - db = db.Or("user_group_id in ?", groupIds) - } - err = db.Find(&sharerAssetIds).Error - if err != nil { - return nil, err - } - - // 合并查询到的资产ID - assetIds = make([]string, 0) - - if ownerAssetIds != nil { - assetIds = append(assetIds, ownerAssetIds...) - } - - if sharerAssetIds != nil { - assetIds = append(assetIds, sharerAssetIds...) - } - - return -} - -func (r *resourceSharerRepository) FindByResourceIdAndUserId(c context.Context, assetId, userId string) (resourceSharers []model.ResourceSharer, err error) { - // 查询其他用户授权给该用户的资产 - groupIds, err := UserGroupMemberRepository.FindUserGroupIdsByUserId(c, userId) - if err != nil { - return - } - db := r.GetDB(c).Where("( resource_id = ? and user_id = ? )", assetId, userId) - if len(groupIds) > 0 { - db = db.Or("user_group_id in ?", groupIds) - } - err = db.Find(&resourceSharers).Error - return -} - -func (r *resourceSharerRepository) Find(c context.Context, resourceId, resourceType, userId, userGroupId string) (resourceSharers []model.ResourceSharer, err error) { - db := r.GetDB(c) - if resourceId != "" { - db = db.Where("resource_id = ?", resourceId) - } - if resourceType != "" { - db = db.Where("resource_type = ?", resourceType) - } - if userId != "" { - db = db.Where("user_id = ?", userId) - } - if userGroupId != "" { - db = db.Where("user_group_id = ?", userGroupId) - } - err = db.Find(&resourceSharers).Error - return -} - -func (r *resourceSharerRepository) FindAll(c context.Context) (o []model.ResourceSharer, err error) { - err = r.GetDB(c).Find(&o).Error - return -} - -func (r *resourceSharerRepository) DeleteById(ctx context.Context, id string) error { - return r.GetDB(ctx).Where("id = ?", id).Delete(&model.ResourceSharer{}).Error -} diff --git a/server/repository/role.go b/server/repository/role.go new file mode 100644 index 0000000..15209ca --- /dev/null +++ b/server/repository/role.go @@ -0,0 +1,88 @@ +package repository + +import ( + "context" + + "next-terminal/server/model" +) + +var RoleRepository = new(roleRepository) + +type roleRepository struct { + baseRepository +} + +func (r roleRepository) ExistsById(c context.Context, id string) (exist bool, err error) { + m := model.Role{} + var count uint64 + err = r.GetDB(c).Table(m.TableName()).Select("count(*)"). + Where("id = ?", id). + Find(&count). + Error + if err != nil { + return false, err + } + return count > 0, nil +} + +func (r roleRepository) FindAll(c context.Context) (o []model.Role, err error) { + err = r.GetDB(c).Order("name desc").Find(&o).Error + return +} + +func (r roleRepository) Find(c context.Context, pageIndex, pageSize int, name, _type, order, field string) (o []model.Role, total int64, err error) { + m := model.Role{} + db := r.GetDB(c).Table(m.TableName()) + dbCounter := r.GetDB(c).Table(m.TableName()) + + if len(name) > 0 { + db = db.Where("name like ?", "%"+name+"%") + dbCounter = dbCounter.Where("name like ?", "%"+name+"%") + } + + if _type != "" { + db = db.Where("type = ?", _type) + dbCounter = dbCounter.Where("type = ?", _type) + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + if order == "ascend" { + order = "asc" + } else { + order = "desc" + } + + if field == "name" { + field = "name" + } else { + field = "created" + } + + err = db.Order(field + " " + order).Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error + if o == nil { + o = make([]model.Role, 0) + } + return +} + +func (r roleRepository) DeleteById(c context.Context, id string) error { + return r.GetDB(c).Where("id = ?", id).Delete(model.Role{}).Error +} + +func (r roleRepository) Create(c context.Context, m *model.Role) error { + return r.GetDB(c).Create(m).Error +} + +func (r roleRepository) UpdateById(c context.Context, o *model.Role, id string) error { + o.ID = id + return r.GetDB(c).Updates(o).Error +} + +func (r roleRepository) FindById(c context.Context, id string) (m model.Role, err error) { + err = r.GetDB(c).Where("id = ?", id).First(&m).Error + return +} diff --git a/server/repository/role_menu.go b/server/repository/role_menu.go new file mode 100644 index 0000000..e6a4b02 --- /dev/null +++ b/server/repository/role_menu.go @@ -0,0 +1,29 @@ +package repository + +import ( + "context" + "next-terminal/server/model" +) + +var RoleMenuRefRepository = &roleMenuRefRepository{} + +type roleMenuRefRepository struct { + baseRepository +} + +func (r roleMenuRefRepository) CreateInBatches(ctx context.Context, items []*model.RoleMenuRef) error { + return r.GetDB(ctx).CreateInBatches(items, 100).Error +} + +func (r roleMenuRefRepository) FindByRoleId(ctx context.Context, roleId string) (items []model.RoleMenuRef, err error) { + err = r.GetDB(ctx).Where("role_id = ?", roleId).Find(&items).Error + return +} + +func (r roleMenuRefRepository) DeleteByRoleId(ctx context.Context, roleId string) error { + return r.GetDB(ctx).Where("role_id = ?", roleId).Delete(&model.RoleMenuRef{}).Error +} + +func (r roleMenuRefRepository) DeleteByIdIn(ctx context.Context, array []string) error { + return r.GetDB(ctx).Where("id in ?", array).Delete(&model.RoleMenuRef{}).Error +} diff --git a/server/repository/security.go b/server/repository/security.go index 2a89a60..50eb79b 100644 --- a/server/repository/security.go +++ b/server/repository/security.go @@ -6,6 +6,8 @@ import ( "next-terminal/server/model" ) +var SecurityRepository = new(securityRepository) + type securityRepository struct { baseRepository } diff --git a/server/repository/session.go b/server/repository/session.go index 26639b7..888625b 100644 --- a/server/repository/session.go +++ b/server/repository/session.go @@ -2,15 +2,15 @@ package repository import ( "context" - "os" - "path" + "next-terminal/server/common/nt" "time" - "next-terminal/server/config" - "next-terminal/server/constant" + "next-terminal/server/dto" "next-terminal/server/model" ) +var SessionRepository = new(sessionRepository) + type sessionRepository struct { baseRepository } @@ -22,7 +22,10 @@ func (r sessionRepository) Find(c context.Context, pageIndex, pageSize int, stat params = append(params, status) - itemSql := "SELECT s.id,s.mode, s.protocol,s.recording, s.connection_id, s.asset_id, s.creator, s.client_ip, s.width, s.height, s.ip, s.port, s.username, s.status, s.connected_time, s.disconnected_time,s.code,s.reviewed, s.message, a.name AS asset_name, u.nickname AS creator_name FROM sessions s LEFT JOIN assets a ON s.asset_id = a.id LEFT JOIN users u ON s.creator = u.id WHERE s.STATUS = ? " + itemSql := "SELECT s.id,s.mode, s.protocol,s.recording, s.connection_id, s.asset_id, s.creator, s.client_ip, s.width, s.height, s.ip, s.port, s.username, s.status, s.connected_time, s.disconnected_time,s.code,s.reviewed, s.message,s.command_count, a.name AS asset_name, u.nickname AS creator_name FROM sessions s " + + "LEFT JOIN assets a ON s.asset_id = a.id " + + "LEFT JOIN users u ON s.creator = u.id " + + "WHERE s.STATUS = ? " countSql := "select count(*) from sessions as s where s.status = ? " if len(userId) > 0 { @@ -81,7 +84,7 @@ func (r sessionRepository) FindByStatusIn(c context.Context, statuses []string) func (r sessionRepository) FindOutTimeSessions(c context.Context, dayLimit int) (o []model.Session, err error) { limitTime := time.Now().Add(time.Duration(-dayLimit*24) * time.Hour) - err = r.GetDB(c).Where("status = ? and connected_time < ?", constant.Disconnected, limitTime).Find(&o).Error + err = r.GetDB(c).Where("status = ? and connected_time < ?", nt.Disconnected, limitTime).Find(&o).Error return } @@ -117,25 +120,17 @@ func (r sessionRepository) DeleteById(c context.Context, id string) error { return r.GetDB(c).Where("id = ?", id).Delete(&model.Session{}).Error } -func (r sessionRepository) DeleteByIds(c context.Context, sessionIds []string) error { - recordingPath := config.GlobalCfg.Guacd.Recording - for i := range sessionIds { - if err := os.RemoveAll(path.Join(recordingPath, sessionIds[i])); err != nil { - return err - } - if err := r.DeleteById(c, sessionIds[i]); err != nil { - return err - } - } - return nil -} - func (r sessionRepository) DeleteByStatus(c context.Context, status string) error { return r.GetDB(c).Where("status = ?", status).Delete(&model.Session{}).Error } func (r sessionRepository) CountOnlineSession(c context.Context) (total int64, err error) { - err = r.GetDB(c).Where("status = ?", constant.Connected).Find(&model.Session{}).Count(&total).Error + err = r.GetDB(c).Where("status = ?", nt.Connected).Find(&model.Session{}).Count(&total).Error + return +} + +func (r sessionRepository) CountOfflineSession(c context.Context) (total int64, err error) { + err = r.GetDB(c).Where("status = ?", nt.Disconnected).Find(&model.Session{}).Count(&total).Error return } @@ -149,16 +144,6 @@ func (r sessionRepository) CountByStatus(c context.Context, status string) (tota return } -func (r sessionRepository) OverviewAccess(c context.Context) (o []model.SessionForAccess, err error) { - db := r.GetDB(c) - sql := "SELECT s.asset_id, s.ip, s.port, s.protocol, s.username, count(s.asset_id) AS access_count FROM sessions AS s GROUP BY s.asset_id, s.ip, s.port, s.protocol, s.username ORDER BY access_count DESC limit 10" - err = db.Raw(sql).Scan(&o).Error - if o == nil { - o = make([]model.SessionForAccess, 0) - } - return -} - func (r sessionRepository) UpdateReadByIds(c context.Context, reviewed bool, ids []string) error { sql := "update sessions set reviewed = ? where id in ?" return r.GetDB(c).Exec(sql, reviewed, ids).Error @@ -173,3 +158,8 @@ func (r sessionRepository) UpdateMode(c context.Context) error { sql := "update sessions set mode = 'native' where mode = 'naive'" return r.GetDB(c).Exec(sql).Error } + +func (r sessionRepository) CountWithGroupByLoginTime(c context.Context, t time.Time) (counter []dto.DateCounter, err error) { + err = r.GetDB(c).Table("sessions").Select("date(connected_time) as date, count(id) as value").Where("connected_time > ?", t).Group("date(connected_time)").Scan(&counter).Error + return +} diff --git a/server/repository/storage.go b/server/repository/storage.go index deddb94..c3e0e7b 100644 --- a/server/repository/storage.go +++ b/server/repository/storage.go @@ -6,6 +6,8 @@ import ( "next-terminal/server/model" ) +var StorageRepository = new(storageRepository) + type storageRepository struct { baseRepository } diff --git a/server/repository/storage_log.go b/server/repository/storage_log.go new file mode 100644 index 0000000..362be91 --- /dev/null +++ b/server/repository/storage_log.go @@ -0,0 +1,78 @@ +package repository + +import ( + "context" + + "next-terminal/server/dto" + "next-terminal/server/model" +) + +var StorageLogRepository = new(storageLogRepository) + +type storageLogRepository struct { + baseRepository +} + +func (r storageLogRepository) DeleteById(c context.Context, id string) error { + return r.GetDB(c).Where("id = ?", id).Delete(model.StorageLog{}).Error +} + +func (r storageLogRepository) DeleteAll(c context.Context) error { + return r.GetDB(c).Where("1 = 1").Delete(model.StorageLog{}).Error +} + +func (r storageLogRepository) Create(c context.Context, m *model.StorageLog) error { + return r.GetDB(c).Create(m).Error +} + +func (r storageLogRepository) FindById(c context.Context, id string) (m model.StorageLog, err error) { + err = r.GetDB(c).Where("id = ?", id).First(&m).Error + return +} + +func (r storageLogRepository) Find(c context.Context, pageIndex, pageSize int, assetId, userId, action, order, field string) (o []dto.StorageLogForPage, total int64, err error) { + db := r.GetDB(c).Table("storage_logs").Select("storage_logs.*, assets.name as asset_name, users.nickname as user_name"). + Joins("left join assets on storage_logs.asset_id = assets.id"). + Joins("left join users on storage_logs.user_id = users.id") + dbCounter := r.GetDB(c).Table("storage_logs"). + Joins("left join assets on storage_logs.asset_id = assets.id"). + Joins("left join users on storage_logs.user_id = users.id") + + if len(assetId) > 0 { + db = db.Where("storage_logs.asset_id = ?", assetId) + dbCounter = dbCounter.Where("storage_logs.asset_id = ?", assetId) + } + + if len(userId) > 0 { + db = db.Where("storage_logs.user_id = ?", userId) + dbCounter = dbCounter.Where("storage_logs.user_id = ?", userId) + } + + if len(action) > 0 { + db = db.Where("storage_logs.action = ?", action) + dbCounter = dbCounter.Where("storage_logs.action = ?", action) + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + if order == "" { + order = "desc" + } else if order == "ascend" { + order = "asc" + } else { + order = "desc" + } + + if field == "" { + field = "storage_logs.created" + } + + err = db.Order(field + " " + order).Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error + if o == nil { + o = make([]dto.StorageLogForPage, 0) + } + return +} diff --git a/server/repository/strategy.go b/server/repository/strategy.go index 77c6a6a..107869b 100644 --- a/server/repository/strategy.go +++ b/server/repository/strategy.go @@ -6,12 +6,14 @@ import ( "next-terminal/server/model" ) +var StrategyRepository = new(strategyRepository) + type strategyRepository struct { baseRepository } func (r strategyRepository) FindAll(c context.Context) (o []model.Strategy, err error) { - err = r.GetDB(c).Order("name desc").Find(&o).Error + err = r.GetDB(c).Order("name asc").Find(&o).Error return } diff --git a/server/repository/tenant.go b/server/repository/tenant.go new file mode 100644 index 0000000..43d78fc --- /dev/null +++ b/server/repository/tenant.go @@ -0,0 +1,70 @@ +package repository + +import ( + "context" + + "next-terminal/server/model" +) + +var TenantRepository = new(tenantRepository) + +type tenantRepository struct { + baseRepository +} + +func (r tenantRepository) FindAll(c context.Context) (o []model.Tenant, err error) { + err = r.GetDB(c).Order("name desc").Find(&o).Error + return +} + +func (r tenantRepository) Find(c context.Context, pageIndex, pageSize int, name, order, field string) (o []model.Tenant, total int64, err error) { + m := model.Tenant{} + db := r.GetDB(c).Table(m.TableName()) + dbCounter := r.GetDB(c).Table(m.TableName()) + + if len(name) > 0 { + db = db.Where("name like ?", "%"+name+"%") + dbCounter = dbCounter.Where("name like ?", "%"+name+"%") + } + + err = dbCounter.Count(&total).Error + if err != nil { + return nil, 0, err + } + + if order == "ascend" { + order = "asc" + } else { + order = "desc" + } + + if field == "name" { + field = "name" + } else { + field = "created" + } + + err = db.Order(field + " " + order).Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error + if o == nil { + o = make([]model.Tenant, 0) + } + return +} + +func (r tenantRepository) DeleteById(c context.Context, id string) error { + return r.GetDB(c).Where("id = ?", id).Delete(model.Tenant{}).Error +} + +func (r tenantRepository) Create(c context.Context, m *model.Tenant) error { + return r.GetDB(c).Create(m).Error +} + +func (r tenantRepository) UpdateById(c context.Context, o *model.Tenant, id string) error { + o.ID = id + return r.GetDB(c).Updates(o).Error +} + +func (r tenantRepository) FindById(c context.Context, id string) (m model.Tenant, err error) { + err = r.GetDB(c).Where("id = ?", id).First(&m).Error + return +} diff --git a/server/repository/user.go b/server/repository/user.go index f2804d4..e2e2fc7 100644 --- a/server/repository/user.go +++ b/server/repository/user.go @@ -2,10 +2,13 @@ package repository import ( "context" + "strconv" "next-terminal/server/model" ) +var UserRepository = new(userRepository) + type userRepository struct { baseRepository } @@ -15,10 +18,18 @@ func (r userRepository) FindAll(c context.Context) (o []model.User, err error) { return } -func (r userRepository) Find(c context.Context, pageIndex, pageSize int, username, nickname, mail, order, field string) (o []model.UserForPage, total int64, err error) { - db := r.GetDB(c).Table("users").Select("users.id,users.username,users.nickname,users.mail,users.online,users.created,users.type,users.status,users.source, count(resource_sharers.user_id) as sharer_asset_count, users.totp_secret").Joins("left join resource_sharers on users.id = resource_sharers.user_id and resource_sharers.resource_type = 'asset'").Group("users.id") +func (r userRepository) Find(c context.Context, pageIndex, pageSize int, username, nickname, mail, online, loginPolicyId, order, field string) (o []model.UserForPage, total int64, err error) { + db := r.GetDB(c).Table("users").Select("users.id,users.username,users.nickname,users.mail,users.online,users.created,users.type,users.status,users.source, users.totp_secret") dbCounter := r.GetDB(c).Table("users") + if loginPolicyId != "" { + db = db.Joins("left join login_policies_ref as ref on users.id = ref.user_id") + dbCounter = dbCounter.Joins("left join login_policies_ref as ref on users.id = ref.user_id") + + db = db.Where("ref.login_policy_id = ?", loginPolicyId) + dbCounter = db.Where("ref.login_policy_id = ?", loginPolicyId) + } + if len(username) > 0 { db = db.Where("users.username like ?", "%"+username+"%") dbCounter = dbCounter.Where("username like ?", "%"+username+"%") @@ -34,6 +45,15 @@ func (r userRepository) Find(c context.Context, pageIndex, pageSize int, usernam dbCounter = dbCounter.Where("mail like ?", "%"+mail+"%") } + if online != "" { + _online, err := strconv.ParseBool(online) + if err != nil { + return nil, 0, err + } + db = db.Where("users.online = ?", _online) + dbCounter = dbCounter.Where("users.online = ?", _online) + } + err = dbCounter.Count(&total).Error if err != nil { return nil, 0, err @@ -91,6 +111,19 @@ func (r userRepository) ExistByUsername(c context.Context, username string) (exi return count > 0, nil } +func (r userRepository) ExistById(c context.Context, id string) (exist bool, err error) { + user := model.User{} + var count uint64 + err = r.GetDB(c).Table(user.TableName()).Select("count(*)"). + Where("id = ?", id). + Find(&count). + Error + if err != nil { + return false, err + } + return count > 0, nil +} + func (r userRepository) FindOnlineUsers(c context.Context) (o []model.User, err error) { err = r.GetDB(c).Where("online = ?", true).Find(&o).Error return diff --git a/server/repository/user_group.go b/server/repository/user_group.go index 5d8b826..ca58360 100644 --- a/server/repository/user_group.go +++ b/server/repository/user_group.go @@ -6,6 +6,8 @@ import ( "next-terminal/server/model" ) +var UserGroupRepository = new(userGroupRepository) + type userGroupRepository struct { baseRepository } @@ -16,7 +18,7 @@ func (r userGroupRepository) FindAll(c context.Context) (o []model.UserGroup, er } func (r userGroupRepository) Find(c context.Context, pageIndex, pageSize int, name, order, field string) (o []model.UserGroupForPage, total int64, err error) { - db := r.GetDB(c).Table("user_groups").Select("user_groups.id, user_groups.name, user_groups.created, count(resource_sharers.user_group_id) as asset_count").Joins("left join resource_sharers on user_groups.id = resource_sharers.user_group_id and resource_sharers.resource_type = 'asset'").Group("user_groups.id") + db := r.GetDB(c).Table("user_groups") dbCounter := r.GetDB(c).Table("user_groups") if len(name) > 0 { db = db.Where("user_groups.name like ?", "%"+name+"%") diff --git a/server/repository/user_group_member.go b/server/repository/user_group_member.go index b24708e..8517ab7 100644 --- a/server/repository/user_group_member.go +++ b/server/repository/user_group_member.go @@ -3,15 +3,23 @@ package repository import ( "context" + "next-terminal/server/dto" "next-terminal/server/model" ) +var UserGroupMemberRepository = new(userGroupMemberRepository) + type userGroupMemberRepository struct { baseRepository } +func (r userGroupMemberRepository) FindByUserGroupId(c context.Context, userGroupId string) (o []dto.UserGroupMember, err error) { + err = r.GetDB(c).Table("user_group_members").Select("users.id as id, users.nickname as name").Joins("left join users on users.id = user_group_members.user_id").Group("users.id").Where("user_group_id = ?", userGroupId).Find(&o).Error + return +} + func (r userGroupMemberRepository) FindUserIdsByUserGroupId(c context.Context, userGroupId string) (o []string, err error) { - err = r.GetDB(c).Table("user_group_members").Select("user_id").Where("user_group_id = ?", userGroupId).Find(&o).Error + err = r.GetDB(c).Table("user_group_members").Select("users.id").Where("user_group_id = ?", userGroupId).Find(&o).Error return } diff --git a/server/repository/user_role_ref.go b/server/repository/user_role_ref.go new file mode 100644 index 0000000..c8930a1 --- /dev/null +++ b/server/repository/user_role_ref.go @@ -0,0 +1,30 @@ +package repository + +import ( + "context" + + "next-terminal/server/model" +) + +var UserRoleRefRepository = new(userRoleRefRepository) + +type userRoleRefRepository struct { + baseRepository +} + +func (r userRoleRefRepository) Create(c context.Context, m *model.UserRoleRef) error { + return r.GetDB(c).Create(m).Error +} + +func (r userRoleRefRepository) DeleteByUserId(c context.Context, userId string) error { + return r.GetDB(c).Where("user_id = ?", userId).Delete(model.UserRoleRef{}).Error +} + +func (r userRoleRefRepository) FindByUserId(c context.Context, userId string) (items []model.UserRoleRef, err error) { + err = r.GetDB(c).Where("user_id = ?", userId).Find(&items).Error + return +} + +func (r userRoleRefRepository) DeleteByRoleId(c context.Context, roleId string) error { + return r.GetDB(c).Where("role_id = ?", roleId).Delete(model.UserRoleRef{}).Error +} diff --git a/server/repository/var.go b/server/repository/var.go deleted file mode 100644 index ac00080..0000000 --- a/server/repository/var.go +++ /dev/null @@ -1,21 +0,0 @@ -package repository - -var ( - PropertyRepository = new(propertyRepository) - UserRepository = new(userRepository) - UserGroupRepository = new(userGroupRepository) - UserGroupMemberRepository = new(userGroupMemberRepository) - ResourceSharerRepository = new(resourceSharerRepository) - AssetRepository = new(assetRepository) - CredentialRepository = new(credentialRepository) - CommandRepository = new(commandRepository) - SessionRepository = new(sessionRepository) - SecurityRepository = new(securityRepository) - GatewayRepository = new(gatewayRepository) - JobRepository = new(jobRepository) - JobLogRepository = new(jobLogRepository) - LoginLogRepository = new(loginLogRepository) - StorageRepository = new(storageRepository) - StrategyRepository = new(strategyRepository) - AccessTokenRepository = new(accessTokenRepository) -) diff --git a/server/service/access_token.go b/server/service/access_token.go index d87e8a2..9d3b672 100644 --- a/server/service/access_token.go +++ b/server/service/access_token.go @@ -3,8 +3,9 @@ package service import ( "context" "errors" + "next-terminal/server/common/nt" - "next-terminal/server/constant" + "next-terminal/server/common" "next-terminal/server/dto" "next-terminal/server/env" "next-terminal/server/global/cache" @@ -15,6 +16,8 @@ import ( "gorm.io/gorm" ) +var AccessTokenService = new(accessTokenService) + type accessTokenService struct { baseService } @@ -22,33 +25,28 @@ type accessTokenService struct { func (service accessTokenService) GenAccessToken(userId string) error { return env.GetDB().Transaction(func(tx *gorm.DB) error { ctx := service.Context(tx) + + if err := service.DelAccessToken(ctx, userId); err != nil { + return err + } + user, err := repository.UserRepository.FindById(ctx, userId) if err != nil { return err } - oldAccessToken, err := repository.AccessTokenRepository.FindByUserId(ctx, userId) - if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { - return err - } - if oldAccessToken.Token != "" { - cache.TokenManager.Delete(oldAccessToken.Token) - } - if err := repository.AccessTokenRepository.DeleteByUserId(ctx, userId); err != nil { - return err - } token := "forever-" + utils.UUID() accessToken := &model.AccessToken{ ID: utils.UUID(), UserId: userId, Token: token, - Created: utils.NowJsonTime(), + Created: common.NowJsonTime(), } authorization := dto.Authorization{ Token: token, Remember: false, - Type: constant.AccessToken, + Type: nt.AccessToken, User: &user, } @@ -71,7 +69,7 @@ func (service accessTokenService) Reload() error { authorization := dto.Authorization{ Token: accessToken.Token, Remember: false, - Type: constant.AccessToken, + Type: nt.AccessToken, User: &user, } @@ -79,3 +77,14 @@ func (service accessTokenService) Reload() error { } return nil } + +func (service accessTokenService) DelAccessToken(ctx context.Context, userId string) error { + oldAccessToken, err := repository.AccessTokenRepository.FindByUserId(ctx, userId) + if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { + return err + } + if oldAccessToken.Token != "" { + cache.TokenManager.Delete(oldAccessToken.Token) + } + return repository.AccessTokenRepository.DeleteByUserId(ctx, userId) +} diff --git a/server/service/asset.go b/server/service/asset.go index d457d14..499717b 100644 --- a/server/service/asset.go +++ b/server/service/asset.go @@ -4,9 +4,15 @@ import ( "context" "encoding/base64" "encoding/json" + "fmt" + "golang.org/x/net/proxy" + "net" + "next-terminal/server/common/nt" + "strconv" + "time" + "next-terminal/server/common" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/env" "next-terminal/server/model" "next-terminal/server/repository" @@ -16,6 +22,8 @@ import ( "gorm.io/gorm" ) +var AssetService = new(assetService) + type assetService struct { baseService } @@ -116,24 +124,53 @@ func (s assetService) FindByIdAndDecrypt(c context.Context, id string) (model.As return asset, nil } -func (s assetService) CheckStatus(accessGatewayId string, ip string, port int) (bool, error) { - if accessGatewayId != "" && accessGatewayId != "-" { - g, err := GatewayService.GetGatewayById(accessGatewayId) - if err != nil { - return false, err - } - - uuid := utils.UUID() - defer g.CloseSshTunnel(uuid) - exposedIP, exposedPort, err := g.OpenSshTunnel(uuid, ip, port) - if err != nil { - return false, err - } - - return utils.Tcping(exposedIP, exposedPort) +func (s assetService) CheckStatus(asset *model.Asset, ip string, port int) (bool, error) { + attributes, err := repository.AssetRepository.FindAssetAttrMapByAssetId(context.Background(), asset.ID) + if err != nil { + return false, err } - return utils.Tcping(ip, port) + if "true" == attributes[nt.SocksProxyEnable] { + socks5 := fmt.Sprintf("%s:%s", attributes[nt.SocksProxyHost], attributes[nt.SocksProxyPort]) + auth := &proxy.Auth{ + User: attributes[nt.SocksProxyUsername], + Password: attributes[nt.SocksProxyPassword], + } + dailer, err := proxy.SOCKS5("tcp", socks5, auth, &net.Dialer{ + Timeout: 15 * time.Second, + KeepAlive: 15 * time.Second, + }) + if err != nil { + return false, err + } + + target := fmt.Sprintf("%s:%s", ip, strconv.Itoa(port)) + c, err := dailer.Dial("tcp", target) + if err != nil { + return false, err + } + defer c.Close() + return true, nil + } else { + accessGatewayId := asset.AccessGatewayId + if accessGatewayId != "" && accessGatewayId != "-" { + g, err := GatewayService.GetGatewayById(accessGatewayId) + if err != nil { + return false, err + } + + uuid := utils.UUID() + defer g.CloseSshTunnel(uuid) + exposedIP, exposedPort, err := g.OpenSshTunnel(uuid, ip, port) + if err != nil { + return false, err + } + + return utils.Tcping(exposedIP, exposedPort) + } + + return utils.Tcping(ip, port) + } } func (s assetService) Create(ctx context.Context, m echo.Map) (model.Asset, error) { @@ -148,39 +185,22 @@ func (s assetService) Create(ctx context.Context, m echo.Map) (model.Asset, erro } item.ID = utils.UUID() - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() item.Active = true - if s.InTransaction(ctx) { - return item, s.create(ctx, item, m) - } else { - return item, env.GetDB().Transaction(func(tx *gorm.DB) error { - c := s.Context(tx) - return s.create(c, item, m) - }) - } -} + return item, s.Transaction(ctx, func(ctx context.Context) error { + if err := s.Encrypt(&item, config.GlobalCfg.EncryptionPassword); err != nil { + return err + } + if err := repository.AssetRepository.Create(ctx, &item); err != nil { + return err + } -func (s assetService) create(c context.Context, item model.Asset, m echo.Map) error { - if err := s.Encrypt(&item, config.GlobalCfg.EncryptionPassword); err != nil { - return err - } - if err := repository.AssetRepository.Create(c, &item); err != nil { - return err - } - - if err := repository.AssetRepository.UpdateAttributes(c, item.ID, item.Protocol, m); err != nil { - return err - } - - //go func() { - // active, _ := s.CheckStatus(item.AccessGatewayId, item.IP, item.Port) - // - // if item.Active != active { - // _ = repository.AssetRepository.UpdateActiveById(context.TODO(), active, item.id) - // } - //}() - return nil + if err := repository.AssetRepository.UpdateAttributes(ctx, item.ID, item.Protocol, m); err != nil { + return err + } + return nil + }) } func (s assetService) DeleteById(id string) error { @@ -195,7 +215,7 @@ func (s assetService) DeleteById(id string) error { return err } // 删除资产与用户的关系 - if err := repository.ResourceSharerRepository.DeleteByResourceId(c, id); err != nil { + if err := repository.AuthorisedRepository.DeleteByAssetId(c, id); err != nil { return err } return nil @@ -265,5 +285,5 @@ func (s assetService) UpdateById(id string, m echo.Map) error { } func (s assetService) FixSshMode() error { - return repository.AssetRepository.UpdateAttrs(context.TODO(), "ssh-mode", "naive", constant.Native) + return repository.AssetRepository.UpdateAttrs(context.TODO(), "ssh-mode", "naive", nt.Native) } diff --git a/server/service/authorised.go b/server/service/authorised.go new file mode 100644 index 0000000..6ba7972 --- /dev/null +++ b/server/service/authorised.go @@ -0,0 +1,128 @@ +package service + +import ( + "context" + "github.com/pkg/errors" + "gorm.io/gorm" + "next-terminal/server/common" + "next-terminal/server/dto" + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/utils" +) + +var AuthorisedService = new(authorisedService) + +type authorisedService struct { + baseService +} + +func (s authorisedService) AuthorisedAssets(ctx context.Context, item *dto.AuthorisedAsset) error { + return s.Transaction(ctx, func(ctx context.Context) error { + + var items []model.Authorised + for _, assetId := range item.AssetIds { + + id := utils.Sign([]string{assetId, item.UserId, item.UserGroupId}) + + if err := repository.AuthorisedRepository.DeleteById(ctx, id); err != nil { + return err + } + + authorised := model.Authorised{ + ID: id, + AssetId: assetId, + CommandFilterId: item.CommandFilterId, + StrategyId: item.StrategyId, + UserId: item.UserId, + UserGroupId: item.UserGroupId, + Created: common.NowJsonTime(), + } + items = append(items, authorised) + } + + return repository.AuthorisedRepository.CreateInBatches(ctx, items) + }) +} + +func (s authorisedService) AuthorisedUsers(ctx context.Context, item *dto.AuthorisedUser) error { + return s.Transaction(ctx, func(ctx context.Context) error { + + var items []model.Authorised + for _, userId := range item.UserIds { + + id := utils.Sign([]string{item.AssetId, userId, ""}) + + if err := repository.AuthorisedRepository.DeleteById(ctx, id); err != nil { + return err + } + + authorised := model.Authorised{ + ID: id, + AssetId: item.AssetId, + CommandFilterId: item.CommandFilterId, + StrategyId: item.StrategyId, + UserId: userId, + UserGroupId: "", + Created: common.NowJsonTime(), + } + items = append(items, authorised) + } + + return repository.AuthorisedRepository.CreateInBatches(ctx, items) + }) +} + +func (s authorisedService) AuthorisedUserGroups(ctx context.Context, item *dto.AuthorisedUserGroup) error { + return s.Transaction(ctx, func(ctx context.Context) error { + + var items []model.Authorised + for _, userGroupId := range item.UserGroupIds { + + id := utils.Sign([]string{item.AssetId, "", userGroupId}) + + if err := repository.AuthorisedRepository.DeleteById(ctx, id); err != nil { + return err + } + + authorised := model.Authorised{ + ID: id, + AssetId: item.AssetId, + CommandFilterId: item.CommandFilterId, + StrategyId: item.StrategyId, + UserId: "", + UserGroupId: userGroupId, + Created: common.NowJsonTime(), + } + items = append(items, authorised) + } + + return repository.AuthorisedRepository.CreateInBatches(ctx, items) + }) +} + +func (s authorisedService) GetAuthorised(userId, assetId string) (item *model.Authorised, err error) { + id := utils.Sign([]string{assetId, userId, ""}) + authorised, err := repository.AuthorisedRepository.FindById(context.Background(), id) + if err != nil { + if errors.Is(gorm.ErrRecordNotFound, err) { + groupIds, err := repository.UserGroupMemberRepository.FindUserGroupIdsByUserId(context.Background(), userId) + if err != nil { + return nil, err + } + + for _, groupId := range groupIds { + id := utils.Sign([]string{assetId, "", groupId}) + authorised, err := repository.AuthorisedRepository.FindById(context.Background(), id) + if err != nil { + continue + } + item = &authorised + break + } + return item, err + } + return nil, err + } + return &authorised, nil +} diff --git a/server/service/backup.go b/server/service/backup.go index 8528d3a..94a4ac1 100644 --- a/server/service/backup.go +++ b/server/service/backup.go @@ -6,8 +6,9 @@ import ( "errors" "strings" + "next-terminal/server/common" + "next-terminal/server/common/nt" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/dto" "next-terminal/server/env" "next-terminal/server/global/security" @@ -18,6 +19,8 @@ import ( "gorm.io/gorm" ) +var BackupService = new(backupService) + type backupService struct { baseService } @@ -105,11 +108,6 @@ func (service backupService) Export() (error, *dto.Backup) { } } - resourceSharers, err := repository.ResourceSharerRepository.FindAll(ctx) - if err != nil { - return err, nil - } - backup := dto.Backup{ Users: users, UserGroups: userGroups, @@ -121,7 +119,6 @@ func (service backupService) Export() (error, *dto.Backup) { Commands: commands, Credentials: credentials, Assets: assetMaps, - ResourceSharers: resourceSharers, } return nil, &backup } @@ -165,7 +162,7 @@ func (service backupService) Import(backup *dto.Backup) error { userGroup, err := UserGroupService.Create(ctx, item.Name, members) if err != nil { - if errors.Is(constant.ErrNameAlreadyUsed, err) { + if errors.Is(nt.ErrNameAlreadyUsed, err) { // 删除名称重复的用户组 delete(userGroupIdMapping, oldId) continue @@ -186,7 +183,7 @@ func (service backupService) Import(backup *dto.Backup) error { } item.ID = utils.UUID() item.Owner = owner - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() if err := repository.StorageRepository.Create(ctx, &item); err != nil { return err } @@ -199,7 +196,7 @@ func (service backupService) Import(backup *dto.Backup) error { oldId := item.ID newId := utils.UUID() item.ID = newId - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() if err := repository.StrategyRepository.Create(ctx, &item); err != nil { return err } @@ -230,7 +227,7 @@ func (service backupService) Import(backup *dto.Backup) error { oldId := item.ID newId := utils.UUID() item.ID = newId - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() if err := repository.GatewayRepository.Create(ctx, &item); err != nil { return err } @@ -241,7 +238,7 @@ func (service backupService) Import(backup *dto.Backup) error { if len(backup.Commands) > 0 { for _, item := range backup.Commands { item.ID = utils.UUID() - item.Created = utils.NowJsonTime() + item.Created = common.NowJsonTime() if err := repository.CommandRepository.Create(ctx, &item); err != nil { return err } @@ -291,23 +288,9 @@ func (service backupService) Import(backup *dto.Backup) error { } } - if len(backup.ResourceSharers) > 0 { - for _, item := range backup.ResourceSharers { - - userGroupId := userGroupIdMapping[item.UserGroupId] - userId := userIdMapping[item.UserId] - strategyId := strategyIdMapping[item.StrategyId] - resourceId := assetIdMapping[item.ResourceId] - - if err := UserService.AddSharerResources(ctx, userGroupId, userId, strategyId, item.ResourceType, []string{resourceId}); err != nil { - return err - } - } - } - if len(backup.Jobs) > 0 { for _, item := range backup.Jobs { - if item.Func == constant.FuncCheckAssetStatusJob { + if item.Func == nt.FuncCheckAssetStatusJob { continue } diff --git a/server/service/base.go b/server/service/base.go index f9be9c3..3d3831b 100644 --- a/server/service/base.go +++ b/server/service/base.go @@ -2,8 +2,8 @@ package service import ( "context" - - "next-terminal/server/constant" + "next-terminal/server/common/nt" + "next-terminal/server/env" "gorm.io/gorm" ) @@ -12,10 +12,20 @@ type baseService struct { } func (service baseService) Context(db *gorm.DB) context.Context { - return context.WithValue(context.TODO(), constant.DB, db) + return context.WithValue(context.TODO(), nt.DB, db) } -func (service baseService) InTransaction(ctx context.Context) bool { - _, ok := ctx.Value(constant.DB).(*gorm.DB) +func (service baseService) inTransaction(ctx context.Context) bool { + _, ok := ctx.Value(nt.DB).(*gorm.DB) return ok } + +func (service baseService) Transaction(ctx context.Context, f func(ctx context.Context) error) error { + if !service.inTransaction(ctx) { + return env.GetDB().Transaction(func(tx *gorm.DB) error { + ctx := service.Context(tx) + return f(ctx) + }) + } + return f(ctx) +} diff --git a/server/cli/cli.go b/server/service/cli.go similarity index 74% rename from server/cli/cli.go rename to server/service/cli.go index 655ca43..cda2911 100644 --- a/server/cli/cli.go +++ b/server/service/cli.go @@ -1,16 +1,14 @@ -package cli +package service import ( "context" "crypto/md5" "fmt" + "next-terminal/server/common/nt" - "next-terminal/server/constant" "next-terminal/server/env" - "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" - "next-terminal/server/service" "next-terminal/server/utils" "gorm.io/gorm" @@ -40,7 +38,6 @@ func (cli Cli) ResetPassword(username string) error { if err := repository.UserRepository.Update(context.TODO(), u); err != nil { return err } - log.Debugf("用户「%v」密码初始化为: %v", user.Username, password) return nil } @@ -56,7 +53,6 @@ func (cli Cli) ResetTotp(username string) error { if err := repository.UserRepository.Update(context.TODO(), u); err != nil { return err } - log.Debugf("用户「%v」已重置TOTP", user.Username) return nil } @@ -66,17 +62,17 @@ func (cli Cli) ChangeEncryptionKey(oldEncryptionKey, newEncryptionKey string) er newPassword := []byte(fmt.Sprintf("%x", md5.Sum([]byte(newEncryptionKey)))) return env.GetDB().Transaction(func(tx *gorm.DB) error { - c := context.WithValue(context.TODO(), constant.DB, tx) + c := context.WithValue(context.TODO(), nt.DB, tx) credentials, err := repository.CredentialRepository.FindAll(c) if err != nil { return err } for i := range credentials { credential := credentials[i] - if err := service.CredentialService.Decrypt(&credential, oldPassword); err != nil { + if err := CredentialService.Decrypt(&credential, oldPassword); err != nil { return err } - if err := service.CredentialService.Encrypt(&credential, newPassword); err != nil { + if err := CredentialService.Encrypt(&credential, newPassword); err != nil { return err } if err := repository.CredentialRepository.UpdateById(c, &credential, credential.ID); err != nil { @@ -89,17 +85,16 @@ func (cli Cli) ChangeEncryptionKey(oldEncryptionKey, newEncryptionKey string) er } for i := range assets { asset := assets[i] - if err := service.AssetService.Decrypt(&asset, oldPassword); err != nil { + if err := AssetService.Decrypt(&asset, oldPassword); err != nil { return err } - if err := service.AssetService.Encrypt(&asset, newPassword); err != nil { + if err := AssetService.Encrypt(&asset, newPassword); err != nil { return err } if err := repository.AssetRepository.UpdateById(c, &asset, asset.ID); err != nil { return err } } - log.Infof("encryption key has being changed.") return nil }) } diff --git a/server/service/credential.go b/server/service/credential.go index efce296..59d88b0 100644 --- a/server/service/credential.go +++ b/server/service/credential.go @@ -4,13 +4,14 @@ import ( "context" "encoding/base64" - "next-terminal/server/model" - "next-terminal/server/utils" - "next-terminal/server/config" + "next-terminal/server/model" "next-terminal/server/repository" + "next-terminal/server/utils" ) +var CredentialService = new(credentialService) + type credentialService struct { } diff --git a/server/service/gateway.go b/server/service/gateway.go index 40390cf..42b3ff6 100644 --- a/server/service/gateway.go +++ b/server/service/gateway.go @@ -4,11 +4,12 @@ import ( "context" "next-terminal/server/global/gateway" - "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" ) +var GatewayService = new(gatewayService) + type gatewayService struct{} func (r gatewayService) GetGatewayById(accessGatewayId string) (g *gateway.Gateway, err error) { @@ -37,10 +38,8 @@ func (r gatewayService) LoadAll() error { } func (r gatewayService) ReLoad(m *model.AccessGateway) *gateway.Gateway { - log.Debugf("重建接入网关「%v」中...", m.Name) r.DisconnectById(m.ID) g := gateway.GlobalGatewayManager.Add(m) - log.Debugf("重建接入网关「%v」完成", m.Name) return g } diff --git a/server/service/job.go b/server/service/job.go index 9ada289..246d765 100644 --- a/server/service/job.go +++ b/server/service/job.go @@ -4,7 +4,8 @@ import ( "context" "errors" - "next-terminal/server/constant" + "next-terminal/server/common" + "next-terminal/server/common/nt" "next-terminal/server/global/cron" "next-terminal/server/log" "next-terminal/server/model" @@ -12,6 +13,8 @@ import ( "next-terminal/server/utils" ) +var JobService = new(jobService) + type jobService struct { } @@ -20,7 +23,7 @@ func (r jobService) ChangeStatusById(id, status string) error { if err != nil { return err } - if status == constant.JobStatusRunning { + if status == nt.JobStatusRunning { j, err := getJob(&job) if err != nil { return err @@ -29,29 +32,29 @@ func (r jobService) ChangeStatusById(id, status string) error { if err != nil { return err } - log.Debugf("开启计划任务「%v」,运行中计划任务数量「%v」", job.Name, len(cron.GlobalCron.Entries())) + log.Debug("开启计划任务", log.String("任务名称", job.Name), log.Int("运行中计划任务数量", len(cron.GlobalCron.Entries()))) - jobForUpdate := model.Job{ID: id, Status: constant.JobStatusRunning, CronJobId: int(entryID)} + jobForUpdate := model.Job{ID: id, Status: nt.JobStatusRunning, CronJobId: int(entryID)} return repository.JobRepository.UpdateById(context.TODO(), &jobForUpdate) } else { cron.GlobalCron.Remove(cron.JobId(job.CronJobId)) - log.Debugf("关闭计划任务「%v」,运行中计划任务数量「%v」", job.Name, len(cron.GlobalCron.Entries())) - jobForUpdate := model.Job{ID: id, Status: constant.JobStatusNotRunning} + log.Debug("关闭计划任务", log.String("任务名称", job.Name), log.Int("运行中计划任务数量", len(cron.GlobalCron.Entries()))) + jobForUpdate := model.Job{ID: id, Status: nt.JobStatusNotRunning} return repository.JobRepository.UpdateById(context.TODO(), &jobForUpdate) } } func getJob(j *model.Job) (job cron.Job, err error) { switch j.Func { - case constant.FuncCheckAssetStatusJob: + case nt.FuncCheckAssetStatusJob: job = CheckAssetStatusJob{ ID: j.ID, Mode: j.Mode, ResourceIds: j.ResourceIds, Metadata: j.Metadata, } - case constant.FuncShellJob: + case nt.FuncShellJob: job = ShellJob{ID: j.ID, Mode: j.Mode, ResourceIds: j.ResourceIds, Metadata: j.Metadata} default: return nil, errors.New("未识别的任务") @@ -78,25 +81,23 @@ func (r jobService) InitJob() error { job := model.Job{ ID: utils.UUID(), Name: "资产状态检测", - Func: constant.FuncCheckAssetStatusJob, + Func: nt.FuncCheckAssetStatusJob, Cron: "0 0/10 * * * ?", - Mode: constant.JobModeAll, - Status: constant.JobStatusRunning, - Created: utils.NowJsonTime(), - Updated: utils.NowJsonTime(), + Mode: nt.JobModeAll, + Status: nt.JobStatusRunning, + Created: common.NowJsonTime(), + Updated: common.NowJsonTime(), } if err := repository.JobRepository.Create(context.TODO(), &job); err != nil { return err } - log.Debugf("创建计划任务「%v」cron「%v」", job.Name, job.Cron) } else { for i := range jobs { - if jobs[i].Status == constant.JobStatusRunning { - err := r.ChangeStatusById(jobs[i].ID, constant.JobStatusRunning) + if jobs[i].Status == nt.JobStatusRunning { + err := r.ChangeStatusById(jobs[i].ID, nt.JobStatusRunning) if err != nil { return err } - log.Debugf("启动计划任务「%v」cron「%v」", jobs[i].Name, jobs[i].Cron) } } } @@ -105,7 +106,7 @@ func (r jobService) InitJob() error { func (r jobService) Create(ctx context.Context, o *model.Job) (err error) { - if o.Status == constant.JobStatusRunning { + if o.Status == nt.JobStatusRunning { j, err := getJob(o) if err != nil { return err @@ -125,8 +126,8 @@ func (r jobService) DeleteJobById(id string) error { if err != nil { return err } - if job.Status == constant.JobStatusRunning { - if err := r.ChangeStatusById(id, constant.JobStatusNotRunning); err != nil { + if job.Status == nt.JobStatusRunning { + if err := r.ChangeStatusById(id, nt.JobStatusNotRunning); err != nil { return err } } @@ -138,10 +139,10 @@ func (r jobService) UpdateById(m *model.Job) error { return err } - if err := r.ChangeStatusById(m.ID, constant.JobStatusNotRunning); err != nil { + if err := r.ChangeStatusById(m.ID, nt.JobStatusNotRunning); err != nil { return err } - if err := r.ChangeStatusById(m.ID, constant.JobStatusRunning); err != nil { + if err := r.ChangeStatusById(m.ID, nt.JobStatusRunning); err != nil { return err } return nil diff --git a/server/service/job_check_asset_status.go b/server/service/job_check_asset_status.go index 94ca101..b1a9262 100644 --- a/server/service/job_check_asset_status.go +++ b/server/service/job_check_asset_status.go @@ -3,10 +3,11 @@ package service import ( "context" "fmt" + "next-terminal/server/common" + "next-terminal/server/common/nt" "strings" "time" - "next-terminal/server/constant" "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" @@ -26,7 +27,7 @@ func (r CheckAssetStatusJob) Run() { } var assets []model.Asset - if r.Mode == constant.JobModeAll { + if r.Mode == nt.JobModeAll { assets, _ = repository.AssetRepository.FindAll(context.TODO()) } else { assets, _ = repository.AssetRepository.FindByIds(context.TODO(), strings.Split(r.ResourceIds, ",")) @@ -46,7 +47,8 @@ func (r CheckAssetStatusJob) Run() { ip = asset.IP port = asset.Port ) - active, err := AssetService.CheckStatus(asset.AccessGatewayId, ip, port) + + active, err := AssetService.CheckStatus(&asset, ip, port) elapsed := time.Since(t1) if err == nil { @@ -55,8 +57,12 @@ func (r CheckAssetStatusJob) Run() { msg = fmt.Sprintf("资产「%v」存活状态检测完成,存活「%v」,耗时「%v」,原因: %v", asset.Name, active, elapsed, err.Error()) } - _ = repository.AssetRepository.UpdateActiveById(context.TODO(), active, asset.ID) - log.Infof(msg) + var message = "" + if !active && err != nil { + message = err.Error() + } + _ = repository.AssetRepository.UpdateActiveById(context.TODO(), active, message, asset.ID) + log.Debug(msg) msgChan <- msg }() } @@ -70,7 +76,7 @@ func (r CheckAssetStatusJob) Run() { jobLog := model.JobLog{ ID: utils.UUID(), JobId: r.ID, - Timestamp: utils.NowJsonTime(), + Timestamp: common.NowJsonTime(), Message: message, } diff --git a/server/service/job_exec_shell.go b/server/service/job_exec_shell.go index d18caa2..f9883b4 100644 --- a/server/service/job_exec_shell.go +++ b/server/service/job_exec_shell.go @@ -5,14 +5,15 @@ import ( "encoding/json" "errors" "fmt" + "next-terminal/server/common" + "next-terminal/server/common/nt" + "next-terminal/server/common/term" "strings" "time" - "next-terminal/server/constant" "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" - "next-terminal/server/term" "next-terminal/server/utils" "gorm.io/gorm" @@ -35,7 +36,7 @@ func (r ShellJob) Run() { } var assets []model.Asset - if r.Mode == constant.JobModeAll { + if r.Mode == nt.JobModeAll { assets, _ = repository.AssetRepository.FindByProtocol(context.TODO(), "ssh") } else { assets, _ = repository.AssetRepository.FindByProtocolAndIds(context.TODO(), "ssh", strings.Split(r.ResourceIds, ",")) @@ -48,7 +49,7 @@ func (r ShellJob) Run() { var metadataShell MetadataShell err := json.Unmarshal([]byte(r.Metadata), &metadataShell) if err != nil { - log.Errorf("JSON数据解析失败 %v", err) + log.Error("JSON数据解析失败", log.String("err", err.Error())) return } @@ -76,7 +77,7 @@ func (r ShellJob) Run() { return } - if credential.Type == constant.Custom { + if credential.Type == nt.Custom { username = credential.Username password = credential.Password } else { @@ -97,10 +98,10 @@ func (r ShellJob) Run() { } else { msg = fmt.Sprintf("资产「%v」Shell执行失败,错误内容为:「%v」,耗时「%v」", asset.Name, err.Error(), elapsed) } - log.Infof(msg) + log.Debug(msg) } else { msg = fmt.Sprintf("资产「%v」Shell执行成功,返回值「%v」,耗时「%v」", asset.Name, result, elapsed) - log.Infof(msg) + log.Debug(msg) } msgChan <- msg @@ -116,7 +117,7 @@ func (r ShellJob) Run() { jobLog := model.JobLog{ ID: utils.UUID(), JobId: r.ID, - Timestamp: utils.NowJsonTime(), + Timestamp: common.NowJsonTime(), Message: message, } diff --git a/server/service/login_policy.go b/server/service/login_policy.go new file mode 100644 index 0000000..6548e62 --- /dev/null +++ b/server/service/login_policy.go @@ -0,0 +1,249 @@ +package service + +import ( + "context" + "errors" + "net" + "strings" + "time" + + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/utils" +) + +var LoginPolicyService = new(loginPolicyService) + +type loginPolicyService struct { + baseService +} + +func (s loginPolicyService) Create(c context.Context, m *model.LoginPolicy) error { + return s.Transaction(c, func(ctx context.Context) error { + if err := repository.LoginPolicyRepository.Create(ctx, m); err != nil { + return err + } + + if len(m.TimePeriod) > 0 { + for i := range m.TimePeriod { + m.TimePeriod[i].ID = utils.UUID() + m.TimePeriod[i].LoginPolicyId = m.ID + } + if err := repository.TimePeriodRepository.CreateInBatches(ctx, m.TimePeriod); err != nil { + return err + } + } + + return nil + }) +} + +func (s loginPolicyService) DeleteByIds(ctx context.Context, ids []string) error { + return s.Transaction(ctx, func(ctx context.Context) error { + for _, id := range ids { + if err := repository.LoginPolicyRepository.DeleteById(ctx, id); err != nil { + return err + } + if err := repository.LoginPolicyUserRefRepository.DeleteByLoginPolicyId(ctx, id); err != nil { + return err + } + if err := repository.TimePeriodRepository.DeleteByLoginPolicyId(ctx, id); err != nil { + return err + } + } + return nil + }) +} + +func (s loginPolicyService) UpdateById(ctx context.Context, m *model.LoginPolicy, id string) error { + return s.Transaction(ctx, func(ctx context.Context) error { + if err := repository.LoginPolicyRepository.UpdateById(ctx, m, id); err != nil { + return err + } + if err := repository.TimePeriodRepository.DeleteByLoginPolicyId(ctx, id); err != nil { + return err + } + if len(m.TimePeriod) > 0 { + for i := range m.TimePeriod { + m.TimePeriod[i].ID = utils.UUID() + m.TimePeriod[i].LoginPolicyId = m.ID + } + if err := repository.TimePeriodRepository.CreateInBatches(ctx, m.TimePeriod); err != nil { + return err + } + } + return nil + }) +} + +func (s loginPolicyService) FindById(ctx context.Context, id string) (*model.LoginPolicy, error) { + policy, err := repository.LoginPolicyRepository.FindById(ctx, id) + if err != nil { + return nil, err + } + timePeriods, err := repository.TimePeriodRepository.FindByLoginPolicyId(ctx, id) + if err != nil { + return nil, err + } + policy.TimePeriod = timePeriods + + return &policy, nil +} + +func (s loginPolicyService) Check(userId, clientIp string) error { + ctx := context.Background() + // 按照优先级倒排进行查询 + policies, err := repository.LoginPolicyRepository.FindByUserId(ctx, userId) + if err != nil { + return err + } + if len(policies) == 0 { + return nil + } + + if err := s.checkClientIp(policies, clientIp); err != nil { + return err + } + + if err := s.checkWeekDay(policies); err != nil { + return err + } + return nil +} + +func (s loginPolicyService) checkClientIp(policies []model.LoginPolicy, clientIp string) error { + var pass = true + // 优先级低的先进行判断 + for _, policy := range policies { + if !policy.Enabled { + continue + } + ipGroups := strings.Split(policy.IpGroup, ",") + for _, group := range ipGroups { + if strings.Contains(group, "/") { + // CIDR + _, ipNet, err := net.ParseCIDR(group) + if err != nil { + continue + } + if !ipNet.Contains(net.ParseIP(clientIp)) { + continue + } + } else if strings.Contains(group, "-") { + // 范围段 + split := strings.Split(group, "-") + if len(split) < 2 { + continue + } + start := split[0] + end := split[1] + intReqIP := utils.IpToInt(clientIp) + if intReqIP < utils.IpToInt(start) || intReqIP > utils.IpToInt(end) { + continue + } + } else { + // IP + if group != clientIp { + continue + } + } + pass = policy.Rule == "allow" + } + } + + if !pass { + return errors.New("非常抱歉,您当前使用的IP地址不允许进行登录。") + } + return nil +} + +func (s loginPolicyService) checkWeekDay(policies []model.LoginPolicy) error { + // 获取当前日期是星期几 + now := time.Now() + weekday := int(now.Weekday()) + hwc := now.Format("15:04") + + var timePass = true + + // 优先级低的先进行判断 + for _, policy := range policies { + if !policy.Enabled { + continue + } + timePeriods, err := repository.TimePeriodRepository.FindByLoginPolicyId(context.Background(), policy.ID) + if err != nil { + return err + } + + for _, period := range timePeriods { + if weekday != period.Key { + continue + } + if period.Value == "" { + continue + } + // 只处理对应天的数据 + times := strings.Split(period.Value, "、") + for _, t := range times { + timeRange := strings.Split(t, "~") + start := timeRange[0] + end := timeRange[1] + if (start == "00:00" && end == "00:00") || (start <= hwc && hwc <= end) { + timePass = policy.Rule == "allow" + } + } + } + } + + if !timePass { + return errors.New("非常抱歉,当前时段不允许您进行登录。") + } + + return nil +} + +func (s loginPolicyService) Bind(ctx context.Context, loginPolicyId string, items []model.LoginPolicyUserRef) error { + return s.Transaction(ctx, func(ctx context.Context) error { + var results []model.LoginPolicyUserRef + for i := range items { + if items[i].UserId == "" { + continue + } + exist, err := repository.UserRepository.ExistById(ctx, items[i].UserId) + if err != nil { + continue + } + if !exist { + continue + } + refId := utils.Sign([]string{items[i].UserId, loginPolicyId}) + if err := repository.LoginPolicyUserRefRepository.DeleteId(ctx, refId); err != nil { + return err + } + results = append(results, model.LoginPolicyUserRef{ + ID: refId, + UserId: items[i].UserId, + LoginPolicyId: loginPolicyId, + }) + } + if len(results) == 0 { + return nil + } + + return repository.LoginPolicyUserRefRepository.CreateInBatches(ctx, results) + }) +} + +func (s loginPolicyService) Unbind(ctx context.Context, loginPolicyId string, items []model.LoginPolicyUserRef) error { + return s.Transaction(ctx, func(ctx context.Context) error { + for i := range items { + if items[i].UserId == "" { + continue + } + if err := repository.LoginPolicyUserRefRepository.DeleteByLoginPolicyIdAndUserId(ctx, loginPolicyId, items[i].UserId); err != nil { + return err + } + } + return nil + }) +} diff --git a/server/service/mail.go b/server/service/mail.go index 291b3a2..5cc84a2 100644 --- a/server/service/mail.go +++ b/server/service/mail.go @@ -4,36 +4,39 @@ import ( "context" "fmt" "net/smtp" + "next-terminal/server/common/nt" - "next-terminal/server/constant" + "next-terminal/server/branding" "next-terminal/server/log" "next-terminal/server/repository" "github.com/jordan-wright/email" ) +var MailService = new(mailService) + type mailService struct { } func (r mailService) SendMail(to, subject, text string) { propertiesMap := repository.PropertyRepository.FindAllMap(context.TODO()) - host := propertiesMap[constant.MailHost] - port := propertiesMap[constant.MailPort] - username := propertiesMap[constant.MailUsername] - password := propertiesMap[constant.MailPassword] + host := propertiesMap[nt.MailHost] + port := propertiesMap[nt.MailPort] + username := propertiesMap[nt.MailUsername] + password := propertiesMap[nt.MailPassword] if host == "" || port == "" || username == "" || password == "" { - log.Debugf("邮箱信息不完整,跳过发送邮件。") + log.Warn("邮箱信息不完整,跳过发送邮件。") return } e := email.NewEmail() - e.From = fmt.Sprintf("%s <%s>", constant.AppName, username) + e.From = fmt.Sprintf("%s <%s>", branding.Name, username) e.To = []string{to} e.Subject = subject e.Text = []byte(text) err := e.Send(host+":"+port, smtp.PlainAuth("", username, password, host)) if err != nil { - log.Errorf("邮件发送失败: %v", err.Error()) + log.Error("邮件发送失败", log.String("err", err.Error())) } } diff --git a/server/service/menu.go b/server/service/menu.go new file mode 100644 index 0000000..1b42506 --- /dev/null +++ b/server/service/menu.go @@ -0,0 +1,77 @@ +package service + +import ( + "github.com/ucarion/urlpath" + "next-terminal/server/dto" + "next-terminal/server/model" +) + +var MenuService = &menuService{} + +type menuService struct { + menuPermissions map[string][]*urlpath.Path + treeMenus []*dto.TreeMenu +} + +func (s *menuService) Init() error { + + if s.menuPermissions == nil { + s.menuPermissions = make(map[string][]*urlpath.Path) + } + // 重载权限路径 + for _, menu := range DefaultMenu { + var permissions []*urlpath.Path + for _, permission := range menu.Permissions { + path := urlpath.New(permission.Path) + permissions = append(permissions, &path) + } + s.menuPermissions[menu.ID] = permissions + } + + // 重载菜单树缓存 + for _, menu := range DefaultMenu { + if menu.ParentId == "root" { + p := &dto.TreeMenu{ + Title: menu.Name, + Key: menu.ID, + Children: getChildren(DefaultMenu, menu.ID), + } + s.treeMenus = append(s.treeMenus, p) + } + } + return nil +} + +func getChildren(menus []*model.Menu, parentId string) []dto.TreeMenu { + var children []dto.TreeMenu + for _, menu := range menus { + if menu.ParentId == parentId { + p := dto.TreeMenu{ + Title: menu.Name, + Key: menu.ID, + Children: getChildren(DefaultMenu, menu.ID), + } + children = append(children, p) + } + } + return children +} + +func (s *menuService) GetPermissionByMenu(menu string) []*urlpath.Path { + item, ok := s.menuPermissions[menu] + if ok { + return item + } + return nil +} + +func (s *menuService) GetTreeMenus() []*dto.TreeMenu { + return s.treeMenus +} + +func (s *menuService) GetMenus() (items []string) { + for _, menu := range DefaultMenu { + items = append(items, menu.ID) + } + return items +} diff --git a/server/service/menu_default_data.go b/server/service/menu_default_data.go new file mode 100644 index 0000000..7073fb9 --- /dev/null +++ b/server/service/menu_default_data.go @@ -0,0 +1,408 @@ +package service + +import "next-terminal/server/model" + +var DefaultMenu = []*model.Menu{ + model.NewMenu("dashboard", "控制面板", "root", + model.NewPermission("GET", "/overview/counter"), + model.NewPermission("GET", "/overview/asset"), + model.NewPermission("GET", "/overview/date-counter"), + ), + + model.NewMenu("resource", "资源管理", "root"), + + model.NewMenu("asset", "资产管理", "resource", + model.NewPermission("GET", "/assets/paging"), + model.NewPermission("GET", "/tags"), + ), + model.NewMenu("asset-access", "接入", "asset", + model.NewPermission("POST", "/sessions"), + model.NewPermission("GET", "/sessions/:id/tunnel"), + model.NewPermission("GET", "/sessions/:id/ssh"), + model.NewPermission("GET", "/sessions/:id/stats"), + model.NewPermission("POST", "/sessions/:id/connect"), + model.NewPermission("POST", "/sessions/:id/resize"), + + model.NewPermission("POST", "/sessions/:id/ls"), + model.NewPermission("GET", "/sessions/:id/download"), + model.NewPermission("POST", "/sessions/:id/upload"), + model.NewPermission("POST", "/sessions/:id/edit"), + model.NewPermission("POST", "/sessions/:id/mkdir"), + model.NewPermission("POST", "/sessions/:id/rm"), + model.NewPermission("POST", "/sessions/:id/rename"), + ), + model.NewMenu("asset-add", "新建", "asset", + model.NewPermission("POST", "/assets"), + ), + model.NewMenu("asset-edit", "编辑", "asset", + model.NewPermission("GET", "/assets/:id"), + model.NewPermission("PUT", "/assets/:id"), + ), + model.NewMenu("asset-del", "删除", "asset", + model.NewPermission("DELETE", "/assets/:id"), + ), + model.NewMenu("asset-copy", "复制", "asset", + model.NewPermission("GET", "/assets/:id"), + model.NewPermission("POST", "/assets"), + ), + model.NewMenu("asset-conn-test", "连通性测试", "asset", + model.NewPermission("POST", "/assets/:id/tcping"), + ), + model.NewMenu("asset-import", "导入资产", "asset", + model.NewPermission("POST", "/assets/import"), + ), + model.NewMenu("asset-change-owner", "更换所有者", "asset", + model.NewPermission("GET", "/users"), + model.NewPermission("POST", "/assets/:id/change-owner"), + ), + model.NewMenu("asset-detail", "详情", "asset", + model.NewPermission("GET", "/assets/:id"), + ), + model.NewMenu("asset-authorised-user", "资产授权用户", "asset-detail", + model.NewPermission("GET", "/authorised/users/paging"), + model.NewPermission("GET", "/authorised/selected"), + model.NewPermission("GET", "/users"), + model.NewPermission("GET", "/strategies"), + model.NewPermission("GET", "/command-filters"), + model.NewPermission("POST", "/authorised/users"), + ), + model.NewMenu("asset-authorised-user-add", "增加授权", "asset-authorised-user", + model.NewPermission("POST", "/authorised/:id/users"), + ), + model.NewMenu("asset-authorised-user-del", "移除授权", "asset-authorised-user", + model.NewPermission("DELETE", "/authorised/:id"), + ), + model.NewMenu("asset-authorised-user-group", "资产授权用户组", "asset-detail", + model.NewPermission("GET", "/authorised/user-groups/paging"), + model.NewPermission("GET", "/authorised/selected"), + model.NewPermission("GET", "/user-groups"), + model.NewPermission("GET", "/strategies"), + model.NewPermission("GET", "/command-filters"), + model.NewPermission("POST", "/authorised/user-groups"), + ), + model.NewMenu("asset-authorised-user-group-add", "增加授权", "asset-authorised-user-group", + model.NewPermission("POST", "/authorised/:id/user-groups"), + ), + model.NewMenu("asset-authorised-user-group-del", "移除授权", "asset-authorised-user-group", + model.NewPermission("DELETE", "/authorised/:id"), + ), + + model.NewMenu("credential", "授权凭证", "resource", + model.NewPermission("GET", "/credentials/paging"), + ), + model.NewMenu("credential-add", "增加", "credential", + model.NewPermission("POST", "/credentials"), + ), + model.NewMenu("credential-del", "删除", "credential", + model.NewPermission("DELETE", "/credentials/:id"), + ), + model.NewMenu("credential-edit", "修改", "credential", + model.NewPermission("POST", "/credentials/:id"), + ), + + model.NewMenu("command", "动态指令", "resource", + model.NewPermission("GET", "/commands/paging"), + ), + model.NewMenu("command-add", "增加", "command", + model.NewPermission("POST", "/commands"), + ), + model.NewMenu("command-edit", "修改", "command", + model.NewPermission("PUT", "/commands/:id"), + ), + model.NewMenu("command-del", "删除", "command", + model.NewPermission("DELETE", "/commands/:id"), + ), + model.NewMenu("command-exec", "执行", "command", + model.NewPermission("GET", "/assets/paging"), + model.NewPermission("GET", "/tags"), + model.NewPermission("POST", "/sessions"), + model.NewPermission("GET", "/term"), + ), + model.NewMenu("command-change-owner", "更换所有者", "command", + model.NewPermission("GET", "/users"), + model.NewPermission("POST", "/commands/:id/change-owner"), + ), + + model.NewMenu("access-gateway", "接入网关", "resource", + model.NewPermission("GET", "/access-gateways/paging"), + ), + model.NewMenu("access-gateway-add", "增加", "access-gateway", + model.NewPermission("POST", "/access-gateways"), + ), + model.NewMenu("access-gateway-del", "删除", "access-gateway", + model.NewPermission("DELETE", "/access-gateways/:id"), + ), + model.NewMenu("access-gateway-edit", "修改", "access-gateway", + model.NewPermission("PUT", "/access-gateways/:id"), + ), + + model.NewMenu("session-audit", "会话审计", "root"), + + model.NewMenu("online-session", "在线会话", "session-audit", + model.NewPermission("GET", "/sessions/paging"), + ), + model.NewMenu("online-session-disconnect", "断开", "online-session", + model.NewPermission("GET", "/sessions/:id/disconnect"), + ), + model.NewMenu("online-session-monitor", "监控", "online-session", + model.NewPermission("GET", "/sessions/:id/tunnel-monitor"), + model.NewPermission("GET", "/sessions/:id/ssh-monitor"), + ), + + model.NewMenu("offline-session", "历史会话", "session-audit", + model.NewPermission("GET", "/sessions/paging"), + ), + model.NewMenu("offline-session-playback", "回放", "offline-session", + model.NewPermission("GET", "/sessions/:id/recording"), + ), + model.NewMenu("offline-session-del", "删除", "offline-session", + model.NewPermission("DELETE", "/sessions/:id"), + ), + model.NewMenu("offline-session-clear", "清空", "offline-session", + model.NewPermission("POST", "/sessions/clear"), + ), + model.NewMenu("offline-session-command", "命令记录", "offline-session", + model.NewPermission("GET", "/sessions/:id/commands/paging"), + ), + model.NewMenu("offline-session-reviewed", "标记已读", "offline-session"), // TODO + model.NewMenu("offline-session-unreviewed", "标记未读", "offline-session"), // TODO + model.NewMenu("offline-session-reviewed-all", "全部标记已读", "offline-session"), // TODO + + model.NewMenu("log-audit", "日志审计", "root"), + + model.NewMenu("login-log", "登录日志", "log-audit", + model.NewPermission("GET", "/login-logs/paging"), + ), + model.NewMenu("login-log-del", "删除", "login-log", + model.NewPermission("DELETE", "/login-logs/:id"), + ), + model.NewMenu("login-log-clear", "清空", "login-log", + model.NewPermission("POST", "/login-logs/clear"), + ), + + model.NewMenu("storage-log", "文件日志", "log-audit", + model.NewPermission("GET", "/storage-logs/paging"), + ), + + model.NewMenu("storage-log-del", "删除", "storage-log", + model.NewPermission("DELETE", "/storage-logs/:id"), + ), + model.NewMenu("storage-log-clear", "清空", "storage-log", + model.NewPermission("POST", "/storage-logs/clear"), + ), + + model.NewMenu("ops", "系统运维", "root"), + + model.NewMenu("job", "计划任务", "ops", + model.NewPermission("GET", "/jobs/paging"), + ), + model.NewMenu("job-add", "增加", "job", + model.NewPermission("POST", "/jobs"), + model.NewPermission("GET", "/assets/paging"), + ), + model.NewMenu("job-del", "删除", "job", + model.NewPermission("DELETE", "/jobs/:id"), + ), + model.NewMenu("job-edit", "修改", "job", + model.NewPermission("PUT", "/jobs/:id"), + model.NewPermission("GET", "/assets/paging"), + ), + model.NewMenu("job-run", "执行", "job", + model.NewPermission("POST", "/jobs/:id/exec"), + ), + model.NewMenu("job-change-status", "开启/关闭", "job"), + model.NewMenu("job-log", "日志", "job", + model.NewPermission("GET", "/jobs/:id/logs/paging"), + ), + + model.NewMenu("storage", "磁盘空间", "ops", + model.NewPermission("GET", "/storages/paging"), + ), + model.NewMenu("storage-add", "增加", "storage", + model.NewPermission("POST", "/storages"), + ), + model.NewMenu("storage-del", "删除", "storage", + model.NewPermission("DELETE", "/storages/:id"), + ), + model.NewMenu("storage-edit", "修改", "storage", + model.NewPermission("PUT", "/storages/:id"), + ), + model.NewMenu("storage-browse", "浏览", "storage", + model.NewPermission("GET", "/storages/:id/ls"), + ), + model.NewMenu("storage-browse-download", "下载", "storage-browse", + model.NewPermission("GET", "/storages/:id/download"), + ), + model.NewMenu("storage-browse-upload", "上传", "storage-browse", + model.NewPermission("POST", "/storages/:id/upload"), + ), + model.NewMenu("storage-browse-mkdir", "创建文件夹", "storage-browse", + model.NewPermission("POST", "/storages/:id/mkdir"), + ), + model.NewMenu("storage-browse-rm", "删除", "storage-browse", + model.NewPermission("POST", "/storages/:id/rm"), + ), + model.NewMenu("storage-browse-rename", "重命名", "storage-browse", + model.NewPermission("POST", "/storages/:id/rename"), + ), + model.NewMenu("storage-browse-edit", "编辑", "storage-browse", + model.NewPermission("POST", "/storages/:id/edit"), + ), + + model.NewMenu("monitoring", "系统监控", "ops", + model.NewPermission("GET", "/overview/ps"), + ), + + model.NewMenu("security", "安全策略", "root"), + + model.NewMenu("access-security", "访问安全", "security", + model.NewPermission("GET", "/securities/paging"), + ), + model.NewMenu("access-security-add", "增加", "access-security", + model.NewPermission("POST", "/securities"), + ), + model.NewMenu("access-security-del", "删除", "access-security", + model.NewPermission("DELETE", "/securities/:id"), + ), + model.NewMenu("access-security-edit", "修改", "access-security", + model.NewPermission("PUT", "/securities/:id"), + ), + + model.NewMenu("login-policy", "登录策略", "security", + model.NewPermission("GET", "/login-policies/paging"), + ), + model.NewMenu("login-policy-add", "增加", "login-policy", + model.NewPermission("POST", "/login-policies"), + ), + model.NewMenu("login-policy-del", "删除", "login-policy", + model.NewPermission("DELETE", "/login-policies/:id"), + ), + model.NewMenu("login-policy-edit", "修改", "login-policy", + model.NewPermission("PUT", "/login-policies/:id"), + ), + model.NewMenu("login-policy-detail", "详情", "login-policy", + model.NewPermission("GET", "/login-policies/:id"), + ), + model.NewMenu("login-policy-bind-user", "绑定用户", "login-policy-detail", + model.NewPermission("GET", "/login-policies/:id/users/paging"), + ), + model.NewMenu("login-policy-unbind-user", "解绑", "user-login-policy", + model.NewPermission("DELETE", "/authorised/:id"), + ), + + model.NewMenu("identity", "用户管理", "root"), + + model.NewMenu("user", "用户管理", "identity", + model.NewPermission("GET", "/users/paging"), + model.NewPermission("GET", "/roles"), + ), + model.NewMenu("user-add", "增加", "user", + model.NewPermission("POST", "/users"), + ), + model.NewMenu("user-del", "删除", "user", + model.NewPermission("DELETE", "/users/:id"), + ), + model.NewMenu("user-edit", "修改", "user", + model.NewPermission("GET", "/users/:id"), + model.NewPermission("PUT", "/users/:id"), + ), + model.NewMenu("user-change-password", "修改密码", "user", + model.NewPermission("POST", "/users/:id/change-password"), + ), + model.NewMenu("user-reset-totp", "重置双因素认证", "user", + model.NewPermission("POST", "/users/:id/reset-totp"), + ), + model.NewMenu("user-detail", "用户详情", "user", + model.NewPermission("GET", "/users/:id"), + model.NewPermission("GET", "/authorised/assets/paging"), + ), + model.NewMenu("user-authorised-asset", "授权的资产", "user-detail", + model.NewPermission("GET", "/authorised/assets/paging"), + ), + model.NewMenu("user-bind-asset", "授权", "user-authorised-asset", + model.NewPermission("GET", "/authorised/selected"), + model.NewPermission("GET", "/assets"), + model.NewPermission("GET", "/strategies"), + model.NewPermission("GET", "/command-filters"), + ), + model.NewMenu("user-unbind-asset", "移除", "user-authorised-asset", + model.NewPermission("DELETE", "/authorised/:id"), + ), + model.NewMenu("user-login-policy", "登录策略", "user-detail", + model.NewPermission("GET", "/login-policies/paging", "userId"), + ), + model.NewMenu("user-unbind-login-policy", "解绑", "user-login-policy", + model.NewPermission("DELETE", "/authorised/:id"), + ), + + model.NewMenu("role", "角色管理", "identity", + model.NewPermission("GET", "/roles/paging"), + ), + model.NewMenu("role-add", "增加", "role", + model.NewPermission("POST", "/roles"), + ), + model.NewMenu("role-del", "删除", "role", + model.NewPermission("DELETE", "/roles/:id"), + ), + model.NewMenu("role-edit", "修改", "role", + model.NewPermission("GET", "/roles/:id"), + model.NewPermission("PUT", "/roles/:id"), + ), + model.NewMenu("role-detail", "详情", "role", + model.NewPermission("GET", "/roles/:id"), + model.NewPermission("GET", "/menus"), + ), + + model.NewMenu("user-group", "用户组管理", "identity", + model.NewPermission("GET", "/user-groups/paging"), + ), + model.NewMenu("user-group-add", "增加", "user-group", + model.NewPermission("POST", "/user-groups"), + ), + model.NewMenu("user-group-del", "删除", "user-group", + model.NewPermission("DELETE", "/user-groups:/id"), + ), + model.NewMenu("user-group-edit", "修改", "user-group", + model.NewPermission("GET", "/user-groups/:id"), + model.NewPermission("PUT", "/user-groups/:id"), + ), + model.NewMenu("user-group-detail", "详情", "user-group", + model.NewPermission("GET", "/user-groups/:id"), + ), + model.NewMenu("user-group-authorised-asset", "授权的资产", "user-group", + model.NewPermission("GET", "/authorised/assets/paging"), + ), + model.NewMenu("user-group-bind-asset", "授权", "user-group-authorised-asset", + model.NewPermission("GET", "/authorised/selected"), + model.NewPermission("GET", "/assets"), + model.NewPermission("GET", "/strategies"), + ), + model.NewMenu("user-group-unbind-asset", "移除", "user-group-authorised-asset", + model.NewPermission("DELETE", "/authorised/:id"), + ), + + model.NewMenu("authorised", "授权策略", "root"), + + model.NewMenu("strategy", "授权策略", "authorised", + model.NewPermission("GET", "/strategies/paging"), + ), + model.NewMenu("strategy-add", "增加", "strategy", + model.NewPermission("POST", "/strategies"), + ), + model.NewMenu("strategy-edit", "修改", "strategy", + model.NewPermission("GET", "/strategies/:id"), + model.NewPermission("PUT", "/strategies/:id"), + ), + model.NewMenu("strategy-del", "删除", "strategy", + model.NewPermission("DELETE", "/strategies/:id"), + ), + model.NewMenu("strategy-detail", "详情", "strategy", + model.NewPermission("GET", "/strategies/:id"), + ), + + model.NewMenu("setting", "系统设置", "root", + model.NewPermission("GET", "/properties"), + model.NewPermission("PUT", "/properties"), + ), + model.NewMenu("info", "个人中心", "root"), +} diff --git a/server/service/property.go b/server/service/property.go index 1000112..94aad13 100644 --- a/server/service/property.go +++ b/server/service/property.go @@ -5,43 +5,45 @@ import ( "errors" "fmt" + "next-terminal/server/common/guacamole" "next-terminal/server/env" - "next-terminal/server/guacd" "next-terminal/server/model" "next-terminal/server/repository" "gorm.io/gorm" ) +var PropertyService = new(propertyService) + type propertyService struct { baseService } var deprecatedPropertyNames = []string{ - guacd.EnableDrive, - guacd.DrivePath, - guacd.DriveName, - guacd.DisableGlyphCaching, - guacd.CreateRecordingPath, + guacamole.EnableDrive, + guacamole.DrivePath, + guacamole.DriveName, + guacamole.DisableGlyphCaching, + guacamole.CreateRecordingPath, } var defaultProperties = map[string]string{ - guacd.EnableRecording: "true", - guacd.FontName: "menlo", - guacd.FontSize: "12", - guacd.ColorScheme: "gray-black", - guacd.EnableWallpaper: "true", - guacd.EnableTheming: "true", - guacd.EnableFontSmoothing: "true", - guacd.EnableFullWindowDrag: "true", - guacd.EnableDesktopComposition: "true", - guacd.EnableMenuAnimations: "true", - guacd.DisableBitmapCaching: "false", - guacd.DisableOffscreenCaching: "false", - "cron-log-saved-limit": "360", - "login-log-saved-limit": "360", - "session-saved-limit": "360", - "user-default-storage-size": "5120", + guacamole.EnableRecording: "true", + guacamole.FontName: "menlo", + guacamole.FontSize: "12", + guacamole.ColorScheme: "gray-black", + guacamole.EnableWallpaper: "true", + guacamole.EnableTheming: "true", + guacamole.EnableFontSmoothing: "true", + guacamole.EnableFullWindowDrag: "true", + guacamole.EnableDesktopComposition: "true", + guacamole.EnableMenuAnimations: "true", + guacamole.DisableBitmapCaching: "false", + guacamole.DisableOffscreenCaching: "false", + "cron-log-saved-limit": "360", + "login-log-saved-limit": "360", + "session-saved-limit": "360", + "user-default-storage-size": "5120", } func (service propertyService) InitProperties() error { diff --git a/server/service/role.go b/server/service/role.go new file mode 100644 index 0000000..4268555 --- /dev/null +++ b/server/service/role.go @@ -0,0 +1,268 @@ +package service + +import ( + "context" + "errors" + "sync" + + "next-terminal/server/common/sets" + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/utils" +) + +var RoleService = new(roleService) + +type roleService struct { + baseService + roleMenus sync.Map +} + +func (s *roleService) Init() error { + ctx := context.Background() + // 创建默认的角色 + if err := s.CreateDefaultRoles(); err != nil { + return err + } + + // 重载角色对应权限的缓存 + roles, err := repository.RoleRepository.FindAll(ctx) + if err != nil { + return err + } + for _, role := range roles { + refs, err := s.FindMenuByRoleId(ctx, role.ID) + if err != nil { + return err + } + var menus []string + for _, ref := range refs { + menus = append(menus, ref.MenuId) + } + s.setRoleMenus(role.ID, menus) + } + return nil +} + +func (s *roleService) mapRoleMenus(keys []string) []model.RoleMenuRef { + var roleMenus []model.RoleMenuRef + for _, key := range keys { + roleMenus = append(roleMenus, model.RoleMenuRef{ + MenuId: key, + Checked: true, + }) + } + return roleMenus +} + +func (s *roleService) Create(c context.Context, role *model.Role) error { + return s.Transaction(c, func(ctx context.Context) error { + if err := repository.RoleRepository.Create(ctx, role); err != nil { + return err + } + if err := s.createRolePermissionRefs(ctx, role); err != nil { + return err + } + return nil + }) +} + +func (s *roleService) createRolePermissionRefs(ctx context.Context, role *model.Role) error { + var menuIds = sets.NewStringSet() + var refIds = sets.NewStringSet() + var refs []*model.RoleMenuRef + for _, menu := range role.Menus { + refId := utils.Sign([]string{role.ID, menu.MenuId}) + if refIds.Contains(refId) { + continue + } + ref := &model.RoleMenuRef{ + ID: refId, + RoleId: role.ID, + MenuId: menu.MenuId, + Checked: menu.Checked, + } + refs = append(refs, ref) + refIds.Add(ref.ID) + menuIds.Add(menu.MenuId) + } + if err := repository.RoleMenuRefRepository.DeleteByIdIn(ctx, refIds.ToArray()); err != nil { + return err + } + if err := repository.RoleMenuRefRepository.CreateInBatches(ctx, refs); err != nil { + return err + } + s.setRoleMenus(role.ID, menuIds.ToArray()) + return nil +} + +func (s *roleService) UpdateById(c context.Context, role *model.Role, id string, force bool) error { + return s.Transaction(c, func(ctx context.Context) error { + dbRole, err := repository.RoleRepository.FindById(ctx, id) + if err != nil { + return err + } + if !force { + if !dbRole.Modifiable { + return errors.New("prohibit to modify " + dbRole.Name) + } + } + + if err := repository.RoleRepository.UpdateById(ctx, role, id); err != nil { + return err + } + if err := repository.RoleMenuRefRepository.DeleteByRoleId(ctx, id); err != nil { + return err + } + if err := s.createRolePermissionRefs(ctx, role); err != nil { + return err + } + return nil + }) +} + +func (s *roleService) DeleteByIds(c context.Context, ids []string, force bool) error { + return s.Transaction(c, func(ctx context.Context) error { + for i := range ids { + id := ids[i] + if !force { + role, err := repository.RoleRepository.FindById(ctx, id) + if err != nil { + return err + } + if !role.Deletable { + return errors.New("prohibit to delete " + role.Name) + } + } + + if err := repository.RoleRepository.DeleteById(ctx, id); err != nil { + return err + } + if err := repository.RoleMenuRefRepository.DeleteByRoleId(ctx, id); err != nil { + return err + } + if err := repository.UserRoleRefRepository.DeleteByRoleId(ctx, id); err != nil { + return err + } + // 删除缓存 + s.removeRole(id) + } + return nil + }) +} + +func (s *roleService) FindById(ctx context.Context, id string) (*model.Role, error) { + role, err := repository.RoleRepository.FindById(ctx, id) + if err != nil { + return nil, err + } + permissions, err := s.FindMenuByRoleId(ctx, id) + if err != nil { + return nil, err + } + for i := range permissions { + permissions[i].ID = "" + permissions[i].RoleId = "" + } + role.Menus = permissions + return &role, nil +} + +func (s *roleService) FindMenuByRoleId(ctx context.Context, id string) ([]model.RoleMenuRef, error) { + refs, err := repository.RoleMenuRefRepository.FindByRoleId(ctx, id) + if err != nil { + return nil, err + } + return refs, nil +} + +func (s *roleService) GetRolesByUserId(userId string) ([]string, error) { + refs, err := repository.UserRoleRefRepository.FindByUserId(context.Background(), userId) + if err != nil { + return nil, err + } + + var roles []string + for _, ref := range refs { + roles = append(roles, ref.RoleId) + } + return roles, nil +} + +func (s *roleService) GetMenuListByRole(role string) []string { + value, ok := s.roleMenus.Load(role) + if ok { + return value.([]string) + } + return nil +} + +func (s *roleService) setRoleMenus(role string, items []string) { + s.roleMenus.Store(role, items) +} + +func (s *roleService) removeRole(role string) { + s.roleMenus.Delete(role) +} + +func (s *roleService) CreateDefaultRoles() error { + var menus []string + for _, menu := range DefaultMenu { + menus = append(menus, menu.ID) + } + + var auditPermissions = []string{ + "dashboard", + "log-audit", + "online-session", + "offline-session", + "login-log", + "online-session-paging", + "online-session-disconnect", + "online-session-monitor", + "offline-session-paging", + "offline-session-playback", + "offline-session-del", + "offline-session-clear", + "offline-session-reviewed", + "offline-session-unreviewed", + "offline-session-reviewed-all", + "login-log-paging", + "login-log-del", + "login-log-clear", + } + + var securityPermissions = []string{ + "security", + "access-security-paging", + "access-security-add", + "access-security-edit", + "access-security-del", + } + + var DefaultRoles = []*model.Role{ + + model.NewRole("system-administrator", "系统管理员", "default", false, false, s.mapRoleMenus(menus)), + model.NewRole("audit-administrator", "审计管理员", "default", false, false, s.mapRoleMenus(auditPermissions)), + model.NewRole("security-administrator", "安全管理员", "default", false, false, s.mapRoleMenus(securityPermissions)), + } + + ctx := context.Background() + + for _, role := range DefaultRoles { + exists, err := repository.RoleRepository.ExistsById(ctx, role.ID) + if err != nil { + return err + } + if exists { + if err := s.UpdateById(ctx, role, role.ID, true); err != nil { + return err + } + continue + } + if err := s.Create(ctx, role); err != nil { + return err + } + } + return nil +} diff --git a/server/service/security.go b/server/service/security.go index 821b3cd..d79f439 100644 --- a/server/service/security.go +++ b/server/service/security.go @@ -7,6 +7,8 @@ import ( "next-terminal/server/repository" ) +var SecurityService = new(securityService) + type securityService struct{} func (service securityService) ReloadAccessSecurity() error { diff --git a/server/service/session.go b/server/service/session.go index c3cf10e..40f16fa 100644 --- a/server/service/session.go +++ b/server/service/session.go @@ -4,14 +4,17 @@ import ( "context" "encoding/base64" "errors" + "next-terminal/server/common/nt" + "os" + "path" "strconv" "sync" + "next-terminal/server/common" + "next-terminal/server/common/guacamole" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/env" "next-terminal/server/global/session" - "next-terminal/server/guacd" "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" @@ -20,12 +23,14 @@ import ( "gorm.io/gorm" ) +var SessionService = new(sessionService) + type sessionService struct { baseService } func (service sessionService) FixSessionState() error { - sessions, err := repository.SessionRepository.FindByStatus(context.TODO(), constant.Connected) + sessions, err := repository.SessionRepository.FindByStatus(context.TODO(), nt.Connected) if err != nil { return err } @@ -33,8 +38,8 @@ func (service sessionService) FixSessionState() error { if len(sessions) > 0 { for i := range sessions { s := model.Session{ - Status: constant.Disconnected, - DisconnectedTime: utils.NowJsonTime(), + Status: nt.Disconnected, + DisconnectedTime: common.NowJsonTime(), } _ = repository.SessionRepository.UpdateById(context.TODO(), &s, sessions[i].ID) @@ -48,7 +53,7 @@ func (service sessionService) EmptyPassword() error { } func (service sessionService) ClearOfflineSession() error { - sessions, err := repository.SessionRepository.FindByStatus(context.TODO(), constant.Disconnected) + sessions, err := repository.SessionRepository.FindByStatus(context.TODO(), nt.Disconnected) if err != nil { return err } @@ -56,7 +61,20 @@ func (service sessionService) ClearOfflineSession() error { for i := range sessions { sessionIds = append(sessionIds, sessions[i].ID) } - return repository.SessionRepository.DeleteByIds(context.TODO(), sessionIds) + return service.DeleteByIds(context.TODO(), sessionIds) +} + +func (service sessionService) DeleteByIds(c context.Context, sessionIds []string) error { + recordingPath := config.GlobalCfg.Guacd.Recording + for i := range sessionIds { + if err := os.RemoveAll(path.Join(recordingPath, sessionIds[i])); err != nil { + return err + } + if err := repository.SessionRepository.DeleteById(c, sessionIds[i]); err != nil { + return err + } + } + return nil } func (service sessionService) ReviewedAll() error { @@ -92,13 +110,13 @@ func (service sessionService) CloseSessionById(sessionId string, code int, reaso defer mutex.Unlock() nextSession := session.GlobalSessionManager.GetById(sessionId) if nextSession != nil { - log.Debugf("[%v] 会话关闭,原因:%v", sessionId, reason) + log.Debug("会话关闭", log.String("会话ID", sessionId), log.String("原因", reason)) service.WriteCloseMessage(nextSession, nextSession.Mode, code, reason) if nextSession.Observer != nil { nextSession.Observer.Range(func(key string, ob *session.Session) { service.WriteCloseMessage(ob, ob.Mode, code, reason) - log.Debugf("[%v] 强制踢出会话的观察者: %v", sessionId, ob.ID) + log.Debug("强制踢出会话的观察者", log.String("会话ID", sessionId)) }) } } @@ -109,12 +127,12 @@ func (service sessionService) CloseSessionById(sessionId string, code int, reaso func (service sessionService) WriteCloseMessage(sess *session.Session, mode string, code int, reason string) { switch mode { - case constant.Guacd: - err := guacd.NewInstruction("error", "", strconv.Itoa(code)) + case nt.Guacd: + err := guacamole.NewInstruction("error", "", strconv.Itoa(code)) _ = sess.WriteString(err.String()) - disconnect := guacd.NewInstruction("disconnect") + disconnect := guacamole.NewInstruction("disconnect") _ = sess.WriteString(disconnect.String()) - case constant.Native, constant.Terminal: + case nt.Native, nt.Terminal: msg := `0` + reason _ = sess.WriteString(msg) } @@ -128,11 +146,11 @@ func (service sessionService) DisDBSess(sessionId string, code int, reason strin return err } - if s.Status == constant.Disconnected { - return err + if s.Status == nt.Disconnected { + return nil } - if s.Status == constant.Connecting { + if s.Status == nt.Connecting { // 会话还未建立成功,无需保留数据 if err := repository.SessionRepository.DeleteById(c, sessionId); err != nil { return err @@ -142,8 +160,8 @@ func (service sessionService) DisDBSess(sessionId string, code int, reason strin ss := model.Session{} ss.ID = sessionId - ss.Status = constant.Disconnected - ss.DisconnectedTime = utils.NowJsonTime() + ss.Status = nt.Disconnected + ss.DisconnectedTime = common.NowJsonTime() ss.Code = code ss.Message = reason ss.Password = "-" @@ -206,6 +224,13 @@ func (service sessionService) Decrypt(item *model.Session) error { return nil } +func (service sessionService) renderBoolToStr(b *bool) string { + if *(b) == true { + return "1" + } + return "0" +} + func (service sessionService) Create(clientIp, assetId, mode string, user *model.User) (*model.Session, error) { asset, err := repository.AssetRepository.FindById(context.TODO(), assetId) if err != nil { @@ -223,16 +248,17 @@ func (service sessionService) Create(clientIp, assetId, mode string, user *model paste = "1" ) - if asset.Owner != user.ID && constant.TypeUser == user.Type { + if asset.Owner != user.ID && nt.TypeUser == user.Type { // 普通用户访问非自己创建的资产需要校验权限 - resourceSharers, err := repository.ResourceSharerRepository.FindByResourceIdAndUserId(context.TODO(), assetId, user.ID) + authorised, err := AuthorisedService.GetAuthorised(user.ID, assetId) if err != nil { return nil, err } - if len(resourceSharers) == 0 { + + if authorised == nil || authorised.ID == "" { return nil, errors.New("您没有权限访问此资产") } - strategyId := resourceSharers[0].StrategyId + strategyId := authorised.StrategyId if strategyId != "" { strategy, err := repository.StrategyRepository.FindById(context.TODO(), strategyId) if err != nil { @@ -240,26 +266,26 @@ func (service sessionService) Create(clientIp, assetId, mode string, user *model return nil, err } } else { - upload = strategy.Upload - download = strategy.Download - _delete = strategy.Delete - rename = strategy.Rename - edit = strategy.Edit - _copy = strategy.Copy - paste = strategy.Paste + upload = service.renderBoolToStr(strategy.Upload) + download = service.renderBoolToStr(strategy.Download) + _delete = service.renderBoolToStr(strategy.Delete) + rename = service.renderBoolToStr(strategy.Rename) + edit = service.renderBoolToStr(strategy.Edit) + _copy = service.renderBoolToStr(strategy.Copy) + paste = service.renderBoolToStr(strategy.Paste) } } } var storageId = "" - if constant.RDP == asset.Protocol { + if nt.RDP == asset.Protocol { attr, err := repository.AssetRepository.FindAssetAttrMapByAssetId(context.TODO(), assetId) if err != nil { return nil, err } - if "true" == attr[guacd.EnableDrive] { + if "true" == attr[guacamole.EnableDrive] { fileSystem = "1" - storageId = attr[guacd.DrivePath] + storageId = attr[guacamole.DrivePath] if storageId == "" { storageId = user.ID } @@ -302,7 +328,7 @@ func (service sessionService) Create(clientIp, assetId, mode string, user *model Protocol: asset.Protocol, IP: asset.IP, Port: asset.Port, - Status: constant.NoConnect, + Status: nt.NoConnect, ClientIP: clientIp, Mode: mode, FileSystem: fileSystem, @@ -317,7 +343,7 @@ func (service sessionService) Create(clientIp, assetId, mode string, user *model AccessGatewayId: asset.AccessGatewayId, Reviewed: false, } - if constant.Anonymous != user.Type { + if nt.Anonymous != user.Type { s.Creator = user.ID } @@ -327,7 +353,7 @@ func (service sessionService) Create(clientIp, assetId, mode string, user *model return nil, err } - if credential.Type == constant.Custom { + if credential.Type == nt.Custom { s.Username = credential.Username s.Password = credential.Password } else { diff --git a/server/service/storage.go b/server/service/storage.go index 0a099b4..f22745a 100644 --- a/server/service/storage.go +++ b/server/service/storage.go @@ -14,8 +14,8 @@ import ( "strconv" "strings" + "next-terminal/server/common" "next-terminal/server/config" - "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/utils" @@ -24,6 +24,8 @@ import ( "gorm.io/gorm" ) +var StorageService = new(storageService) + type storageService struct { } @@ -72,7 +74,6 @@ func (service storageService) InitStorages() error { if err := os.MkdirAll(storageDir, os.ModePerm); err != nil { return err } - log.Infof("创建storage:「%v」文件夹: %v", storage.Name, storageDir) } } return nil @@ -102,13 +103,12 @@ func (service storageService) CreateStorageByUser(c context.Context, user *model IsDefault: true, LimitSize: limitSize, Owner: user.ID, - Created: utils.NowJsonTime(), + Created: common.NowJsonTime(), } storageDir := path.Join(drivePath, storage.ID) if err := os.MkdirAll(storageDir, os.ModePerm); err != nil { return err } - log.Infof("创建storage:「%v」文件夹: %v", storage.Name, storageDir) err = repository.StorageRepository.Create(c, &storage) if err != nil { _ = os.RemoveAll(storageDir) @@ -118,13 +118,13 @@ func (service storageService) CreateStorageByUser(c context.Context, user *model } type File struct { - Name string `json:"name"` - Path string `json:"path"` - IsDir bool `json:"isDir"` - Mode string `json:"mode"` - IsLink bool `json:"isLink"` - ModTime utils.JsonTime `json:"modTime"` - Size int64 `json:"size"` + Name string `json:"name"` + Path string `json:"path"` + IsDir bool `json:"isDir"` + Mode string `json:"mode"` + IsLink bool `json:"isLink"` + ModTime common.JsonTime `json:"modTime"` + Size int64 `json:"size"` } func (service storageService) Ls(drivePath, remoteDir string) ([]File, error) { @@ -141,7 +141,7 @@ func (service storageService) Ls(drivePath, remoteDir string) ([]File, error) { IsDir: fileInfos[i].IsDir(), Mode: fileInfos[i].Mode().String(), IsLink: fileInfos[i].Mode()&os.ModeSymlink == os.ModeSymlink, - ModTime: utils.NewJsonTime(fileInfos[i].ModTime()), + ModTime: common.NewJsonTime(fileInfos[i].ModTime()), Size: fileInfos[i].Size(), } diff --git a/server/service/storage_log.go b/server/service/storage_log.go new file mode 100644 index 0000000..3e2c201 --- /dev/null +++ b/server/service/storage_log.go @@ -0,0 +1,29 @@ +package service + +import ( + "context" + + "next-terminal/server/common" + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/utils" +) + +var StorageLogService = new(storageLogService) + +type storageLogService struct { + baseService +} + +func (s storageLogService) Save(ctx context.Context, assetId, sessionId, userId, action, filename string) error { + storageLog := &model.StorageLog{ + ID: utils.UUID(), + AssetId: assetId, + SessionId: sessionId, + UserId: userId, + Action: action, + FileName: filename, + Created: common.NowJsonTime(), + } + return repository.StorageLogRepository.Create(ctx, storageLog) +} diff --git a/server/service/user.go b/server/service/user.go index b8c24ad..61d69a9 100644 --- a/server/service/user.go +++ b/server/service/user.go @@ -3,9 +3,11 @@ package service import ( "errors" "fmt" + "next-terminal/server/common/nt" "strings" - "next-terminal/server/constant" + "next-terminal/server/branding" + "next-terminal/server/common" "next-terminal/server/dto" "next-terminal/server/env" "next-terminal/server/global/cache" @@ -18,6 +20,10 @@ import ( "gorm.io/gorm" ) +const SuperAdminID = `abcdefghijklmnopqrstuvwxyz` + +var UserService = new(userService) + type userService struct { baseService } @@ -37,37 +43,52 @@ func (service userService) InitUser() (err error) { } user := model.User{ - ID: utils.UUID(), + ID: SuperAdminID, Username: "admin", Password: string(pass), Nickname: "超级管理员", - Type: constant.TypeAdmin, - Created: utils.NowJsonTime(), - Status: constant.StatusEnabled, + Type: nt.TypeAdmin, + Created: common.NowJsonTime(), + Status: nt.StatusEnabled, } if err := repository.UserRepository.Create(context.TODO(), &user); err != nil { return err } - log.Infof("初始用户创建成功,账号:「%v」密码:「%v」", user.Username, initPassword) } else { for i := range users { // 修正默认用户类型为管理员 if users[i].Type == "" { user := model.User{ - Type: constant.TypeAdmin, + Type: nt.TypeUser, ID: users[i].ID, } if err := repository.UserRepository.Update(context.TODO(), &user); err != nil { return err } - log.Infof("自动修正用户「%v」id「%v」类型为管理员", users[i].Nickname, users[i].ID) + } + + if users[i].Type == nt.TypeAdmin { + roles, err := RoleService.GetRolesByUserId(users[i].ID) + if err != nil { + return err + } + if len(roles) == 0 { + users[i].Roles = []string{"system-administrator"} + if err := service.saveUserRoles(context.Background(), users[i]); err != nil { + return err + } + } } } } return nil } +func (service userService) IsSuperAdmin(userId string) bool { + return SuperAdminID == userId +} + func (service userService) FixUserOnlineState() error { // 修正用户登录状态 onlineUsers, err := repository.UserRepository.FindOnlineUsers(context.TODO()) @@ -100,7 +121,7 @@ func (service userService) LogoutByToken(token string) (err error) { return err } - loginLogForUpdate := &model.LoginLog{LogoutTime: utils.NowJsonTime(), ID: token} + loginLogForUpdate := &model.LoginLog{LogoutTime: common.NowJsonTime(), ID: token} err = repository.LoginLogRepository.Update(context.TODO(), loginLogForUpdate) if err != nil { return err @@ -153,18 +174,15 @@ func (service userService) GetUserLoginToken(c context.Context, username string) func (service userService) OnEvicted(token string, value interface{}) { if strings.HasPrefix(token, "forever") { - log.Debugf("re gen forever token") } else { - log.Debugf("用户Token「%v」过期", token) err := service.LogoutByToken(token) if err != nil && !errors.Is(gorm.ErrRecordNotFound, err) { - log.Errorf("退出登录失败 %v", err) } } } func (service userService) UpdateStatusById(id string, status string) error { - if constant.StatusDisabled == status { + if nt.StatusDisabled == status { // 将该用户下线 if err := service.LogoutById(context.TODO(), id); err != nil { return err @@ -197,7 +215,7 @@ func (service userService) ReloadToken() error { authorization := dto.Authorization{ Token: token, - Type: constant.LoginToken, + Type: nt.LoginToken, Remember: loginLog.Remember, User: &user, } @@ -208,7 +226,7 @@ func (service userService) ReloadToken() error { } else { cache.TokenManager.Set(token, authorization, cache.NotRememberExpiration) } - log.Debugf("重新加载用户「%v」授权Token「%v」到缓存", user.Nickname, token) + log.Debug("重新加载用户授权Token", log.String("username", user.Nickname), log.String("token", token)) } return nil } @@ -232,19 +250,21 @@ func (service userService) CreateUser(user model.User) (err error) { user.Password = string(pass) user.ID = utils.UUID() - user.Created = utils.NowJsonTime() - user.Status = constant.StatusEnabled + user.Created = common.NowJsonTime() + user.Status = nt.StatusEnabled if err := repository.UserRepository.Create(c, &user); err != nil { return err } - err = StorageService.CreateStorageByUser(c, &user) - if err != nil { + if err := service.saveUserRoles(c, user); err != nil { + return err + } + if err := StorageService.CreateStorageByUser(c, &user); err != nil { return err } if user.Mail != "" { - subject := fmt.Sprintf("%s 注册通知", constant.AppName) + subject := fmt.Sprintf("%s 注册通知", branding.Name) text := fmt.Sprintf(`您好,%s。 管理员为你开通了账户。 账号:%s @@ -257,6 +277,20 @@ func (service userService) CreateUser(user model.User) (err error) { } +func (service userService) saveUserRoles(c context.Context, user model.User) error { + for _, role := range user.Roles { + ref := &model.UserRoleRef{ + ID: utils.UUID(), + UserId: user.ID, + RoleId: role, + } + if err := repository.UserRoleRefRepository.Create(c, ref); err != nil { + return err + } + } + return nil +} + func (service userService) DeleteUserById(userId string) error { user, err := repository.UserRepository.FindById(context.TODO(), userId) if err != nil { @@ -276,14 +310,17 @@ func (service userService) DeleteUserById(userId string) error { return err } // 删除用户与资产的关系 - if err := repository.ResourceSharerRepository.DeleteByUserId(c, userId); err != nil { + if err := repository.AuthorisedRepository.DeleteByUserId(c, userId); err != nil { return err } // 删除用户的默认磁盘空间 if err := StorageService.DeleteStorageById(c, userId, true); err != nil { return err } - + // 删除用户与角色的关系 + if err := repository.UserRoleRefRepository.DeleteByUserId(c, user.ID); err != nil { + return err + } // 删除用户 if err := repository.UserRepository.DeleteById(c, userId); err != nil { return err @@ -324,7 +361,7 @@ func (service userService) SaveLoginLog(clientIP, clientUserAgent string, userna Username: username, ClientIP: clientIP, ClientUserAgent: clientUserAgent, - LoginTime: utils.NowJsonTime(), + LoginTime: common.NowJsonTime(), Reason: reason, Remember: remember, } @@ -343,7 +380,7 @@ func (service userService) SaveLoginLog(clientIP, clientUserAgent string, userna } func (service userService) DeleteALlLdapUser(ctx context.Context) error { - return repository.UserRepository.DeleteBySource(ctx, constant.SourceLdap) + return repository.UserRepository.DeleteBySource(ctx, nt.SourceLdap) } func (service userService) UpdateUser(id string, user model.User) error { @@ -367,41 +404,83 @@ func (service userService) UpdateUser(id string, user model.User) error { } } + if err := repository.UserRoleRefRepository.DeleteByUserId(ctx, user.ID); err != nil { + return err + } + + if err := service.saveUserRoles(ctx, user); err != nil { + return err + } + + // 移除用户角色的缓存 + cache.UserRolesManager.Delete(id) + return repository.UserRepository.Update(ctx, &user) }) } -func (service userService) AddSharerResources(ctx context.Context, userGroupId, userId, strategyId, resourceType string, resourceIds []string) error { - if service.InTransaction(ctx) { - return service.addSharerResources(ctx, resourceIds, userGroupId, userId, strategyId, resourceType) - } else { - return env.GetDB().Transaction(func(tx *gorm.DB) error { - ctx2 := service.Context(tx) - return service.addSharerResources(ctx2, resourceIds, userGroupId, userId, strategyId, resourceType) - }) +func (service userService) FindById(id string) (*model.User, error) { + item, err := repository.UserRepository.FindById(context.TODO(), id) + if err != nil { + return nil, err } + + roles, err := RoleService.GetRolesByUserId(id) + if err != nil { + return nil, err + } + item.Roles = roles + + return &item, nil } -func (service userService) addSharerResources(ctx context.Context, resourceIds []string, userGroupId string, userId string, strategyId string, resourceType string) error { - for i := range resourceIds { - resourceId := resourceIds[i] - // 保证同一个资产只能分配给一个用户或者组 - id := utils.Sign([]string{resourceId, resourceType, userId, userGroupId}) - if err := repository.ResourceSharerRepository.DeleteById(ctx, id); err != nil { - return err +func (service userService) ResetTotp(ids []string) error { + return service.Transaction(context.Background(), func(ctx context.Context) error { + for _, id := range ids { + u := &model.User{ + TOTPSecret: "-", + ID: id, + } + if err := repository.UserRepository.Update(ctx, u); err != nil { + return err + } } - rs := &model.ResourceSharer{ - ID: id, - ResourceId: resourceId, - ResourceType: resourceType, - StrategyId: strategyId, - UserId: userId, - UserGroupId: userGroupId, - } - if err := repository.ResourceSharerRepository.AddSharerResource(ctx, rs); err != nil { - return err - } - } - return nil + return nil + }) +} + +func (service userService) ChangePassword(ids []string, password string) error { + + passwd, err := utils.Encoder.Encode([]byte(password)) + if err != nil { + return err + } + + return service.Transaction(context.Background(), func(ctx context.Context) error { + for _, id := range ids { + u := &model.User{ + Password: string(passwd), + ID: id, + } + if err := repository.UserRepository.Update(ctx, u); err != nil { + return err + } + + user, err := repository.UserRepository.FindById(ctx, id) + if err != nil { + return err + } + + if user.Mail != "" { + subject := "密码修改通知" + text := fmt.Sprintf(`您好,%s。 + 管理员已将你的密码修改为:%s。 +`, user.Username, password) + go MailService.SendMail(user.Mail, subject, text) + } + } + + return nil + }) } diff --git a/server/service/user_group.go b/server/service/user_group.go index f5a6817..44e7786 100644 --- a/server/service/user_group.go +++ b/server/service/user_group.go @@ -3,7 +3,8 @@ package service import ( "context" - "next-terminal/server/constant" + "next-terminal/server/common" + "next-terminal/server/common/nt" "next-terminal/server/env" "next-terminal/server/model" "next-terminal/server/repository" @@ -12,6 +13,8 @@ import ( "gorm.io/gorm" ) +var UserGroupService = new(userGroupService) + type userGroupService struct { baseService } @@ -28,7 +31,7 @@ func (service userGroupService) DeleteById(userGroupId string) error { return err } // 删除用户组与资产的关系 - if err := repository.ResourceSharerRepository.DeleteByUserGroupId(c, userGroupId); err != nil { + if err := repository.AuthorisedRepository.DeleteByUserGroupId(c, userGroupId); err != nil { return err } return nil @@ -42,43 +45,34 @@ func (service userGroupService) Create(ctx context.Context, name string, members } if exist { - return model.UserGroup{}, constant.ErrNameAlreadyUsed + return model.UserGroup{}, nt.ErrNameAlreadyUsed } userGroupId := utils.UUID() userGroup := model.UserGroup{ ID: userGroupId, - Created: utils.NowJsonTime(), + Created: common.NowJsonTime(), Name: name, } - if service.InTransaction(ctx) { - return userGroup, service.create(ctx, userGroup, members, userGroupId) - } else { - return userGroup, env.GetDB().Transaction(func(tx *gorm.DB) error { - c := service.Context(tx) - return service.create(c, userGroup, members, userGroupId) - }) - } -} - -func (service userGroupService) create(c context.Context, userGroup model.UserGroup, members []string, userGroupId string) error { - if err := repository.UserGroupRepository.Create(c, &userGroup); err != nil { - return err - } - if len(members) > 0 { - for _, member := range members { - userGroupMember := model.UserGroupMember{ - ID: utils.Sign([]string{userGroupId, member}), - UserId: member, - UserGroupId: userGroupId, - } - if err := repository.UserGroupMemberRepository.Create(c, &userGroupMember); err != nil { - return err + return userGroup, service.Transaction(ctx, func(ctx context.Context) error { + if err := repository.UserGroupRepository.Create(ctx, &userGroup); err != nil { + return err + } + if len(members) > 0 { + for _, member := range members { + userGroupMember := model.UserGroupMember{ + ID: utils.Sign([]string{userGroupId, member}), + UserId: member, + UserGroupId: userGroupId, + } + if err := repository.UserGroupMemberRepository.Create(ctx, &userGroupMember); err != nil { + return err + } } } - } - return nil + return nil + }) } func (service userGroupService) Update(userGroupId string, name string, members []string) (err error) { @@ -94,7 +88,7 @@ func (service userGroupService) Update(userGroupId string, name string, members } if exist { - return constant.ErrNameAlreadyUsed + return nt.ErrNameAlreadyUsed } } diff --git a/server/service/var.go b/server/service/var.go deleted file mode 100644 index ef4990c..0000000 --- a/server/service/var.go +++ /dev/null @@ -1,17 +0,0 @@ -package service - -var ( - AssetService = new(assetService) - BackupService = new(backupService) - CredentialService = new(credentialService) - GatewayService = new(gatewayService) - JobService = new(jobService) - MailService = new(mailService) - PropertyService = new(propertyService) - SecurityService = new(securityService) - SessionService = new(sessionService) - StorageService = new(storageService) - UserService = new(userService) - UserGroupService = new(userGroupService) - AccessTokenService = new(accessTokenService) -) diff --git a/server/service/worker.go b/server/service/worker.go new file mode 100644 index 0000000..2b11523 --- /dev/null +++ b/server/service/worker.go @@ -0,0 +1,84 @@ +package service + +import ( + "context" + "next-terminal/server/common/sets" + "next-terminal/server/model" + "next-terminal/server/repository" + "next-terminal/server/utils" +) + +var WorkerService = &workerService{} + +type workerService struct { +} + +func (s *workerService) FindMyAssetPaging(pageIndex, pageSize int, name, protocol, tags string, userId string, order, field string) (o []model.AssetForPage, total int64, err error) { + assetIdList, err := s.getAssetIdListByUserId(userId) + if err != nil { + return nil, 0, err + } + + items, total, err := repository.AssetRepository.FindMyAssets(context.Background(), pageIndex, pageSize, name, protocol, tags, assetIdList, order, field) + if err != nil { + return nil, 0, err + } + + return items, total, nil +} + +func (s *workerService) FindMyAsset(name, protocol, tags string, userId string, order, field string) (o []model.AssetForPage, err error) { + assetIdList, err := s.getAssetIdListByUserId(userId) + if err != nil { + return nil, err + } + + items, _, err := repository.AssetRepository.FindMyAssets(context.Background(), 1, 1000, name, protocol, tags, assetIdList, order, field) + if err != nil { + return nil, err + } + + return items, nil +} + +func (s *workerService) FindMyAssetTags(ctx context.Context, userId string) ([]string, error) { + assetIdList, err := s.getAssetIdListByUserId(userId) + if err != nil { + return nil, err + } + tags, err := repository.AssetRepository.FindMyAssetTags(ctx, assetIdList) + return tags, err +} + +func (s *workerService) getAssetIdListByUserId(userId string) ([]string, error) { + set := sets.NewStringSet() + authorisedByUser, err := repository.AuthorisedRepository.FindByUserId(context.Background(), userId) + if err != nil { + return nil, err + } + for _, authorised := range authorisedByUser { + set.Add(authorised.AssetId) + } + + userGroupIds, err := repository.UserGroupMemberRepository.FindUserGroupIdsByUserId(context.Background(), userId) + if err != nil { + return nil, err + } + authorisedByUserGroup, err := repository.AuthorisedRepository.FindByUserGroupIdIn(context.Background(), userGroupIds) + if err != nil { + return nil, err + } + for _, authorised := range authorisedByUserGroup { + set.Add(authorised.AssetId) + } + + return set.ToArray(), nil +} + +func (s *workerService) CheckPermission(assetId, userId string) (bool, error) { + assetIdList, err := s.getAssetIdListByUserId(userId) + if err != nil { + return false, err + } + return utils.Contains(assetIdList, assetId), nil +} diff --git a/server/sshd/sshd.go b/server/sshd/sshd.go index b9a0292..f9e8c93 100644 --- a/server/sshd/sshd.go +++ b/server/sshd/sshd.go @@ -6,10 +6,11 @@ import ( "fmt" "io" "net" + "next-terminal/server/common/nt" "strings" + "next-terminal/server/branding" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/global/security" "next-terminal/server/log" "next-terminal/server/repository" @@ -89,10 +90,10 @@ func (sshd sshd) connCallback(ctx ssh.Context, conn net.Conn) net.Conn { } } - if s.Rule == constant.AccessRuleAllow { + if s.Rule == nt.AccessRuleAllow { return conn } - if s.Rule == constant.AccessRuleReject { + if s.Rule == nt.AccessRuleReject { _, _ = conn.Write([]byte("your access request was denied :(\n")) return nil } @@ -101,20 +102,20 @@ func (sshd sshd) connCallback(ctx ssh.Context, conn net.Conn) net.Conn { return conn } -func (sshd sshd) sessionHandler(sess *ssh.Session) { +func (sshd sshd) sessionHandler(sess ssh.Session) { defer func() { - _ = (*sess).Close() + _ = sess.Close() }() - username := (*sess).User() - remoteAddr := strings.Split((*sess).RemoteAddr().String(), ":")[0] + username := sess.User() + remoteAddr := strings.Split(sess.RemoteAddr().String(), ":")[0] user, err := repository.UserRepository.FindByUsername(context.TODO(), username) if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { - _, _ = io.WriteString(*sess, "您输入的账户或密码不正确.\n") + _, _ = io.WriteString(sess, "您输入的账户或密码不正确.\n") } else { - _, _ = io.WriteString(*sess, err.Error()) + _, _ = io.WriteString(sess, err.Error()) } return } @@ -131,8 +132,8 @@ func (sshd sshd) sessionHandler(sess *ssh.Session) { func (sshd sshd) Serve() { ssh.Handle(func(s ssh.Session) { - _, _ = io.WriteString(s, fmt.Sprintf(constant.AppBanner, constant.AppVersion)) - sshd.sessionHandler(&s) + _, _ = io.WriteString(s, branding.Hi) + sshd.sessionHandler(s) }) fmt.Printf("⇨ sshd server started on %v\n", config.GlobalCfg.Sshd.Addr) diff --git a/server/sshd/ui.go b/server/sshd/ui.go index d879069..87e0623 100644 --- a/server/sshd/ui.go +++ b/server/sshd/ui.go @@ -9,17 +9,18 @@ import ( "strings" "next-terminal/server/api" + "next-terminal/server/branding" + "next-terminal/server/common" + "next-terminal/server/common/guacamole" + "next-terminal/server/common/nt" + "next-terminal/server/common/term" "next-terminal/server/config" - "next-terminal/server/constant" "next-terminal/server/global/cache" "next-terminal/server/global/session" - "next-terminal/server/guacd" "next-terminal/server/log" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/service" - "next-terminal/server/term" - "next-terminal/server/totp" "next-terminal/server/utils" "github.com/gliderlabs/ssh" @@ -29,12 +30,12 @@ import ( type Gui struct { } -func (gui Gui) MainUI(sess *ssh.Session, user model.User) { +func (gui Gui) MainUI(sess ssh.Session, user model.User) { prompt := promptui.Select{ - Label: "欢迎使用 Next Terminal,请选择您要使用的功能", + Label: "欢迎使用 " + branding.Name + ",请选择您要使用的功能", Items: []string{"我的资产", "退出系统"}, - Stdin: *sess, - Stdout: *sess, + Stdin: sess, + Stdout: sess, } MainLoop: @@ -53,8 +54,8 @@ MainLoop: } } -func (gui Gui) AssetUI(sess *ssh.Session, user model.User) { - assets, err := repository.AssetRepository.FindByProtocolAndUser(context.TODO(), constant.SSH, user) +func (gui Gui) AssetUI(sess ssh.Session, user model.User) { + assets, err := service.WorkerService.FindMyAsset("", nt.SSH, "", "", "", "") if err != nil { return } @@ -64,8 +65,8 @@ func (gui Gui) AssetUI(sess *ssh.Session, user model.User) { assets[i].Port = 0 } - quitItem := model.Asset{ID: "quit", Name: "返回上级菜单", Description: "这里是返回上级菜单的选项"} - assets = append([]model.Asset{quitItem}, assets...) + quitItem := model.AssetForPage{ID: "quit", Name: "返回上级菜单", Description: "这里是返回上级菜单的选项"} + assets = append([]model.AssetForPage{quitItem}, assets...) templates := &promptui.SelectTemplates{ Label: "{{ . }}?", @@ -94,8 +95,8 @@ func (gui Gui) AssetUI(sess *ssh.Session, user model.User) { Templates: templates, Size: 4, Searcher: searcher, - Stdin: *sess, - Stdout: *sess, + Stdin: sess, + Stdout: sess, } AssetUILoop: @@ -113,20 +114,20 @@ AssetUILoop: break AssetUILoop default: if err := gui.createSession(sess, chooseAssetId, user.ID); err != nil { - _, _ = io.WriteString(*sess, err.Error()+"\r\n") + _, _ = io.WriteString(sess, err.Error()+"\r\n") return } } } } -func (gui Gui) createSession(sess *ssh.Session, assetId, creator string) (err error) { +func (gui Gui) createSession(sess ssh.Session, assetId, creator string) (err error) { asset, err := repository.AssetRepository.FindById(context.TODO(), assetId) if err != nil { return err } - ClientIP := strings.Split((*sess).RemoteAddr().String(), ":")[0] + ClientIP := strings.Split((sess).RemoteAddr().String(), ":")[0] s := &model.Session{ ID: utils.UUID(), @@ -138,10 +139,10 @@ func (gui Gui) createSession(sess *ssh.Session, assetId, creator string) (err er Protocol: asset.Protocol, IP: asset.IP, Port: asset.Port, - Status: constant.NoConnect, + Status: nt.NoConnect, Creator: creator, ClientIP: ClientIP, - Mode: constant.Terminal, + Mode: nt.Terminal, Upload: "0", Download: "0", Delete: "0", @@ -156,7 +157,7 @@ func (gui Gui) createSession(sess *ssh.Session, assetId, creator string) (err er return nil } - if credential.Type == constant.Custom { + if credential.Type == nt.Custom { s.Username = credential.Username s.Password = credential.Password } else { @@ -173,7 +174,7 @@ func (gui Gui) createSession(sess *ssh.Session, assetId, creator string) (err er return gui.handleAccessAsset(sess, s.ID) } -func (gui Gui) handleAccessAsset(sess *ssh.Session, sessionId string) (err error) { +func (gui Gui) handleAccessAsset(sess ssh.Session, sessionId string) (err error) { s, err := service.SessionService.FindByIdAndDecrypt(context.TODO(), sessionId) if err != nil { return err @@ -203,13 +204,13 @@ func (gui Gui) handleAccessAsset(sess *ssh.Session, sessionId string) (err error port = exposedPort } - pty, winCh, isPty := (*sess).Pty() + pty, winCh, isPty := (sess).Pty() if !isPty { return errors.New("No PTY requested.\n") } recording := "" - property, err := repository.PropertyRepository.FindByName(context.TODO(), guacd.EnableRecording) + property, err := repository.PropertyRepository.FindByName(context.TODO(), guacamole.EnableRecording) if err == nil && property.Value == "true" { recording = path.Join(config.GlobalCfg.Guacd.Recording, sessionId, "recording.cast") } @@ -220,11 +221,11 @@ func (gui Gui) handleAccessAsset(sess *ssh.Session, sessionId string) (err error } sshSession := nextTerminal.SshSession - writer := NewWriter(sessionId, sess, nextTerminal.Recorder) + writer := NewWriter(sessionId, sess, nextTerminal) sshSession.Stdout = writer - sshSession.Stdin = *sess - sshSession.Stderr = *sess + sshSession.Stdin = writer + sshSession.Stderr = writer if err := nextTerminal.RequestPty(pty.Term, pty.Window.Height, pty.Window.Width); err != nil { return err @@ -235,11 +236,11 @@ func (gui Gui) handleAccessAsset(sess *ssh.Session, sessionId string) (err error } go func() { - log.Debugf("开启窗口大小监控...") + log.Debug("开启窗口大小监控...") for win := range winCh { _ = sshSession.WindowChange(win.Height, win.Width) } - log.Debugf("退出窗口大小监控") + log.Debug("退出窗口大小监控") // ==== 修改数据库中的会话状态为已断开,修复用户直接关闭窗口时会话状态不正确的问题 ==== service.SessionService.CloseSessionById(sessionId, api.Normal, "用户正常退出") // ==== 修改数据库中的会话状态为已断开,修复用户直接关闭窗口时会话状态不正确的问题 ==== @@ -248,9 +249,9 @@ func (gui Gui) handleAccessAsset(sess *ssh.Session, sessionId string) (err error // ==== 修改数据库中的会话状态为已连接 ==== sessionForUpdate := model.Session{} sessionForUpdate.ID = sessionId - sessionForUpdate.Status = constant.Connected + sessionForUpdate.Status = nt.Connected sessionForUpdate.Recording = recording - sessionForUpdate.ConnectedTime = utils.NowJsonTime() + sessionForUpdate.ConnectedTime = common.NowJsonTime() if sessionForUpdate.Recording == "" { // 未录屏时无需审计 @@ -282,7 +283,7 @@ func (gui Gui) handleAccessAsset(sess *ssh.Session, sessionId string) (err error return nil } -func (gui Gui) totpUI(sess *ssh.Session, user model.User, remoteAddr string, username string) { +func (gui Gui) totpUI(sess ssh.Session, user model.User, remoteAddr string, username string) { validate := func(input string) error { if len(input) < 6 { @@ -295,8 +296,8 @@ func (gui Gui) totpUI(sess *ssh.Session, user model.User, remoteAddr string, use Label: "请输入双因素认证授权码", Validate: validate, Mask: '*', - Stdin: *sess, - Stdout: *sess, + Stdin: sess, + Stdout: sess, } var success = false @@ -314,16 +315,16 @@ func (gui Gui) totpUI(sess *ssh.Session, user model.User, remoteAddr string, use } count := v.(int) if count >= 5 { - _, _ = io.WriteString(*sess, "登录失败次数过多,请等待5分钟后再试\r\n") + _, _ = io.WriteString(sess, "登录失败次数过多,请等待5分钟后再试\r\n") continue } - if !totp.Validate(result, user.TOTPSecret) { + if !common.Validate(result, user.TOTPSecret) { count++ println(count) cache.LoginFailedKeyManager.Set(loginFailCountKey, count, cache.LoginLockExpiration) // 保存登录日志 _ = service.UserService.SaveLoginLog(remoteAddr, "terminal", username, false, false, "", "双因素认证授权码不正确") - _, _ = io.WriteString(*sess, "您输入的双因素认证授权码不匹配\r\n") + _, _ = io.WriteString(sess, "您输入的双因素认证授权码不匹配\r\n") continue } success = true diff --git a/server/sshd/writer.go b/server/sshd/writer.go index 741e065..7e97f76 100644 --- a/server/sshd/writer.go +++ b/server/sshd/writer.go @@ -5,59 +5,71 @@ import ( "strings" "next-terminal/server/api" - "next-terminal/server/term" + "next-terminal/server/common/term" "github.com/gliderlabs/ssh" ) type Writer struct { - sessionId string - sess *ssh.Session - recorder *term.Recorder - rz bool - sz bool + sessionId string + frontSshSess ssh.Session + backTerm *term.NextTerminal + rz bool + sz bool } -func NewWriter(sessionId string, sess *ssh.Session, recorder *term.Recorder) *Writer { - return &Writer{sessionId: sessionId, sess: sess, recorder: recorder} +func NewWriter(sessionId string, frontSshSess ssh.Session, backSshSess *term.NextTerminal) *Writer { + return &Writer{ + sessionId: sessionId, + frontSshSess: frontSshSess, + backTerm: backSshSess, + } } func (w *Writer) Write(p []byte) (n int, err error) { - if w.recorder != nil { - s := string(p) - if !w.sz && !w.rz { - // rz的开头字符 - hexData := hex.EncodeToString(p) - if strings.Contains(hexData, "727a0d2a2a184230303030303030303030303030300d8a11") { - w.sz = true - } else if strings.Contains(hexData, "727a2077616974696e6720746f20726563656976652e2a2a184230313030303030303233626535300d8a11") { - w.rz = true - } + s := string(p) + if !w.sz && !w.rz { + // rz的开头字符 + hexData := hex.EncodeToString(p) + if strings.Contains(hexData, "727a0d2a2a184230303030303030303030303030300d8a11") { + w.sz = true + } else if strings.Contains(hexData, "727a2077616974696e6720746f20726563656976652e2a2a184230313030303030303233626535300d8a11") { + w.rz = true } + } - if w.sz { - // sz 会以 OO 结尾 - if "OO" == s { - w.sz = false - } - } else if w.rz { - // rz 最后会显示 Received /home/xxx - if strings.Contains(s, "Received") { - w.rz = false - // 把上传的文件名称也显示一下 - err := w.recorder.WriteData(s) + if w.sz { + // sz 会以 OO 结尾 + if "OO" == s { + w.sz = false + } + } else if w.rz { + // rz 最后会显示 Received /home/xxx + if strings.Contains(s, "Received") { + w.rz = false + // 把上传的文件名称也显示一下 + if w.backTerm.Recorder != nil { + err := w.backTerm.Recorder.WriteData(s) if err != nil { return 0, err } - api.SendObData(w.sessionId, s) - } - } else { - err := w.recorder.WriteData(s) - if err != nil { - return 0, err } api.SendObData(w.sessionId, s) } + } else { + if w.backTerm.Recorder != nil { + err := w.backTerm.Recorder.WriteData(s) + if err != nil { + return 0, err + } + } + api.SendObData(w.sessionId, s) } - return (*w.sess).Write(p) + + return w.frontSshSess.Write(p) +} + +func (w *Writer) Read(p []byte) (n int, err error) { + n, err = w.frontSshSess.Read(p) + return n, err } diff --git a/server/task/ticker.go b/server/task/ticker.go index 4034a20..e3dc8ff 100644 --- a/server/task/ticker.go +++ b/server/task/ticker.go @@ -2,12 +2,21 @@ package task import ( "context" + "github.com/shirou/gopsutil/v3/load" + "next-terminal/server/common/nt" + "next-terminal/server/service" + "next-terminal/server/utils" "strconv" "time" - "next-terminal/server/constant" "next-terminal/server/log" "next-terminal/server/repository" + + "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v3/disk" + "github.com/shirou/gopsutil/v3/mem" + "github.com/shirou/gopsutil/v3/net" + "next-terminal/server/global/stat" ) type Ticker struct { @@ -16,10 +25,6 @@ type Ticker struct { func NewTicker() *Ticker { return &Ticker{} } -func init() { - ticker := NewTicker() - ticker.SetupTicker() -} func (t *Ticker) SetupTicker() { @@ -40,25 +45,167 @@ func (t *Ticker) SetupTicker() { deleteOutTimeJobLog() } }() + + systemLoader := time.NewTicker(time.Second * 5) + go func() { + for range systemLoader.C { + err := systemLoad() + if err != nil { + log.Error("采集系统负载失败", log.NamedError("err", err)) + } + } + }() +} + +func systemLoad() error { + + beforeBytesRead, beforeBytesWrite, err := ioCounter() + if err != nil { + return err + } + + beforeBytesSent, beforeBytesRecv, err := netCounter() + if err != nil { + return err + } + + percent, err := cpu.Percent(time.Second, false) + if err != nil { + return err + } + + afterBytesSent, afterBytesRecv, err := netCounter() + if err != nil { + return err + } + + afterBytesRead, afterBytesWrite, err := ioCounter() + if err != nil { + return err + } + + now := time.Now().Format("15:04:05") + + usage, err := disk.Usage("/") + if err != nil { + return err + } + + stat.SystemLoad.Disk.Total = usage.Total + stat.SystemLoad.Disk.Used = usage.Used + stat.SystemLoad.Disk.Available = usage.Total - usage.Used + stat.SystemLoad.Disk.UsedPercent = float64(usage.Used) * 100 / float64(usage.Total) + + if stat.SystemLoad.Cpu.Count == 0 { + cpuCount, err := cpu.Counts(true) + if err != nil { + return err + } + stat.SystemLoad.Cpu.Count = cpuCount + + phyCpuCount, err := cpu.Counts(false) + if err != nil { + return err + } + stat.SystemLoad.Cpu.PhyCount = phyCpuCount + + infoStats, err := cpu.Info() + if err != nil { + return err + } + + for _, info := range infoStats { + stat.SystemLoad.Cpu.Info = append(stat.SystemLoad.Cpu.Info, &stat.CpuInfo{ + ModelName: info.ModelName, + CacheSize: info.CacheSize, + MHZ: info.Mhz, + }) + } + } + + stat.SystemLoad.Cpu.UsedPercent = percent[0] + + stat.SystemLoad.CpuStat = append(stat.SystemLoad.CpuStat, stat.NewStat(now, utils.Decimal(stat.SystemLoad.Cpu.UsedPercent))) + if len(stat.SystemLoad.CpuStat) > 30 { + stat.SystemLoad.CpuStat = stat.SystemLoad.CpuStat[1:] + } + + avgStat, err := load.Avg() + if err != nil { + return err + } + + stat.SystemLoad.LoadStat = &stat.LoadStat{ + Load1: avgStat.Load1, + Load5: avgStat.Load5, + Load15: avgStat.Load15, + Percent: avgStat.Load1 / float64(stat.SystemLoad.Cpu.Count), + } + + memoryStat, err := mem.VirtualMemory() + if err != nil { + return err + } + + stat.SystemLoad.Mem.Total = memoryStat.Total + stat.SystemLoad.Mem.Available = memoryStat.Available + stat.SystemLoad.Mem.Used = memoryStat.Used + stat.SystemLoad.Mem.UsedPercent = memoryStat.UsedPercent + + stat.SystemLoad.MemStat = append(stat.SystemLoad.MemStat, stat.NewStat(now, utils.Decimal(stat.SystemLoad.Mem.UsedPercent))) + if len(stat.SystemLoad.MemStat) > 30 { + stat.SystemLoad.MemStat = stat.SystemLoad.MemStat[1:] + } + + stat.SystemLoad.DiskIOStat = append(stat.SystemLoad.DiskIOStat, stat.NewIOStat(now, afterBytesRead-beforeBytesRead, afterBytesWrite-beforeBytesWrite)) + if len(stat.SystemLoad.DiskIOStat) > 30 { + stat.SystemLoad.DiskIOStat = stat.SystemLoad.DiskIOStat[1:] + } + + stat.SystemLoad.NetIOStat = append(stat.SystemLoad.NetIOStat, stat.NewIOStat(now, afterBytesRecv-beforeBytesRecv, afterBytesSent-beforeBytesSent)) + if len(stat.SystemLoad.NetIOStat) > 30 { + stat.SystemLoad.NetIOStat = stat.SystemLoad.NetIOStat[1:] + } + + return nil +} + +func ioCounter() (bytesRead, bytesWrite uint64, err error) { + diskIO, err := disk.IOCounters() + if err != nil { + return 0, 0, err + } + for _, v := range diskIO { + bytesRead += v.ReadBytes + bytesWrite += v.WriteBytes + } + + return bytesRead, bytesWrite, nil +} + +func netCounter() (bytesSent, bytesRecv uint64, err error) { + netIO, err := net.IOCounters(true) + if err != nil { + return 0, 0, err + } + for _, v := range netIO { + bytesSent += v.BytesSent + bytesRecv += v.BytesRecv + } + return bytesSent, bytesRecv, nil } func (t *Ticker) deleteUnUsedSession() { - sessions, err := repository.SessionRepository.FindByStatusIn(context.TODO(), []string{constant.NoConnect, constant.Connecting}) + sessions, err := repository.SessionRepository.FindByStatusIn(context.TODO(), []string{nt.NoConnect, nt.Connecting}) if err != nil { - log.Errorf("查询会话列表失败: %v", err.Error()) + log.Error("查询会话列表失败", log.NamedError("err", err)) return } if len(sessions) > 0 { now := time.Now() for i := range sessions { if now.Sub(sessions[i].ConnectedTime.Time) > time.Hour*1 { - err := repository.SessionRepository.DeleteById(context.TODO(), sessions[i].ID) - s := sessions[i].Username + "@" + sessions[i].IP + ":" + strconv.Itoa(sessions[i].Port) - if err != nil { - log.Errorf("会话「%v」id「%v」超过1小时未打开,删除失败: %v", s, sessions[i].ID, err.Error()) - } else { - log.Infof("会话「%v」id「%v」超过1小时未打开,已删除。", s, sessions[i].ID) - } + _ = repository.SessionRepository.DeleteById(context.TODO(), sessions[i].ID) } } } @@ -86,9 +233,9 @@ func deleteOutTimeSession() { for i := range sessions { ids = append(ids, sessions[i].ID) } - err := repository.SessionRepository.DeleteByIds(context.TODO(), ids) + err := service.SessionService.DeleteByIds(context.TODO(), ids) if err != nil { - log.Errorf("删除离线会话失败 %v", err) + log.Error("删除离线会话失败", log.NamedError("err", err)) } } } @@ -103,13 +250,13 @@ func deleteOutTimeLoginLog() { } limit, err := strconv.Atoi(property.Value) if err != nil { - log.Errorf("获取删除登录日志保留时常失败 %v", err) + log.Warn("获取删除登录日志保留时常失败", log.NamedError("err", err)) return } loginLogs, err := repository.LoginLogRepository.FindOutTimeLog(context.TODO(), limit) if err != nil { - log.Errorf("获取登录日志失败 %v", err) + log.Warn("获取登录日志失败", log.NamedError("err", err)) return } @@ -117,7 +264,7 @@ func deleteOutTimeLoginLog() { for i := range loginLogs { err := repository.LoginLogRepository.DeleteById(context.TODO(), loginLogs[i].ID) if err != nil { - log.Errorf("删除登录日志失败 %v", err) + log.Warn("删除登录日志失败", log.NamedError("err", err)) } } } @@ -145,7 +292,7 @@ func deleteOutTimeJobLog() { for i := range jobLogs { err := repository.JobLogRepository.DeleteById(context.TODO(), jobLogs[i].ID) if err != nil { - log.Errorf("删除计划日志失败 %v", err) + log.Error("删除计划日志失败", log.NamedError("err", err)) } } } diff --git a/server/utils/guacamole.go b/server/utils/guacamole.go deleted file mode 100644 index dc917cd..0000000 --- a/server/utils/guacamole.go +++ /dev/null @@ -1,19 +0,0 @@ -package utils - -import ( - "encoding/base64" - "strconv" - - "next-terminal/server/guacd" - - "github.com/gorilla/websocket" -) - -func Disconnect(ws *websocket.Conn, code int, reason string) { - // guacd 无法处理中文字符,所以进行了base64编码。 - encodeReason := base64.StdEncoding.EncodeToString([]byte(reason)) - err := guacd.NewInstruction("error", encodeReason, strconv.Itoa(code)) - _ = ws.WriteMessage(websocket.TextMessage, []byte(err.String())) - disconnect := guacd.NewInstruction("disconnect") - _ = ws.WriteMessage(websocket.TextMessage, []byte(disconnect.String())) -} diff --git a/server/utils/license.go b/server/utils/license.go new file mode 100644 index 0000000..2c2d25c --- /dev/null +++ b/server/utils/license.go @@ -0,0 +1,48 @@ +package utils + +import ( + "crypto" + "crypto/rand" + "crypto/rsa" + "crypto/sha512" + "crypto/x509" + "encoding/pem" +) + +// SignatureRSA rsa私钥签名 +func SignatureRSA(plainText []byte, rsaPrivateKey string) (signed []byte, err error) { + // 使用pem对读取的内容解码得到block + block, _ := pem.Decode([]byte(rsaPrivateKey)) + //x509将数据解析得到私钥结构体 + privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes) + if err != nil { + return nil, err + } + // 创建一个hash对象 + h := sha512.New() + _, _ = h.Write(plainText) + // 计算hash值 + hashText := h.Sum(nil) + // 使用rsa函数对散列值签名 + signed, err = rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA512, hashText) + if err != nil { + return + } + return signed, nil +} + +// VerifyRSA rsa签名认证 +func VerifyRSA(plainText, signText []byte, rsaPublicKey string) bool { + // pem解码得到block + block, _ := pem.Decode([]byte(rsaPublicKey)) + // x509解析得到接口 + publicKey, err := x509.ParsePKCS1PublicKey(block.Bytes) + if err != nil { + return false + } + // 对原始明文进行hash运算得到散列值 + hashText := sha512.Sum512(plainText) + // 签名认证 + err = rsa.VerifyPKCS1v15(publicKey, crypto.SHA512, hashText[:], signText) + return err == nil +} diff --git a/server/utils/reflect.go b/server/utils/reflect.go new file mode 100644 index 0000000..a2b1613 --- /dev/null +++ b/server/utils/reflect.go @@ -0,0 +1,7 @@ +package utils + +import "reflect" + +func GetName(repository interface{}) string { + return reflect.TypeOf(repository).Elem().Name() +} diff --git a/server/utils/ssh_tunnel.go b/server/utils/ssh_tunnel.go deleted file mode 100644 index d4b585b..0000000 --- a/server/utils/ssh_tunnel.go +++ /dev/null @@ -1 +0,0 @@ -package utils diff --git a/server/utils/util_test.go b/server/utils/util_test.go index 6b5a406..274db63 100644 --- a/server/utils/util_test.go +++ b/server/utils/util_test.go @@ -94,3 +94,7 @@ func TestAesEncryptCBC2(t *testing.T) { assert.NoError(t, err) assert.Equal(t, "3Tbnz0MYHQNTsN2L6QDGCJumbNFsQcmErrRz/KglYI/IDh88lsyOhVi7mgaAs/bjevvJa2F1JT7jUMLsz9/cpw==", base64.StdEncoding.EncodeToString(encryptedCBC)) } + +func TestUUID(t *testing.T) { + println(utils.UUID()) +} diff --git a/server/utils/utils.go b/server/utils/utils.go index 601c778..c617c31 100644 --- a/server/utils/utils.go +++ b/server/utils/utils.go @@ -27,18 +27,18 @@ import ( "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" - "github.com/gofrs/uuid" + "github.com/google/uuid" errors2 "github.com/pkg/errors" "github.com/sirupsen/logrus" "golang.org/x/crypto/pbkdf2" ) func UUID() string { - v4, _ := uuid.NewV4() - return v4.String() + return uuid.New().String() } func LongUUID() string { + uuid.New() longUUID := strings.Join([]string{UUID(), UUID(), UUID(), UUID()}, "") return strings.ReplaceAll(longUUID, "-", "") } @@ -56,7 +56,7 @@ func Tcping(ip string, port int) (bool, error) { } else { address = fmt.Sprintf("[%s]:%s", ip, strPort) } - if conn, err = net.DialTimeout("tcp", address, 5*time.Second); err != nil { + if conn, err = net.DialTimeout("tcp", address, 15*time.Second); err != nil { return false, err } defer func() { @@ -346,6 +346,11 @@ func Utf8ToGbk(s []byte) ([]byte, error) { return d, nil } +func Decimal(value float64) float64 { + value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", value), 64) + return value +} + // GetAvailablePort 获取可用端口 func GetAvailablePort() (int, error) { addr, err := net.ResolveTCPAddr("tcp", "localhost:0") diff --git a/web/config-overrides.js b/web/config-overrides.js new file mode 100644 index 0000000..89a9942 --- /dev/null +++ b/web/config-overrides.js @@ -0,0 +1,8 @@ +const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); + +module.exports = function override(config, env) { + config.plugins.push(new MonacoWebpackPlugin({ + languages: ['json'] + })); + return config; +} \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json deleted file mode 100644 index 3454f7f..0000000 --- a/web/package-lock.json +++ /dev/null @@ -1,40539 +0,0 @@ -{ - "name": "next-terminal", - "version": "2.0.5", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "next-terminal", - "version": "2.0.5", - "dependencies": { - "@ant-design/charts": "^1.2.13", - "@ant-design/icons": "^4.6.4", - "antd": "^4.16.13", - "axios": "^0.21.4", - "dayjs": "^1.10.4", - "guacamole-common-js": "^1.3.0", - "js-base64": "^3.7.2", - "qs": "^6.9.4", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "react-draggable": "^4.4.3", - "react-monaco-editor": "0.40.0", - "react-router": "^5.2.0", - "react-router-dom": "^5.2.0", - "react-scripts": "^4.0.0", - "react-tsparticles": "^1.37.5", - "xterm": "^4.9.0", - "xterm-addon-fit": "^0.4.0", - "xterm-addon-web-links": "^0.4.0" - } - }, - "node_modules/@ant-design/charts": { - "version": "1.2.14", - "resolved": "https://registry.npmmirror.com/@ant-design/charts/download/@ant-design/charts-1.2.14.tgz", - "integrity": "sha1-8vbdUEh5nViKQaG9KZIbQO8SEEs=", - "license": "MIT", - "dependencies": { - "@antv/g2plot": "^2.2.11", - "@antv/g6": "4.2.4", - "@antv/util": "^2.0.9", - "react-content-loader": "^5.0.4" - }, - "peerDependencies": { - "react": ">=16.8.4", - "react-dom": ">=16.8.4" - } - }, - "node_modules/@ant-design/charts/node_modules/react-content-loader": { - "version": "5.1.4", - "resolved": "https://registry.npm.taobao.org/react-content-loader/download/react-content-loader-5.1.4.tgz?cache=0&sync_timestamp=1617698326524&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-content-loader%2Fdownload%2Freact-content-loader-5.1.4.tgz", - "integrity": "sha1-hUuv5EFd2d4HF0YhN1vDCO3Q67U=", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, - "node_modules/@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-6.0.0.tgz?cache=0&sync_timestamp=1612935636044&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Fcolors%2Fdownload%2F%40ant-design%2Fcolors-6.0.0.tgz", - "integrity": "sha1-m5NmJXz/zEfbQrnQIDu1ksE8Apg=", - "dependencies": { - "@ctrl/tinycolor": "^3.4.0" - } - }, - "node_modules/@ant-design/icons": { - "version": "4.7.0", - "resolved": "https://registry.npmmirror.com/@ant-design/icons/download/@ant-design/icons-4.7.0.tgz?cache=0&sync_timestamp=1632478732118&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40ant-design%2Ficons%2Fdownload%2F%40ant-design%2Ficons-4.7.0.tgz", - "integrity": "sha1-jDy+ClVrqSr13H0ecMCyW1F5rw8=", - "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1", - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-util": "^5.9.4" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/download/@ant-design/icons-svg-4.2.1.tgz?cache=0&sync_timestamp=1632478258053&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40ant-design%2Ficons-svg%2Fdownload%2F%40ant-design%2Ficons-svg-4.2.1.tgz", - "integrity": "sha1-hjDajrRHGkqr2u19H/apfcss8Fo=" - }, - "node_modules/@ant-design/icons/node_modules/rc-util": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/rc-util/download/rc-util-5.15.0.tgz", - "integrity": "sha512-8RI8sjOCXD3FhD3dzQNBQetpGol6BBd3sHQ/8jSGk9NPT0CH3JGtBfPODnASyE7AdDpCFQMOmgcp9CBs3S/1hg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@antv/adjust": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.2.3.tgz", - "integrity": "sha1-w4hKaAwyZMwSXX8qtTmOihwLlAE=", - "dependencies": { - "@antv/util": "~2.0.0", - "tslib": "^1.10.0" - } - }, - "node_modules/@antv/adjust/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" - }, - "node_modules/@antv/algorithm": { - "version": "0.1.13", - "resolved": "https://registry.npmmirror.com/@antv/algorithm/download/@antv/algorithm-0.1.13.tgz?cache=0&sync_timestamp=1635393060420&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Falgorithm%2Fdownload%2F%40antv%2Falgorithm-0.1.13.tgz", - "integrity": "sha1-9iWNmZxlgknbxPq43zs7d02ygsA=", - "license": "MIT", - "dependencies": { - "@antv/util": "^2.0.13", - "tslib": "^2.0.0" - } - }, - "node_modules/@antv/attr": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.3.2.tgz", - "integrity": "sha1-5YZrZIcMYvOpwluKYfZUuiv9oFE=", - "dependencies": { - "@antv/color-util": "^2.0.1", - "@antv/util": "~2.0.0", - "tslib": "^1.10.0" - } - }, - "node_modules/@antv/attr/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" - }, - "node_modules/@antv/color-util": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/color-util/download/@antv/color-util-2.0.6.tgz?cache=0&sync_timestamp=1636459510771&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fcolor-util%2Fdownload%2F%40antv%2Fcolor-util-2.0.6.tgz", - "integrity": "sha1-XhKbuc4/K5MJtSECs9ySlDDMwBY=", - "dependencies": { - "@antv/util": "^2.0.9", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/component": { - "version": "0.8.20", - "resolved": "https://registry.npmmirror.com/@antv/component/download/@antv/component-0.8.20.tgz", - "integrity": "sha1-l/Daoi83aKNd4zzQ2cWP8yzspBc=", - "license": "MIT", - "dependencies": { - "@antv/color-util": "^2.0.3", - "@antv/dom-util": "~2.0.1", - "@antv/g-base": "0.5.6", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.7", - "@antv/scale": "~0.3.1", - "@antv/util": "~2.0.0", - "fecha": "~4.2.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/component/node_modules/@antv/g-base": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/@antv/g-base/download/@antv/g-base-0.5.6.tgz", - "integrity": "sha1-2W2l+/bF+LBzBydR4V5e7HCzk/w=", - "dependencies": { - "@antv/event-emitter": "^0.1.1", - "@antv/g-math": "^0.1.6", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "@types/d3-timer": "^2.0.0", - "d3-ease": "^1.0.5", - "d3-interpolate": "^1.3.2", - "d3-timer": "^1.0.9", - "detect-browser": "^5.1.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/coord": { - "version": "0.3.1", - "resolved": "https://registry.nlark.com/@antv/coord/download/@antv/coord-0.3.1.tgz?cache=0&sync_timestamp=1622725983384&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fcoord%2Fdownload%2F%40antv%2Fcoord-0.3.1.tgz", - "integrity": "sha1-mC4mHYoeBqGY61GOp6zCDth1oBk=", - "dependencies": { - "@antv/matrix-util": "^3.1.0-beta.2", - "@antv/util": "~2.0.12", - "tslib": "^2.1.0" - } - }, - "node_modules/@antv/dom-util": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/@antv/dom-util/download/@antv/dom-util-2.0.3.tgz", - "integrity": "sha1-y9FYsciODopNhlhxpZabEZBVT/U=", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/event-emitter": { - "version": "0.1.2", - "resolved": "https://registry.nlark.com/@antv/event-emitter/download/@antv/event-emitter-0.1.2.tgz", - "integrity": "sha1-oXt8uG5tBxiA3Gv7IydW+IYk7Lw=" - }, - "node_modules/@antv/g-base": { - "version": "0.5.9", - "resolved": "https://registry.npmmirror.com/@antv/g-base/download/@antv/g-base-0.5.9.tgz", - "integrity": "sha1-WNDhHYUVetoUCPvfJPT0aPQOWc0=", - "dependencies": { - "@antv/event-emitter": "^0.1.1", - "@antv/g-math": "^0.1.6", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "@types/d3-timer": "^2.0.0", - "d3-ease": "^1.0.5", - "d3-interpolate": "^1.3.2", - "d3-timer": "^1.0.9", - "detect-browser": "^5.1.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/g-canvas": { - "version": "0.5.12", - "resolved": "https://registry.npmmirror.com/@antv/g-canvas/download/@antv/g-canvas-0.5.12.tgz?cache=0&sync_timestamp=1636710672518&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg-canvas%2Fdownload%2F%40antv%2Fg-canvas-0.5.12.tgz", - "integrity": "sha1-L8QNztaZTwdPIjQeZdVve71Sdfc=", - "dependencies": { - "@antv/g-base": "^0.5.3", - "@antv/g-math": "^0.1.6", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/g-math": { - "version": "0.1.7", - "resolved": "https://registry.npmmirror.com/@antv/g-math/download/@antv/g-math-0.1.7.tgz?cache=0&sync_timestamp=1636705916424&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg-math%2Fdownload%2F%40antv%2Fg-math-0.1.7.tgz", - "integrity": "sha1-bsJ2kmn3zLZ+WBQNVznfdARswE4=", - "dependencies": { - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0" - } - }, - "node_modules/@antv/g-svg": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/@antv/g-svg/download/@antv/g-svg-0.5.6.tgz", - "integrity": "sha1-cLL6mAxDGzmtPFtLU+NqHWCVfWU=", - "dependencies": { - "@antv/g-base": "^0.5.3", - "@antv/g-math": "^0.1.6", - "@antv/util": "~2.0.0", - "detect-browser": "^5.0.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/g-webgpu": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/@antv/g-webgpu/download/@antv/g-webgpu-0.5.5.tgz", - "integrity": "sha1-AD1BFFPtA+fdkWvWxtsmorU9GZE=", - "dependencies": { - "@antv/g-webgpu-core": "^0.5.5", - "@antv/g-webgpu-engine": "^0.5.5", - "@webgpu/types": "^0.0.31", - "gl-matrix": "^3.1.0", - "gl-vec2": "^1.3.0", - "hammerjs": "^2.0.8", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "polyline-miter-util": "^1.0.1", - "polyline-normals": "^2.0.2", - "probe.gl": "^3.1.1", - "reflect-metadata": "^0.1.13" - } - }, - "node_modules/@antv/g-webgpu-core": { - "version": "0.5.6", - "resolved": "https://registry.npm.taobao.org/@antv/g-webgpu-core/download/@antv/g-webgpu-core-0.5.6.tgz?cache=0&sync_timestamp=1615774782970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fg-webgpu-core%2Fdownload%2F%40antv%2Fg-webgpu-core-0.5.6.tgz", - "integrity": "sha1-aM3gtdC0S1eUNxwlI2gvRzTaPGw=", - "dependencies": { - "eventemitter3": "^4.0.0", - "gl-matrix": "^3.1.0", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "probe.gl": "^3.1.1", - "reflect-metadata": "^0.1.13" - } - }, - "node_modules/@antv/g-webgpu-engine": { - "version": "0.5.6", - "resolved": "https://registry.npm.taobao.org/@antv/g-webgpu-engine/download/@antv/g-webgpu-engine-0.5.6.tgz", - "integrity": "sha1-vnwb+OSxgi1yowLWKANDReBXe70=", - "dependencies": { - "@antv/g-webgpu-core": "^0.5.6", - "@webgpu/glslang": "^0.0.15", - "@webgpu/types": "^0.0.31", - "gl-matrix": "^3.1.0", - "hammerjs": "^2.0.8", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "probe.gl": "^3.1.1", - "reflect-metadata": "^0.1.13", - "regl": "^1.3.11" - } - }, - "node_modules/@antv/g2": { - "version": "4.1.34", - "resolved": "https://registry.npmmirror.com/@antv/g2/download/@antv/g2-4.1.34.tgz", - "integrity": "sha1-aqcaCcJAuSkUvGZvESMQqrwOPhY=", - "license": "MIT", - "dependencies": { - "@antv/adjust": "^0.2.1", - "@antv/attr": "^0.3.1", - "@antv/color-util": "^2.0.2", - "@antv/component": "^0.8.19", - "@antv/coord": "^0.3.0", - "@antv/dom-util": "^2.0.2", - "@antv/event-emitter": "~0.1.0", - "@antv/g-base": "~0.5.6", - "@antv/g-canvas": "~0.5.10", - "@antv/g-svg": "~0.5.6", - "@antv/matrix-util": "^3.1.0-beta.3", - "@antv/path-util": "^2.0.15", - "@antv/scale": "^0.3.14", - "@antv/util": "~2.0.5", - "tslib": "^2.0.0" - } - }, - "node_modules/@antv/g2plot": { - "version": "2.3.40", - "resolved": "https://registry.npmmirror.com/@antv/g2plot/download/@antv/g2plot-2.3.40.tgz", - "integrity": "sha512-A6BqXoEZObauzBlVqOo15fS4PKKzZl/bJAvF4EdraUM5LhwU1yjGinMrPNi1AZ+fIsAwP6NhAFWmpd7TC+bLhw==", - "dependencies": { - "@antv/event-emitter": "^0.1.2", - "@antv/g2": "^4.1.26", - "d3-hierarchy": "^2.0.0", - "d3-regression": "^1.3.5", - "fmin": "^0.0.2", - "pdfast": "^0.2.0", - "size-sensor": "^1.0.1", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/g6": { - "version": "4.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6/download/@antv/g6-4.2.4.tgz?cache=0&sync_timestamp=1634648114384&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg6%2Fdownload%2F%40antv%2Fg6-4.2.4.tgz", - "integrity": "sha1-1cCIvi61tfbl3wESJSLp1Tbunjo=", - "dependencies": { - "@antv/g6-pc": "0.2.4" - } - }, - "node_modules/@antv/g6-core": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6-core/download/@antv/g6-core-0.2.4.tgz", - "integrity": "sha1-KE+qohhmLAz0JndFE1NsvQBKDtY=", - "dependencies": { - "@antv/algorithm": "^0.1.5", - "@antv/dom-util": "^2.0.1", - "@antv/event-emitter": "~0.1.0", - "@antv/g-base": "^0.5.1", - "@antv/g-math": "^0.1.1", - "@antv/matrix-util": "^3.1.0-beta.2", - "@antv/path-util": "^2.0.3", - "@antv/scale": "^0.3.1", - "@antv/util": "~2.0.5", - "ml-matrix": "^6.5.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@antv/g6-element": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6-element/download/@antv/g6-element-0.2.4.tgz?cache=0&sync_timestamp=1634631107455&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg6-element%2Fdownload%2F%40antv%2Fg6-element-0.2.4.tgz", - "integrity": "sha1-fh5CWJIgb/+RBPFSn9jqJFNhYq4=", - "dependencies": { - "@antv/g-base": "^0.5.1", - "@antv/g6-core": "0.2.4", - "@antv/util": "~2.0.5" - } - }, - "node_modules/@antv/g6-pc": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6-pc/download/@antv/g6-pc-0.2.4.tgz", - "integrity": "sha1-dQLKwQhqKKmDxWdSGPFFr7FJomY=", - "dependencies": { - "@ant-design/colors": "^4.0.5", - "@antv/algorithm": "^0.1.5", - "@antv/dom-util": "^2.0.1", - "@antv/event-emitter": "~0.1.0", - "@antv/g-base": "^0.5.1", - "@antv/g-canvas": "^0.5.2", - "@antv/g-math": "^0.1.1", - "@antv/g-svg": "^0.5.1", - "@antv/g6-core": "0.2.4", - "@antv/g6-element": "0.2.4", - "@antv/g6-plugin": "0.2.4", - "@antv/hierarchy": "^0.6.7", - "@antv/layout": "^0.1.11", - "@antv/matrix-util": "^3.0.4", - "@antv/path-util": "^2.0.3", - "@antv/scale": "^0.3.1", - "@antv/util": "~2.0.5", - "color": "^3.1.3", - "d3-force": "^2.0.1", - "dagre": "^0.8.5", - "insert-css": "^2.0.0", - "ml-matrix": "^6.5.0" - } - }, - "node_modules/@antv/g6-pc/node_modules/@ant-design/colors": { - "version": "4.0.5", - "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-4.0.5.tgz?cache=0&sync_timestamp=1612935636044&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Fcolors%2Fdownload%2F%40ant-design%2Fcolors-4.0.5.tgz", - "integrity": "sha1-19EA11Rcyo9iSVRgSmiS/Ei6Wq4=", - "dependencies": { - "tinycolor2": "^1.4.1" - } - }, - "node_modules/@antv/g6-pc/node_modules/@antv/matrix-util": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.0.4.tgz", - "integrity": "sha1-6hPxWKovtLovuNa2tWHsRn6jrCA=", - "dependencies": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.3.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/g6-plugin": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6-plugin/download/@antv/g6-plugin-0.2.4.tgz?cache=0&sync_timestamp=1634633342017&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg6-plugin%2Fdownload%2F%40antv%2Fg6-plugin-0.2.4.tgz", - "integrity": "sha1-btNQfHpICkv7vATt1CCdV8z1LfY=", - "dependencies": { - "@antv/dom-util": "^2.0.2", - "@antv/g-base": "^0.5.1", - "@antv/g-canvas": "^0.5.2", - "@antv/g-svg": "^0.5.2", - "@antv/g6-core": "0.2.4", - "@antv/matrix-util": "^3.0.4", - "@antv/scale": "^0.3.4", - "@antv/util": "^2.0.9", - "insert-css": "^2.0.0" - } - }, - "node_modules/@antv/g6-plugin/node_modules/@antv/matrix-util": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.0.4.tgz", - "integrity": "sha1-6hPxWKovtLovuNa2tWHsRn6jrCA=", - "dependencies": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.3.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/hierarchy": { - "version": "0.6.8", - "resolved": "https://registry.nlark.com/@antv/hierarchy/download/@antv/hierarchy-0.6.8.tgz", - "integrity": "sha1-t3xJCpwt1toYbLrO4OeIe4wbP6Q=", - "dependencies": { - "@antv/util": "^2.0.7" - } - }, - "node_modules/@antv/layout": { - "version": "0.1.18", - "resolved": "https://registry.npmmirror.com/@antv/layout/download/@antv/layout-0.1.18.tgz", - "integrity": "sha1-8eI1EPswNfBfvCl4IF7+7D+4eO0=", - "dependencies": { - "@antv/g-webgpu": "0.5.5", - "d3-force": "^2.0.1", - "dagre": "^0.8.5", - "ml-matrix": "^6.5.0" - } - }, - "node_modules/@antv/matrix-util": { - "version": "3.1.0-beta.3", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.1.0-beta.3.tgz", - "integrity": "sha1-4GHej6e+BGBaFVxpzFzpCC7t3e4=", - "license": "ISC", - "dependencies": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.4.3", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/path-util": { - "version": "2.0.15", - "resolved": "https://registry.npmmirror.com/@antv/path-util/download/@antv/path-util-2.0.15.tgz", - "integrity": "sha1-pvaR38i3vOW+fwqrtb1hSWQyVjE=", - "license": "ISC", - "dependencies": { - "@antv/matrix-util": "^3.0.4", - "@antv/util": "^2.0.9", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/path-util/node_modules/@antv/matrix-util": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.0.4.tgz", - "integrity": "sha1-6hPxWKovtLovuNa2tWHsRn6jrCA=", - "dependencies": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.3.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/scale": { - "version": "0.3.14", - "resolved": "https://registry.npmmirror.com/@antv/scale/download/@antv/scale-0.3.14.tgz", - "integrity": "sha1-Bxj4ZRNo5cmNtWEgZRMqjIu83kg=", - "license": "MIT", - "dependencies": { - "@antv/util": "~2.0.3", - "fecha": "~4.2.0", - "tslib": "^2.0.0" - } - }, - "node_modules/@antv/util": { - "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/@antv/util/download/@antv/util-2.0.17.tgz", - "integrity": "sha1-6O9CrKeJKBWyKSafPdEMazx1l6k=", - "dependencies": { - "csstype": "^3.0.8", - "tslib": "^2.0.3" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.16.0.tgz", - "integrity": "sha1-DfyAMJvuyEEeZecGRhxAiwu5tDE=", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/compat-data/download/@babel/compat-data-7.16.0.tgz?cache=0&sync_timestamp=1635560942494&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.16.0.tgz", - "integrity": "sha1-6iadf3jes6eCbDmkBI7s2lQevao=", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/core/download/@babel/core-7.16.0.tgz?cache=0&sync_timestamp=1635560662864&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.16.0.tgz", - "integrity": "sha1-xP9EBG9f4xBSXMnrTvUUfwxTdNQ=", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/generator/download/@babel/generator-7.16.0.tgz", - "integrity": "sha1-1A89HVB15i01ALzLZ/PaqKlSZbI=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.16.0.tgz?cache=0&sync_timestamp=1635560944976&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.16.0.tgz", - "integrity": "sha1-mh8OvNpT2aLQAQjEzqzmpdXx8I0=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", - "integrity": "sha1-8aaGuS2nlAIMJlguuFLprM0NeII=", - "license": "MIT", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.16.3.tgz?cache=0&sync_timestamp=1636495224047&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.16.0.tgz?cache=0&sync_timestamp=1635560940029&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.16.0.tgz", - "integrity": "sha1-CQ1NFms0KgOp/sN+9P1a65x8aks=", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.16.0.tgz?cache=0&sync_timestamp=1635567015952&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.16.0.tgz", - "integrity": "sha1-BrI0jON/zMT14Y3NjXUFPyp8RP8=", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "regexpu-core": "^4.7.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.2.4.tgz?cache=0&sync_timestamp=1636799764872&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-define-polyfill-provider%2Fdownload%2F%40babel%2Fhelper-define-polyfill-provider-0.2.4.tgz", - "integrity": "sha1-iGeu150+psreQPgB77esXGaRaxA=", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.16.0.tgz?cache=0&sync_timestamp=1635567238246&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.16.0.tgz", - "integrity": "sha1-dTAXM3oV9G+cCfZ0z/EM7pudd3g=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/download/@babel/helper-function-name-7.16.0.tgz?cache=0&sync_timestamp=1635560944177&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.16.0.tgz", - "integrity": "sha1-t90Hl9ALv+5PB+nE6lsOMMi7FIE=", - "license": "MIT", - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.16.0.tgz?cache=0&sync_timestamp=1635560945700&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.16.0.tgz", - "integrity": "sha1-AIjHSGspqctdlIsaHeRttm4InPo=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.16.0.tgz?cache=0&sync_timestamp=1635560943828&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.16.0.tgz", - "integrity": "sha1-TJAjwvHe9+KP9G/B2802o5vqqBo=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.16.0.tgz?cache=0&sync_timestamp=1635560945366&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha1-KShwQO/Rl8d2Nu91GI6B2ovM1aQ=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.16.0.tgz?cache=0&sync_timestamp=1635560941965&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.16.0.tgz", - "integrity": "sha1-kFOOYLZy7PG0SPX09UM9N+eaPsM=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.16.0.tgz", - "integrity": "sha1-HIKo3UyzRXdQLr0pCWmbGUw+m7U=", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.16.0.tgz?cache=0&sync_timestamp=1635560944574&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha1-zs2xRdcMVAlrFWT46fEM19GTszg=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz?cache=0&sync_timestamp=1623280794347&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.14.5.tgz", - "integrity": "sha1-WsgizpfuxGdBq3ClF5ceRDpwxak=", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.16.0.tgz?cache=0&sync_timestamp=1635567015463&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.16.0.tgz", - "integrity": "sha1-1ao7CG4Tpf4FI4/0DDpaDC2rPq0=", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-wrap-function": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.16.0.tgz?cache=0&sync_timestamp=1635560943145&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.16.0.tgz", - "integrity": "sha1-cwVejTz5vLqN21XK2T/tyGD2jxc=", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.16.0.tgz?cache=0&sync_timestamp=1635560942808&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.16.0.tgz", - "integrity": "sha1-IdaidiDjg+N1NM9sELugGab5BRc=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.16.0.tgz?cache=0&sync_timestamp=1635566957303&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-skip-transparent-expression-wrappers%2Fdownload%2F%40babel%2Fhelper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha1-DuM4gHAUfDrgUeSH7KPrsOLouwk=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.16.0.tgz?cache=0&sync_timestamp=1635560943488&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.16.0.tgz", - "integrity": "sha1-KWcvQ2Y+k23zcKrrIr7ds7rsdDg=", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz?cache=0&sync_timestamp=1623280794147&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.14.5.tgz", - "integrity": "sha1-bnKh//GNXfy4eOHmLxoCHEty1aM=", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.16.0.tgz?cache=0&sync_timestamp=1635567238019&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.16.0.tgz", - "integrity": "sha1-s88xivzndN/nW4Z2fNbWjzSC5Xw=", - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/helpers/download/@babel/helpers-7.16.3.tgz?cache=0&sync_timestamp=1636495223518&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "dependencies": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/highlight/download/@babel/highlight-7.16.0.tgz?cache=0&sync_timestamp=1635560845502&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.16.0.tgz", - "integrity": "sha1-bOsysspLj182H7f9gh4/3fShclo=", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.3.tgz?cache=0&sync_timestamp=1636495066293&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.16.3.tgz", - "integrity": "sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.2", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/download/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", - "integrity": "sha1-KXf8qbIS2xU8GVZ05Xz6uAdzMYM=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/download/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining%2Fdownload%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", - "integrity": "sha1-NYly6qsAb16wgmGDsMk8vK8T4eI=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.16.0.tgz", - "integrity": "sha1-EUJdR6YDZDUvZorV+8HWWWssXK8=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.0", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.16.0.tgz", - "integrity": "sha1-wClhgmfd68coD6KG4PjKKieKLRo=", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/download/@babel/plugin-proposal-class-static-block-7.16.0.tgz", - "integrity": "sha1-UpaULFZNgUTIPuo0fQqooLiRcOc=", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.12.1.tgz", - "integrity": "sha1-WScUOf7UFFRWxBBnRQVDruMy0V8=", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-decorators": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.16.0.tgz", - "integrity": "sha1-eD7KYdUFJiAvmylglUU5d+iGWfE=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.16.0.tgz", - "integrity": "sha1-nAHe5Auda4R7ZWqvSjl2pxdA8iI=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.16.0.tgz", - "integrity": "sha1-yuNale0dKn+inE3EFUC4SnLpqyU=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.16.0.tgz", - "integrity": "sha1-pxG4zrP/3dPviNOknobb08x9s/0=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", - "integrity": "sha1-ROHM4I/iQnSCz0RqkbtFFSjtBZY=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.16.0.tgz", - "integrity": "sha1-XUGOT7v4ubfQMSXTpScwQzo3NzQ=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.16.0.tgz", - "integrity": "sha1-X7MvbZJNbmcSgQNipg4SomCYcuY=", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.16.0.tgz", - "integrity": "sha1-WRAIWBGrTCiwDW6/+kqwJ00eXxY=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.16.0.tgz", - "integrity": "sha1-VtvDlwglaDYI6e+1XqgsKi1sjcA=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.16.0.tgz", - "integrity": "sha1-tNr7nHF+QwHFd2sw0IDWODyJr/Y=", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/download/@babel/plugin-proposal-private-property-in-object-7.16.0.tgz", - "integrity": "sha1-aek1ssXHnSSIES2IbwxOJ5D+528=", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.16.0.tgz", - "integrity": "sha1-iQSC38XqN45C4Zpx5wlyjKvxhhI=", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-bigint/download/@babel/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha1-TJpvZp9dDN8bkKFnHpoUa+UwDOo=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-static-block/download/@babel/plugin-syntax-class-static-block-7.14.5.tgz?cache=0&sync_timestamp=1623280714275&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-class-static-block%2Fdownload%2F%40babel%2Fplugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha1-GV34mxRrS3izv4l/16JXyEZZ1AY=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.16.0.tgz", - "integrity": "sha1-642BHN0QYPasPACVa/P2M1UFoy8=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.16.0.tgz", - "integrity": "sha1-B0JwIdCT7XcBlAgiG+rwJyu8+uw=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-import-meta/download/@babel/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha1-7mATSMNw+jNNIge+FYd3SWUh/VE=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.16.0.tgz", - "integrity": "sha1-+WJDlDFzZamojII1jT+EcRVGmPE=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-private-property-in-object/download/@babel/plugin-syntax-private-property-in-object-7.14.5.tgz?cache=0&sync_timestamp=1623280716523&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-private-property-in-object%2Fdownload%2F%40babel%2Fplugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha1-DcZnHsDqIrbpShEU+FeXDNOd4a0=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.14.5.tgz?cache=0&sync_timestamp=1623280804775&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha1-wc/a3DWmRiQAAfBhOCR7dBw02Uw=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/download/@babel/plugin-syntax-typescript-7.16.0.tgz?cache=0&sync_timestamp=1635560940443&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-syntax-typescript%2Fdownload%2F%40babel%2Fplugin-syntax-typescript-7.16.0.tgz", - "integrity": "sha1-L+6xPZM0zFguqREdNQb3cxdBebs=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.16.0.tgz", - "integrity": "sha1-lRcG+LRJyDTtB71HTAkkyUS5Wo4=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.16.0.tgz", - "integrity": "sha1-3xJjf5Yw3foO+dehG8QU1inThgQ=", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.16.0.tgz", - "integrity": "sha1-xhh2MjOtAoR4BavKxMNFzp3nFF0=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.16.0.tgz", - "integrity": "sha1-vPQz+0gv6MPTtOimaxxKjnfTfBY=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.16.0.tgz?cache=0&sync_timestamp=1635566945526&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.16.0.tgz", - "integrity": "sha1-VM9f8LIkLGVz11PNS/xwd6iygvU=", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.16.0.tgz", - "integrity": "sha1-4MOFUH0h4bCwdtZr7W1SMbhRELc=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.16.0.tgz", - "integrity": "sha1-rT1+dFhK1epOrbHmZCFGxZDe4zw=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.16.0.tgz", - "integrity": "sha1-ULqwDBCEthYtClioGAMc9XeY4G8=", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.16.0.tgz", - "integrity": "sha1-i8LiGBPj6J5eW/O2CqX8RYV1oXY=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.16.0.tgz?cache=0&sync_timestamp=1635566989126&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.16.0.tgz", - "integrity": "sha1-oYDNKIHjUzzvnTkB5I2tD77/S+Q=", - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-flow-strip-types/download/@babel/plugin-transform-flow-strip-types-7.12.1.tgz", - "integrity": "sha1-hDDez6frKupUFO1KP6bhZSt9d8Q=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.16.0.tgz?cache=0&sync_timestamp=1635567508437&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.16.0.tgz", - "integrity": "sha1-96us7RVSYOJGE1m7x8ckispea9I=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.16.0.tgz?cache=0&sync_timestamp=1635566911742&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.16.0.tgz", - "integrity": "sha1-AuNpnChMYmIjZZn3UQZcXV8fQA4=", - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.16.0.tgz?cache=0&sync_timestamp=1635566948325&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.16.0.tgz", - "integrity": "sha1-eXEeZw/86zG9KYIp1Q82IfeYDKw=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.16.0.tgz?cache=0&sync_timestamp=1635566948649&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.16.0.tgz", - "integrity": "sha1-UlG0zOAer4MUQD0hrtsmnXn15ks=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.16.0.tgz?cache=0&sync_timestamp=1635566912764&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.16.0.tgz", - "integrity": "sha1-CavUHhjc9P1HnFmMHO97056xM34=", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.16.0.tgz?cache=0&sync_timestamp=1635566912532&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.16.0.tgz", - "integrity": "sha1-rdWOY4yN3Eh1vZqey1xZRhP2ySI=", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.16.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.16.0.tgz?cache=0&sync_timestamp=1635566913014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.16.0.tgz", - "integrity": "sha1-qSzyQK/rYF9MoWZwRTAkQl5CHqQ=", - "license": "MIT", - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.15.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.16.0.tgz?cache=0&sync_timestamp=1635566913244&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.16.0.tgz", - "integrity": "sha1-GV8mwq1tajkbcIgO/84YzmJeBqc=", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", - "integrity": "sha1-09thzF1bl5hlWZZ81eqD5cMglso=", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.16.0.tgz?cache=0&sync_timestamp=1635566951246&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.16.0.tgz", - "integrity": "sha1-r4I6tXb3UiFaSZN3eaQcplglqzU=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.16.0.tgz?cache=0&sync_timestamp=1635566913937&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.16.0.tgz", - "integrity": "sha1-+yDVgG3GSRoGKWrBTqjo1v7dpys=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.16.3.tgz?cache=0&sync_timestamp=1636495224692&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.16.3.tgz", - "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.16.0.tgz?cache=0&sync_timestamp=1635566952712&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.16.0.tgz", - "integrity": "sha1-qVxVIYmpagAFn2d23E4A42kMeNE=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-constant-elements/download/@babel/plugin-transform-react-constant-elements-7.16.0.tgz?cache=0&sync_timestamp=1635739225099&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-constant-elements%2Fdownload%2F%40babel%2Fplugin-transform-react-constant-elements-7.16.0.tgz", - "integrity": "sha1-FIO4lLjm7wcJ0mBTL71NufwnoOY=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-display-name%2Fdownload%2F%40babel%2Fplugin-transform-react-display-name-7.16.0.tgz", - "integrity": "sha1-mgrYqo6HkIg6e9Jzb2YimlgSVnY=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/download/@babel/plugin-transform-react-jsx-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-jsx%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-7.16.0.tgz", - "integrity": "sha1-VbeX1JYMPeBOB60cBHbivGpIifE=", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/download/@babel/plugin-transform-react-jsx-development-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-jsx-development%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-development-7.16.0.tgz", - "integrity": "sha1-HLUodGeNI6sR0NFkiNVHMIBzA+8=", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-pure-annotations/download/@babel/plugin-transform-react-pure-annotations-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-pure-annotations%2Fdownload%2F%40babel%2Fplugin-transform-react-pure-annotations-7.16.0.tgz", - "integrity": "sha1-I9tt31WNir3kG4rZ1Z9IrVUyzKs=", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.16.0.tgz?cache=0&sync_timestamp=1635566914723&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.16.0.tgz", - "integrity": "sha1-6u5CLISwIy0Drqfbmcl97q9hJaQ=", - "license": "MIT", - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.16.0.tgz?cache=0&sync_timestamp=1635566953412&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.16.0.tgz", - "integrity": "sha1-//S53LGeEmGTlL2hctFPLQTAN5w=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.1.tgz", - "integrity": "sha1-BLeSBX60YDif9qQZjjd2FOoee6U=", - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "resolve": "^1.8.1", - "semver": "^5.5.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.16.0.tgz?cache=0&sync_timestamp=1635566953711&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.16.0.tgz", - "integrity": "sha1-CQNy4xQffMMk7XCz2vU3nfL6OE0=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.16.0.tgz?cache=0&sync_timestamp=1635566954049&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.16.0.tgz", - "integrity": "sha1-0hygmbvVOrMHqGIeAZp70PQM3Ps=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.16.0.tgz?cache=0&sync_timestamp=1635566954378&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.16.0.tgz", - "integrity": "sha1-w16jGgLYa+SF9qpRAYS2d6kXOP0=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.16.0.tgz?cache=0&sync_timestamp=1635566917280&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.16.0.tgz", - "integrity": "sha1-qOztOo57ji1A7E7EVIpFkSYw0wI=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.16.0.tgz?cache=0&sync_timestamp=1635566955088&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.16.0.tgz", - "integrity": "sha1-ixmiRMb4ydZo3Kam91Stbq0RKPI=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.16.1.tgz", - "integrity": "sha1-zAZwsoIrAzg1W8Gz0iRqQrgWZAk=", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.16.0.tgz?cache=0&sync_timestamp=1635566955407&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.16.0.tgz", - "integrity": "sha1-GjVAZLTEVmOjIzT0b6DPYQC1sfM=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.16.0.tgz", - "integrity": "sha1-KTuAlQF3yMha7eh87ygCWfuZVAI=", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/download/@babel/preset-env-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.16.0.tgz", - "integrity": "sha1-lyKDk9IXVg1qHGxW8K250SvKZ/U=", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-async-generator-functions": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-class-static-block": "^7.16.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.0", - "@babel/plugin-proposal-export-namespace-from": "^7.16.0", - "@babel/plugin-proposal-json-strings": "^7.16.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-object-rest-spread": "^7.16.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-proposal-private-property-in-object": "^7.16.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.0", - "@babel/plugin-transform-async-to-generator": "^7.16.0", - "@babel/plugin-transform-block-scoped-functions": "^7.16.0", - "@babel/plugin-transform-block-scoping": "^7.16.0", - "@babel/plugin-transform-classes": "^7.16.0", - "@babel/plugin-transform-computed-properties": "^7.16.0", - "@babel/plugin-transform-destructuring": "^7.16.0", - "@babel/plugin-transform-dotall-regex": "^7.16.0", - "@babel/plugin-transform-duplicate-keys": "^7.16.0", - "@babel/plugin-transform-exponentiation-operator": "^7.16.0", - "@babel/plugin-transform-for-of": "^7.16.0", - "@babel/plugin-transform-function-name": "^7.16.0", - "@babel/plugin-transform-literals": "^7.16.0", - "@babel/plugin-transform-member-expression-literals": "^7.16.0", - "@babel/plugin-transform-modules-amd": "^7.16.0", - "@babel/plugin-transform-modules-commonjs": "^7.16.0", - "@babel/plugin-transform-modules-systemjs": "^7.16.0", - "@babel/plugin-transform-modules-umd": "^7.16.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", - "@babel/plugin-transform-new-target": "^7.16.0", - "@babel/plugin-transform-object-super": "^7.16.0", - "@babel/plugin-transform-parameters": "^7.16.0", - "@babel/plugin-transform-property-literals": "^7.16.0", - "@babel/plugin-transform-regenerator": "^7.16.0", - "@babel/plugin-transform-reserved-words": "^7.16.0", - "@babel/plugin-transform-shorthand-properties": "^7.16.0", - "@babel/plugin-transform-spread": "^7.16.0", - "@babel/plugin-transform-sticky-regex": "^7.16.0", - "@babel/plugin-transform-template-literals": "^7.16.0", - "@babel/plugin-transform-typeof-symbol": "^7.16.0", - "@babel/plugin-transform-unicode-escapes": "^7.16.0", - "@babel/plugin-transform-unicode-regex": "^7.16.0", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.0", - "babel-plugin-polyfill-corejs2": "^0.2.3", - "babel-plugin-polyfill-corejs3": "^0.3.0", - "babel-plugin-polyfill-regenerator": "^0.2.3", - "core-js-compat": "^3.19.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmmirror.com/@babel/preset-modules/download/@babel/preset-modules-0.1.5.tgz?cache=0&sync_timestamp=1635094707880&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.5.tgz", - "integrity": "sha1-75Odbn8miCfhhBY43G/5VRXhFdk=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/preset-react/download/@babel/preset-react-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-react%2Fdownload%2F%40babel%2Fpreset-react-7.16.0.tgz", - "integrity": "sha1-9x0+jf9SGEeAEd8Df61SZg7m2Co=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-react-jsx-development": "^7.16.0", - "@babel/plugin-transform-react-pure-annotations": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/preset-typescript/download/@babel/preset-typescript-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-typescript%2Fdownload%2F%40babel%2Fpreset-typescript-7.12.1.tgz", - "integrity": "sha1-hkgLSDu5f3UDbohk/kBMx4LMMRs=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.3.tgz?cache=0&sync_timestamp=1636495059115&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.16.3.tgz", - "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/download/@babel/runtime-corejs3-7.16.3.tgz?cache=0&sync_timestamp=1636495062185&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.16.3.tgz", - "integrity": "sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==", - "dependencies": { - "core-js-pure": "^3.19.0", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.0.tgz", - "integrity": "sha1-0Wo16/TNdOICCDNW+rId2JNj3dY=", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/traverse/download/@babel/traverse-7.16.3.tgz?cache=0&sync_timestamp=1636495060124&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/types/download/@babel/types-7.16.0.tgz?cache=0&sync_timestamp=1635560939610&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.16.0.tgz", - "integrity": "sha1-2zsxOAT5aq3Qt3bEgj4SetZyibo=", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/@bcoe/v8-coverage/download/@bcoe/v8-coverage-0.2.3.tgz", - "integrity": "sha1-daLotRy3WKdVPWgEpZMteqznXDk=" - }, - "node_modules/@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/@cnakazawa/watch/download/@cnakazawa/watch-1.0.4.tgz", - "integrity": "sha1-+GSuhQBND8q29QvpFBxNo2jRZWo=", - "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/@csstools/convert-colors": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz", - "integrity": "sha1-rUldxBsS511YjG24uYNPCPoTHrc=", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@csstools/normalize.css": { - "version": "10.1.0", - "resolved": "https://registry.nlark.com/@csstools/normalize.css/download/@csstools/normalize.css-10.1.0.tgz", - "integrity": "sha1-8JULuhiBlRLUL3GX5WxRiqSRzxg=" - }, - "node_modules/@ctrl/tinycolor": { - "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz", - "integrity": "sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-0.4.3.tgz?cache=0&sync_timestamp=1636146813175&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40eslint%2Feslintrc%2Fdownload%2F%40eslint%2Feslintrc-0.4.3.tgz", - "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz", - "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/@gar/promisify/download/@gar/promisify-1.1.2.tgz?cache=0&sync_timestamp=1629999882087&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40gar%2Fpromisify%2Fdownload%2F%40gar%2Fpromisify-1.1.2.tgz", - "integrity": "sha1-MKqCXxHUOGcdWFvUTn/VZFNfwhA=" - }, - "node_modules/@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/@hapi/address/download/@hapi/address-2.1.4.tgz", - "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", - "deprecated": "Moved to 'npm install @sideway/address'" - }, - "node_modules/@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz", - "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", - "deprecated": "This version has been deprecated and is no longer supported or maintained" - }, - "node_modules/@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmmirror.com/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1632776440309&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", - "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", - "deprecated": "This version has been deprecated and is no longer supported or maintained" - }, - "node_modules/@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmmirror.com/@hapi/joi/download/@hapi/joi-15.1.1.tgz", - "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", - "deprecated": "Switch to 'npm install joi'", - "dependencies": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "node_modules/@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.nlark.com/@hapi/topo/download/@hapi/topo-3.1.6.tgz", - "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", - "deprecated": "This version has been deprecated and is no longer supported or maintained", - "dependencies": { - "@hapi/hoek": "^8.3.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.5.0.tgz?cache=0&sync_timestamp=1635880373051&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40humanwhocodes%2Fconfig-array%2Fdownload%2F%40humanwhocodes%2Fconfig-array-0.5.0.tgz", - "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz?cache=0&sync_timestamp=1635879707386&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40humanwhocodes%2Fobject-schema%2Fdownload%2F%40humanwhocodes%2Fobject-schema-1.2.1.tgz", - "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", - "license": "BSD-3-Clause" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/@istanbuljs/load-nyc-config/download/@istanbuljs/load-nyc-config-1.1.0.tgz", - "integrity": "sha1-/T2x1Z7PfPEh6AZQu4ZxL5tV7O0=", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.nlark.com/@istanbuljs/schema/download/@istanbuljs/schema-0.1.3.tgz", - "integrity": "sha1-5F44TkuOwWvOL9kDr3hFD2v37Jg=", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/console/download/@jest/console-26.6.2.tgz?cache=0&sync_timestamp=1634626675835&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Fconsole%2Fdownload%2F%40jest%2Fconsole-26.6.2.tgz", - "integrity": "sha1-TgS8RkAUNYsDq0k3gF7jagrrmPI=", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/@jest/core/download/@jest/core-26.6.3.tgz?cache=0&sync_timestamp=1634626715636&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Fcore%2Fdownload%2F%40jest%2Fcore-26.6.3.tgz", - "integrity": "sha1-djn8s4M9dIpGVq2lS94ZMFHkX60=", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/environment/download/@jest/environment-26.6.2.tgz?cache=0&sync_timestamp=1634626739278&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Fenvironment%2Fdownload%2F%40jest%2Fenvironment-26.6.2.tgz", - "integrity": "sha1-ujZMxy4iHnnMjwqZVVv111d8+Sw=", - "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/fake-timers/download/@jest/fake-timers-26.6.2.tgz", - "integrity": "sha1-RZwym89wzuSvTX4/PmeEgSNTWq0=", - "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/globals/download/@jest/globals-26.6.2.tgz?cache=0&sync_timestamp=1634626717616&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Fglobals%2Fdownload%2F%40jest%2Fglobals-26.6.2.tgz", - "integrity": "sha1-W2E7eKGqJlWukI66Y4zJaiDfcgo=", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/globals/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/globals/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/globals/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/@jest/globals/node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/expect/download/expect-26.6.2.tgz?cache=0&sync_timestamp=1634626714215&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexpect%2Fdownload%2Fexpect-26.6.2.tgz", - "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/reporters/download/@jest/reporters-26.6.2.tgz?cache=0&sync_timestamp=1634626712558&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Freporters%2Fdownload%2F%40jest%2Freporters-26.6.2.tgz", - "integrity": "sha1-H1GLmWN6Xxgwe9Ps+SdfaIKmZ/Y=", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "node-notifier": "^8.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/download/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha1-hzxv/4l0UBGCIndGlqPyiQLXfB0=", - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/reporters/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", - "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jest/reporters/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/@jest/source-map/download/@jest/source-map-26.6.2.tgz", - "integrity": "sha1-Ka9eHi4yTK/MyTbyGDCfVKtp1TU=", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/test-result/download/@jest/test-result-26.6.2.tgz?cache=0&sync_timestamp=1634626707209&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Ftest-result%2Fdownload%2F%40jest%2Ftest-result-26.6.2.tgz", - "integrity": "sha1-VdpYti3xNFdsyVR276X3lJ4/Xxg=", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/download/@jest/test-sequencer-26.6.3.tgz?cache=0&sync_timestamp=1634626716094&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Ftest-sequencer%2Fdownload%2F%40jest%2Ftest-sequencer-26.6.3.tgz", - "integrity": "sha1-mOikUQCGOIbQdCBej/3Fp+tYKxc=", - "dependencies": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/transform/download/@jest/transform-26.6.2.tgz", - "integrity": "sha1-WsV8X6GtF7Kq6D5z5FgTiU3PLks=", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/types/download/@jest/types-26.6.2.tgz?cache=0&sync_timestamp=1633701113709&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Ftypes%2Fdownload%2F%40jest%2Ftypes-26.6.2.tgz", - "integrity": "sha1-vvWlMgMOHYii9abZM/hOlyJu1I4=", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622792706054&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz", - "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz?cache=0&sync_timestamp=1622792705142&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.5.tgz", - "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz", - "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/@npmcli/fs/download/@npmcli/fs-1.0.0.tgz", - "integrity": "sha1-WJYSz606bqD+r8uQHSnGP9UtsJ8=", - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@npmcli/move-file/download/@npmcli/move-file-1.1.2.tgz", - "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.4.3", - "resolved": "https://registry.npmmirror.com/@pmmmwh/react-refresh-webpack-plugin/download/@pmmmwh/react-refresh-webpack-plugin-0.4.3.tgz", - "integrity": "sha1-HuxGBZbSAMAja/GVsHil0d+Jt2Y=", - "dependencies": { - "ansi-html": "^0.0.7", - "error-stack-parser": "^2.0.6", - "html-entities": "^1.2.1", - "native-url": "^0.2.6", - "schema-utils": "^2.6.5", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.x" - }, - "peerDependencies": { - "@types/webpack": "4.x", - "react-refresh": ">=0.8.3 <0.10.0", - "sockjs-client": "^1.4.0", - "type-fest": "^0.13.1", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@probe.gl/stats": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/@probe.gl/stats/download/@probe.gl/stats-3.4.1.tgz", - "integrity": "sha1-W8DsX4euMZXCKpg2PpwVAx+/6Og=", - "dependencies": { - "@babel/runtime": "^7.0.0" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npm.taobao.org/@sinonjs/commons/download/@sinonjs/commons-1.8.3.tgz?cache=0&sync_timestamp=1617868533174&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sinonjs%2Fcommons%2Fdownload%2F%40sinonjs%2Fcommons-1.8.3.tgz", - "integrity": "sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/download/@sinonjs/fake-timers-6.0.1.tgz", - "integrity": "sha1-KTZ0/MsyYqx4LHqt/eyoaxDHXEA=", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/@surma/rollup-plugin-off-main-thread/download/@surma/rollup-plugin-off-main-thread-1.4.2.tgz?cache=0&sync_timestamp=1636350439834&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.2.tgz", - "integrity": "sha1-5nhravV5n4L3qzqC5T9hgtK5Glg=", - "dependencies": { - "ejs": "^2.6.1", - "magic-string": "^0.25.0" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/download/@svgr/babel-plugin-add-jsx-attribute-5.4.0.tgz?cache=0&sync_timestamp=1635739228177&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-add-jsx-attribute%2Fdownload%2F%40svgr%2Fbabel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha1-ge9hlHuyaOudUFI0RvnGOPs1WQY=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/download/@svgr/babel-plugin-remove-jsx-attribute-5.4.0.tgz?cache=0&sync_timestamp=1635739228599&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-remove-jsx-attribute%2Fdownload%2F%40svgr%2Fbabel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha1-ayx3DJXIdGVP1eHV70dbeKCpYu8=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/download/@svgr/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz?cache=0&sync_timestamp=1635739229005&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-remove-jsx-empty-expression%2Fdownload%2F%40svgr%2Fbabel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha1-JWIaiRXtetcNps6j0KbbwuqTPv0=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/download/@svgr/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz?cache=0&sync_timestamp=1635739229427&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-replace-jsx-attribute-value%2Fdownload%2F%40svgr%2Fbabel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha1-CyIfxX+fzRDpH+IZ4s0N0DFFqJc=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/download/@svgr/babel-plugin-svg-dynamic-title-5.4.0.tgz?cache=0&sync_timestamp=1635739229786&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-svg-dynamic-title%2Fdownload%2F%40svgr%2Fbabel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha1-E5tUbdDDGGtuXbT+/CbLC66nKdc=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/download/@svgr/babel-plugin-svg-em-dimensions-5.4.0.tgz?cache=0&sync_timestamp=1636792908042&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-svg-em-dimensions%2Fdownload%2F%40svgr%2Fbabel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha1-ZUP2lSZjKhM85cq6uWXe6uoiNKA=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/download/@svgr/babel-plugin-transform-react-native-svg-5.4.0.tgz?cache=0&sync_timestamp=1635739231099&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-transform-react-native-svg%2Fdownload%2F%40svgr%2Fbabel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha1-AL+aenPxytOUjNqx+N+3dHUPjIA=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/download/@svgr/babel-plugin-transform-svg-component-5.5.0.tgz?cache=0&sync_timestamp=1636706763615&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-transform-svg-component%2Fdownload%2F%40svgr%2Fbabel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha1-WDpeKhk+IU2i86/rC56NMlASa0o=", - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-preset/download/@svgr/babel-preset-5.5.0.tgz?cache=0&sync_timestamp=1636792908501&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-preset%2Fdownload%2F%40svgr%2Fbabel-preset-5.5.0.tgz", - "integrity": "sha1-ivVPPgqK3XseKw/NWogsVTk98yc=", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/core/download/@svgr/core-5.5.0.tgz?cache=0&sync_timestamp=1636792908851&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fcore%2Fdownload%2F%40svgr%2Fcore-5.5.0.tgz", - "integrity": "sha1-gugmuHFdcQgxIP6PJJLsfXh0pXk=", - "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/download/@svgr/hast-util-to-babel-ast-5.5.0.tgz?cache=0&sync_timestamp=1636706763213&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fhast-util-to-babel-ast%2Fdownload%2F%40svgr%2Fhast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha1-XuUqnCUz9z5j+PIrd5+TzUMqVGE=", - "dependencies": { - "@babel/types": "^7.12.6" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/plugin-jsx/download/@svgr/plugin-jsx-5.5.0.tgz?cache=0&sync_timestamp=1636706764147&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fplugin-jsx%2Fdownload%2F%40svgr%2Fplugin-jsx-5.5.0.tgz", - "integrity": "sha1-GqjNeYodtxc6wENGbXtSI2s2kAA=", - "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/plugin-svgo/download/@svgr/plugin-svgo-5.5.0.tgz?cache=0&sync_timestamp=1635739226645&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fplugin-svgo%2Fdownload%2F%40svgr%2Fplugin-svgo-5.5.0.tgz", - "integrity": "sha1-AtpV2FMgVJMk4gHHsuU79DH8wkY=", - "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/webpack/download/@svgr/webpack-5.5.0.tgz?cache=0&sync_timestamp=1636792917429&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fwebpack%2Fdownload%2F%40svgr%2Fwebpack-5.5.0.tgz", - "integrity": "sha1-quhY7lefX6jObDFm71bGobOBtkA=", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@tootallnate/once/download/@tootallnate/once-1.1.2.tgz?cache=0&sync_timestamp=1632734046275&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40tootallnate%2Fonce%2Fdownload%2F%40tootallnate%2Fonce-1.1.2.tgz", - "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.nlark.com/@types/babel__core/download/@types/babel__core-7.1.16.tgz?cache=0&sync_timestamp=1630960457319&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel__core%2Fdownload%2F%40types%2Fbabel__core-7.1.16.tgz", - "integrity": "sha1-vBLHS31l6C0ph2tdC69cYlrFhwI=", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.nlark.com/@types/babel__generator/download/@types/babel__generator-7.6.3.tgz?cache=0&sync_timestamp=1629706734012&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel__generator%2Fdownload%2F%40types%2Fbabel__generator-7.6.3.tgz", - "integrity": "sha1-9Fa0ss55E392iqEw0kI9LwzPq6U=", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.nlark.com/@types/babel__template/download/@types/babel__template-7.4.1.tgz?cache=0&sync_timestamp=1629706734879&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel__template%2Fdownload%2F%40types%2Fbabel__template-7.4.1.tgz", - "integrity": "sha1-PRpI/Z1sDt/Vby/1eNrtSPNsiWk=", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.nlark.com/@types/babel__traverse/download/@types/babel__traverse-7.14.2.tgz?cache=0&sync_timestamp=1629706736770&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel__traverse%2Fdownload%2F%40types%2Fbabel__traverse-7.14.2.tgz", - "integrity": "sha1-/81HC7s/i/MEgWePtVAieMqDOkM=", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/d3-timer": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/@types/d3-timer/download/@types/d3-timer-2.0.1.tgz?cache=0&sync_timestamp=1629707133527&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fd3-timer%2Fdownload%2F%40types%2Fd3-timer-2.0.1.tgz", - "integrity": "sha1-/7ZiDSkGJPNyaqNiwMiktEyNcgA=" - }, - "node_modules/@types/eslint": { - "version": "7.28.2", - "resolved": "https://registry.npmmirror.com/@types/eslint/download/@types/eslint-7.28.2.tgz?cache=0&sync_timestamp=1635092491220&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Feslint%2Fdownload%2F%40types%2Feslint-7.28.2.tgz", - "integrity": "sha1-D/KUfN0wWJfFLVNyKU6MdvNR22g=", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.nlark.com/@types/estree/download/@types/estree-0.0.50.tgz", - "integrity": "sha1-Hgyqk2TT/M0pMcPtlv2+ql1MyoM=" - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/@types/glob/download/@types/glob-7.2.0.tgz", - "integrity": "sha1-vBtb86qS8lvV3TnzXFc2G9zlsus=", - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.nlark.com/@types/graceful-fs/download/@types/graceful-fs-4.1.5.tgz?cache=0&sync_timestamp=1629708271019&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fgraceful-fs%2Fdownload%2F%40types%2Fgraceful-fs-4.1.5.tgz", - "integrity": "sha1-If+6DZjaQ1DbZIkfkqnl2zzbThU=", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://registry.nlark.com/@types/html-minifier-terser/download/@types/html-minifier-terser-5.1.2.tgz?cache=0&sync_timestamp=1631043806613&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.2.tgz", - "integrity": "sha1-aTsxatMj6pfu1rOO0aPMArFnK1c=" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/@types/istanbul-lib-coverage/download/@types/istanbul-lib-coverage-2.0.3.tgz?cache=0&sync_timestamp=1629708193536&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fistanbul-lib-coverage%2Fdownload%2F%40types%2Fistanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha1-S6jdtyAiH0MuRDvV+RF/0iz9R2I=" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/@types/istanbul-lib-report/download/@types/istanbul-lib-report-3.0.0.tgz?cache=0&sync_timestamp=1629708191564&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fistanbul-lib-report%2Fdownload%2F%40types%2Fistanbul-lib-report-3.0.0.tgz", - "integrity": "sha1-wUwk8Y6oGQwRjudWK3/5mjZVJoY=", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/@types/istanbul-reports/download/@types/istanbul-reports-3.0.1.tgz?cache=0&sync_timestamp=1629708071482&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-3.0.1.tgz", - "integrity": "sha1-kVP+mLuivVZaY63ZQ21vDX+EaP8=", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1629708189890&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz", - "integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0=" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.5.tgz?cache=0&sync_timestamp=1629708375365&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.5.tgz", - "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=" - }, - "node_modules/@types/node": { - "version": "16.11.7", - "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-16.11.7.tgz?cache=0&sync_timestamp=1636407290325&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-16.11.7.tgz", - "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.nlark.com/@types/normalize-package-data/download/@types/normalize-package-data-2.4.1.tgz?cache=0&sync_timestamp=1629708441689&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.1.tgz", - "integrity": "sha1-0zV0eaD9/dWQf+Z+F+CoXJBuEwE=" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/@types/parse-json/download/@types/parse-json-4.0.0.tgz", - "integrity": "sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=" - }, - "node_modules/@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/@types/prettier/download/@types/prettier-2.4.2.tgz?cache=0&sync_timestamp=1636770787611&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fprettier%2Fdownload%2F%40types%2Fprettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.nlark.com/@types/prop-types/download/@types/prop-types-15.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.4.tgz", - "integrity": "sha1-/PcgXCXf95Xuea8eMNosl5CAjxE=", - "peer": true - }, - "node_modules/@types/q": { - "version": "1.5.5", - "resolved": "https://registry.nlark.com/@types/q/download/@types/q-1.5.5.tgz", - "integrity": "sha1-daKo59irSyMEFFBdkjNdHctTpt8=" - }, - "node_modules/@types/react": { - "version": "16.14.20", - "resolved": "https://registry.npmmirror.com/@types/react/download/@types/react-16.14.20.tgz", - "integrity": "sha1-/26TKtcdksJ1kOSoZnx6U6fQuq0=", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.nlark.com/@types/resolve/download/@types/resolve-0.0.8.tgz?cache=0&sync_timestamp=1629709391127&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz", - "integrity": "sha1-8mB00jjgJlnjI84aE9BB7uKA4ZQ=", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.nlark.com/@types/scheduler/download/@types/scheduler-0.16.2.tgz?cache=0&sync_timestamp=1629709260625&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fscheduler%2Fdownload%2F%40types%2Fscheduler-0.16.2.tgz", - "integrity": "sha1-GmL4lSVyPd4kuhsBsJK/XfitTTk=", - "peer": true - }, - "node_modules/@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.nlark.com/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", - "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/@types/stack-utils/download/@types/stack-utils-2.0.1.tgz?cache=0&sync_timestamp=1629709405935&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fstack-utils%2Fdownload%2F%40types%2Fstack-utils-2.0.1.tgz", - "integrity": "sha1-IPGClPeX8iCbX2XI47XI6CYdEnw=" - }, - "node_modules/@types/tapable": { - "version": "1.0.8", - "resolved": "https://registry.nlark.com/@types/tapable/download/@types/tapable-1.0.8.tgz?cache=0&sync_timestamp=1629709376833&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.8.tgz", - "integrity": "sha1-uUpDkchWZse3Mpn9OtedT6pDUxA=" - }, - "node_modules/@types/uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.nlark.com/@types/uglify-js/download/@types/uglify-js-3.13.1.tgz", - "integrity": "sha1-XoienoHpQkXHW2RQYA4cXqKHiuo=", - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/@types/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/webpack": { - "version": "4.41.31", - "resolved": "https://registry.nlark.com/@types/webpack/download/@types/webpack-4.41.31.tgz?cache=0&sync_timestamp=1631392314345&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.31.tgz", - "integrity": "sha1-w18lKjVZ3fnIXA2LC0IBkCXlgao=", - "dependencies": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/@types/webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/@types/webpack-sources/download/@types/webpack-sources-3.2.0.tgz?cache=0&sync_timestamp=1629709718286&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-3.2.0.tgz", - "integrity": "sha1-FtdZuglsKJA0smVT0t8b9FJI04s=", - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmmirror.com/@types/yargs/download/@types/yargs-15.0.14.tgz?cache=0&sync_timestamp=1635745526079&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-15.0.14.tgz", - "integrity": "sha1-Jtgh3biecEkhYLZtEKDrbfj2+wY=", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.nlark.com/@types/yargs-parser/download/@types/yargs-parser-20.2.1.tgz?cache=0&sync_timestamp=1629709931030&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fyargs-parser%2Fdownload%2F%40types%2Fyargs-parser-20.2.1.tgz", - "integrity": "sha1-O5ziSJkZ2eT+pDm3aRarw0st8Sk=" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-4.33.0.tgz?cache=0&sync_timestamp=1636927713971&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Feslint-plugin%2Fdownload%2F%40typescript-eslint%2Feslint-plugin-4.33.0.tgz", - "integrity": "sha1-wk3HyAacdwa8QNmfb6h+3LIAUnY=", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.33.0.tgz?cache=0&sync_timestamp=1636927348659&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-4.33.0.tgz", - "integrity": "sha1-byp4akIJ+iIimJ6TgLUzGygQ9/0=", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-4.33.0.tgz?cache=0&sync_timestamp=1636927567728&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fparser%2Fdownload%2F%40typescript-eslint%2Fparser-4.33.0.tgz", - "integrity": "sha1-3+eXVw2WlOVgUo0Y7srYbIx0SJk=", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.33.0.tgz?cache=0&sync_timestamp=1636927925016&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fscope-manager%2Fdownload%2F%40typescript-eslint%2Fscope-manager-4.33.0.tgz", - "integrity": "sha1-045JKA2YPody4pEhz4xukiHygKM=", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.33.0.tgz?cache=0&sync_timestamp=1636927435113&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypes%2Fdownload%2F%40typescript-eslint%2Ftypes-4.33.0.tgz", - "integrity": "sha1-oeWQNqO1OuhDDO6/KpGdx/mvbXI=", - "license": "MIT", - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.33.0.tgz?cache=0&sync_timestamp=1636928494244&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypescript-estree%2Fdownload%2F%40typescript-eslint%2Ftypescript-estree-4.33.0.tgz", - "integrity": "sha1-DftRwpCPaMXAjYKu/q8WahfCRgk=", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.33.0.tgz?cache=0&sync_timestamp=1636927358040&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fvisitor-keys%2Fdownload%2F%40typescript-eslint%2Fvisitor-keys-4.33.0.tgz", - "integrity": "sha1-KiL3ekFgQom3oYZYbp7EjKku8d0=", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&sync_timestamp=1625473368618&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz", - "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz?cache=0&sync_timestamp=1625473460936&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz", - "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1625473462686&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz", - "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=" - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz?cache=0&sync_timestamp=1625473420790&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz", - "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1625473415428&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz", - "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=" - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", - "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz", - "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&sync_timestamp=1625473454591&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz", - "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&sync_timestamp=1625473456730&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz", - "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz?cache=0&sync_timestamp=1625473454967&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz", - "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz", - "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz", - "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz", - "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&sync_timestamp=1625473358573&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz", - "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz", - "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", - "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webgpu/glslang": { - "version": "0.0.15", - "resolved": "https://registry.npm.taobao.org/@webgpu/glslang/download/@webgpu/glslang-0.0.15.tgz", - "integrity": "sha1-9cyvYBUkHmF19LkJBrBT+ISD0fI=" - }, - "node_modules/@webgpu/types": { - "version": "0.0.31", - "resolved": "https://registry.npmmirror.com/@webgpu/types/download/@webgpu/types-0.0.31.tgz", - "integrity": "sha1-wF7G5gAkvxg28xI27NdnepaaKiw=" - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.nlark.com/@xtuc/long/download/@xtuc/long-4.2.2.tgz", - "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=" - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.5.tgz", - "integrity": "sha1-wLZ4+zLWD8EhnHhNaoJv44Wut5o=" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.nlark.com/accepts/download/accepts-1.3.7.tgz", - "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1630916591807&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-6.0.0.tgz", - "integrity": "sha1-Rs3Tnw+P8IqHZhm1X1rIptx3C0U=", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz?cache=0&sync_timestamp=1625793240297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.3.2.tgz", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1630916588767&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz", - "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz", - "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/adjust-sourcemap-loader/download/adjust-sourcemap-loader-3.0.0.tgz", - "integrity": "sha1-WuEvtbexxYXoC7taY+wWOhpF5h4=", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.nlark.com/agent-base/download/agent-base-6.0.2.tgz", - "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1636828403489&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/ajv-errors/download/ajv-errors-1.0.1.tgz", - "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882351228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", - "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/align-text": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/align-text/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz", - "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.nlark.com/ansi-escapes/download/ansi-escapes-4.3.2.tgz?cache=0&sync_timestamp=1618847144938&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-escapes%2Fdownload%2Fansi-escapes-4.3.2.tgz", - "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.nlark.com/ansi-html/download/ansi-html-0.0.7.tgz?cache=0&sync_timestamp=1618846919541&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/antd": { - "version": "4.16.13", - "resolved": "https://registry.npmmirror.com/antd/download/antd-4.16.13.tgz", - "integrity": "sha1-6bm0pZDbKHR6rhyrmJgWSaNYgK8=", - "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons": "^4.6.3", - "@ant-design/react-slick": "~0.28.1", - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "classnames": "^2.2.6", - "copy-to-clipboard": "^3.2.0", - "lodash": "^4.17.21", - "moment": "^2.25.3", - "rc-cascader": "~1.4.0", - "rc-checkbox": "~2.3.0", - "rc-collapse": "~3.1.0", - "rc-dialog": "~8.6.0", - "rc-drawer": "~4.3.0", - "rc-dropdown": "~3.2.0", - "rc-field-form": "~1.20.0", - "rc-image": "~5.2.5", - "rc-input-number": "~7.1.0", - "rc-mentions": "~1.6.1", - "rc-menu": "~9.0.12", - "rc-motion": "^2.4.0", - "rc-notification": "~4.5.7", - "rc-pagination": "~3.1.9", - "rc-picker": "~2.5.10", - "rc-progress": "~3.1.0", - "rc-rate": "~2.9.0", - "rc-resize-observer": "^1.0.0", - "rc-select": "~12.1.6", - "rc-slider": "~9.7.1", - "rc-steps": "~4.1.0", - "rc-switch": "~3.2.0", - "rc-table": "~7.15.1", - "rc-tabs": "~11.10.0", - "rc-textarea": "~0.3.0", - "rc-tooltip": "~5.1.1", - "rc-tree": "~4.2.1", - "rc-tree-select": "~4.3.0", - "rc-trigger": "^5.2.10", - "rc-upload": "~4.3.0", - "rc-util": "^5.13.1", - "scroll-into-view-if-needed": "^2.2.25" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/@ant-design/react-slick": { - "version": "0.28.4", - "resolved": "https://registry.nlark.com/@ant-design/react-slick/download/@ant-design/react-slick-0.28.4.tgz", - "integrity": "sha1-iylrh618euh38qUnuBt+69ndKak=", - "dependencies": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", - "json2mq": "^0.2.0", - "lodash": "^4.17.21", - "resize-observer-polyfill": "^1.5.0" - }, - "peerDependencies": { - "react": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-cascader": { - "version": "1.4.3", - "resolved": "https://registry.npmmirror.com/rc-cascader/download/rc-cascader-1.4.3.tgz?cache=0&sync_timestamp=1636631133956&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-cascader%2Fdownload%2Frc-cascader-1.4.3.tgz", - "integrity": "sha1-2RsNz4FXtg6+nsPli02wVNUplGQ=", - "dependencies": { - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.0.1", - "warning": "^4.0.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-checkbox": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/rc-checkbox/download/rc-checkbox-2.3.2.tgz", - "integrity": "sha1-+Rs2eMftsrqoEhyUg8Zk+m8K78E=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-collapse": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/rc-collapse/download/rc-collapse-3.1.2.tgz?cache=0&sync_timestamp=1630552211398&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-collapse%2Fdownload%2Frc-collapse-3.1.2.tgz", - "integrity": "sha1-dgKKgRuEXQPZRgzMQJx+qK0J2xQ=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.3.4", - "rc-util": "^5.2.1", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-dialog": { - "version": "8.6.0", - "resolved": "https://registry.nlark.com/rc-dialog/download/rc-dialog-8.6.0.tgz?cache=0&sync_timestamp=1627271954008&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-dialog%2Fdownload%2Frc-dialog-8.6.0.tgz", - "integrity": "sha1-OyKNrAhd5e7YxiN/MRYhBGh0Quc=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-motion": "^2.3.0", - "rc-util": "^5.6.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-drawer": { - "version": "4.3.1", - "resolved": "https://registry.nlark.com/rc-drawer/download/rc-drawer-4.3.1.tgz?cache=0&sync_timestamp=1630560057707&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-drawer%2Fdownload%2Frc-drawer-4.3.1.tgz", - "integrity": "sha1-NWMzp68Bt3er1oXJbCzmLvtE8/M=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.7.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-dropdown": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/rc-dropdown/download/rc-dropdown-3.2.0.tgz", - "integrity": "sha1-2mwq2kA4QrruOp6Qmgsakbo+EJA=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-trigger": "^5.0.4" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/antd/node_modules/rc-field-form": { - "version": "1.20.1", - "resolved": "https://registry.npmmirror.com/rc-field-form/download/rc-field-form-1.20.1.tgz", - "integrity": "sha1-0cUYiBB88HW0JwS3tXW++Ew1kpE=", - "dependencies": { - "@babel/runtime": "^7.8.4", - "async-validator": "^3.0.3", - "rc-util": "^5.8.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">= 16.9.0", - "react-dom": ">= 16.9.0" - } - }, - "node_modules/antd/node_modules/rc-image": { - "version": "5.2.5", - "resolved": "https://registry.nlark.com/rc-image/download/rc-image-5.2.5.tgz?cache=0&sync_timestamp=1627889032895&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-image%2Fdownload%2Frc-image-5.2.5.tgz", - "integrity": "sha1-ROb/yEJiaCeWDnq3LhwNbzqM5EA=", - "dependencies": { - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-dialog": "~8.6.0", - "rc-util": "^5.0.6" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-input-number": { - "version": "7.1.4", - "resolved": "https://registry.npmmirror.com/rc-input-number/download/rc-input-number-7.1.4.tgz", - "integrity": "sha1-nXQQyR/43GOE0CM8IN8niYKYn5o=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.9.8" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-mentions": { - "version": "1.6.1", - "resolved": "https://registry.nlark.com/rc-mentions/download/rc-mentions-1.6.1.tgz", - "integrity": "sha1-RgNQJ9ZKoz74QLoPvUEYceNGF64=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-menu": "^9.0.0", - "rc-textarea": "^0.3.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.0.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-menu": { - "version": "9.0.14", - "resolved": "https://registry.npmmirror.com/rc-menu/download/rc-menu-9.0.14.tgz?cache=0&sync_timestamp=1634109365033&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-menu%2Fdownload%2Frc-menu-9.0.14.tgz", - "integrity": "sha1-KJvaSi9sXrsySOLjBdUs8Mc8udU=", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.4.3", - "rc-overflow": "^1.2.0", - "rc-trigger": "^5.1.2", - "rc-util": "^5.12.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-menu/node_modules/rc-overflow": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/rc-overflow/download/rc-overflow-1.2.2.tgz?cache=0&sync_timestamp=1622805758606&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-overflow%2Fdownload%2Frc-overflow-1.2.2.tgz", - "integrity": "sha1-lbAiIBbAzb3A24X1acJi53BqXyI=", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-motion": { - "version": "2.4.4", - "resolved": "https://registry.nlark.com/rc-motion/download/rc-motion-2.4.4.tgz", - "integrity": "sha1-6ZXV+iT8kwZcJPcUhXzyZ31lW7A=", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.2.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-notification": { - "version": "4.5.7", - "resolved": "https://registry.nlark.com/rc-notification/download/rc-notification-4.5.7.tgz?cache=0&sync_timestamp=1622341102130&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-notification%2Fdownload%2Frc-notification-4.5.7.tgz", - "integrity": "sha1-Jl5uagwaD6xj1qvU2DLrj/MVIvE=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.2.0", - "rc-util": "^5.0.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-pagination": { - "version": "3.1.11", - "resolved": "https://registry.npmmirror.com/rc-pagination/download/rc-pagination-3.1.11.tgz?cache=0&sync_timestamp=1636949339640&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-pagination%2Fdownload%2Frc-pagination-3.1.11.tgz", - "integrity": "sha512-i0pUAVnhkpkvi2gunvHzSa97gj3m/m/pEC8K0mq9RqXnd3LrPipgViaca0WZtetfsew6lpV9ndnD4JGU208U1w==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-picker": { - "version": "2.5.19", - "resolved": "https://registry.npmmirror.com/rc-picker/download/rc-picker-2.5.19.tgz", - "integrity": "sha1-c9B1RvrDmS8L+r8niWVKyto55G8=", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "date-fns": "2.x", - "dayjs": "1.x", - "moment": "^2.24.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.4.0", - "shallowequal": "^1.1.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-progress": { - "version": "3.1.4", - "resolved": "https://registry.nlark.com/rc-progress/download/rc-progress-3.1.4.tgz", - "integrity": "sha1-ZgQND659jO0rOFiDeOzLKGS61hU=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-rate": { - "version": "2.9.1", - "resolved": "https://registry.npm.taobao.org/rc-rate/download/rc-rate-2.9.1.tgz", - "integrity": "sha1-5Dy5XE65CiweCxbsZhTYxDUwpzE=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.0.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-resize-observer": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/rc-resize-observer/download/rc-resize-observer-1.0.1.tgz", - "integrity": "sha1-zNCYZUP/G/SfilgeisS7cU7STc0=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-util": "^5.0.0", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-select": { - "version": "12.1.13", - "resolved": "https://registry.npmmirror.com/rc-select/download/rc-select-12.1.13.tgz", - "integrity": "sha1-wzVgzLkznTBpW1JFj1Xvw1rzUnM=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.0.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.9.8", - "rc-virtual-list": "^3.2.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/antd/node_modules/rc-select/node_modules/rc-overflow": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/rc-overflow/download/rc-overflow-1.2.2.tgz?cache=0&sync_timestamp=1622805758606&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-overflow%2Fdownload%2Frc-overflow-1.2.2.tgz", - "integrity": "sha1-lbAiIBbAzb3A24X1acJi53BqXyI=", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-select/node_modules/rc-virtual-list": { - "version": "3.4.2", - "resolved": "https://registry.npmmirror.com/rc-virtual-list/download/rc-virtual-list-3.4.2.tgz", - "integrity": "sha1-EHgyeqcjC15FbWee0s6Z88A269E=", - "license": "MIT", - "dependencies": { - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.0.7" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/antd/node_modules/rc-slider": { - "version": "9.7.4", - "resolved": "https://registry.npmmirror.com/rc-slider/download/rc-slider-9.7.4.tgz", - "integrity": "sha1-QwyGByO/ZEXr9TUXtVBBei8l7tE=", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-tooltip": "^5.0.1", - "rc-util": "^5.0.0", - "shallowequal": "^1.1.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-steps": { - "version": "4.1.4", - "resolved": "https://registry.npmmirror.com/rc-steps/download/rc-steps-4.1.4.tgz", - "integrity": "sha1-C6gtsgLVnKUtBpPcmIDdFFsZ3CM=", - "dependencies": { - "@babel/runtime": "^7.10.2", - "classnames": "^2.2.3", - "rc-util": "^5.0.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-switch": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/rc-switch/download/rc-switch-3.2.2.tgz", - "integrity": "sha1-0AH3fxJmTVJZW09vtCXdnmb7qOg=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-util": "^5.0.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-table": { - "version": "7.15.2", - "resolved": "https://registry.npmmirror.com/rc-table/download/rc-table-7.15.2.tgz?cache=0&sync_timestamp=1636025076556&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-table%2Fdownload%2Frc-table-7.15.2.tgz", - "integrity": "sha1-9qtzss+xx288+WgshVVhQjxrWyI=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.13.0", - "shallowequal": "^1.1.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-tabs": { - "version": "11.10.3", - "resolved": "https://registry.npmmirror.com/rc-tabs/download/rc-tabs-11.10.3.tgz?cache=0&sync_timestamp=1636604064520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-tabs%2Fdownload%2Frc-tabs-11.10.3.tgz", - "integrity": "sha512-rPxsci+76/nnJowNOBO3LTi4eL6trG49cR9yPc4XbuyHXhCHUujN5F4+jFl7trISy+yVN6gCZ/wiTtVnkcR/UA==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "classnames": "2.x", - "rc-dropdown": "^3.2.0", - "rc-menu": "^9.0.0", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-textarea": { - "version": "0.3.5", - "resolved": "https://registry.nlark.com/rc-textarea/download/rc-textarea-0.3.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-textarea%2Fdownload%2Frc-textarea-0.3.5.tgz", - "integrity": "sha1-B+1EXd25TlrmdkZ2kjpJvdrZsuw=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.7.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-tooltip": { - "version": "5.1.1", - "resolved": "https://registry.nlark.com/rc-tooltip/download/rc-tooltip-5.1.1.tgz?cache=0&sync_timestamp=1620377593371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-tooltip%2Fdownload%2Frc-tooltip-5.1.1.tgz", - "integrity": "sha1-lBeO0WLQJSvEmTtyX13CrA/M8VQ=", - "dependencies": { - "@babel/runtime": "^7.11.2", - "rc-trigger": "^5.0.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-tree": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/rc-tree/download/rc-tree-4.2.2.tgz?cache=0&sync_timestamp=1635165380239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-tree%2Fdownload%2Frc-tree-4.2.2.tgz", - "integrity": "sha1-RCkYfLv77L6YlxSmB+Peizq3dj8=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.0.0", - "rc-virtual-list": "^3.0.1" - }, - "engines": { - "node": ">=10.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/antd/node_modules/rc-tree-select": { - "version": "4.3.3", - "resolved": "https://registry.npmmirror.com/rc-tree-select/download/rc-tree-select-4.3.3.tgz", - "integrity": "sha1-KOuk2KjcjA+bYdg85GWEKmkV7KQ=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-select": "^12.0.0", - "rc-tree": "^4.0.0", - "rc-util": "^5.0.5" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/antd/node_modules/rc-tree/node_modules/rc-virtual-list": { - "version": "3.4.2", - "resolved": "https://registry.npmmirror.com/rc-virtual-list/download/rc-virtual-list-3.4.2.tgz", - "integrity": "sha1-EHgyeqcjC15FbWee0s6Z88A269E=", - "license": "MIT", - "dependencies": { - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.0.7" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/antd/node_modules/rc-trigger": { - "version": "5.2.10", - "resolved": "https://registry.nlark.com/rc-trigger/download/rc-trigger-5.2.10.tgz", - "integrity": "sha1-igBXqUCxuQJ+qjO+7IpuzYXM4rE=", - "dependencies": { - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-align": "^4.0.0", - "rc-motion": "^2.0.0", - "rc-util": "^5.5.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-trigger/node_modules/rc-align": { - "version": "4.0.11", - "resolved": "https://registry.nlark.com/rc-align/download/rc-align-4.0.11.tgz?cache=0&sync_timestamp=1628678366435&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-align%2Fdownload%2Frc-align-4.0.11.tgz", - "integrity": "sha1-gZjGLbJmvBuO8F5WwTJ1v3Jiil4=", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "dom-align": "^1.7.0", - "lodash": "^4.17.21", - "rc-util": "^5.3.0", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-upload": { - "version": "4.3.2", - "resolved": "https://registry.npmmirror.com/rc-upload/download/rc-upload-4.3.2.tgz?cache=0&sync_timestamp=1634707242092&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-upload%2Fdownload%2Frc-upload-4.3.2.tgz", - "integrity": "sha1-O1bIvfeyXqs1fmVFPgMrexDG88w=", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/rc-util": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/rc-util/download/rc-util-5.15.0.tgz", - "integrity": "sha512-8RI8sjOCXD3FhD3dzQNBQetpGol6BBd3sHQ/8jSGk9NPT0CH3JGtBfPODnASyE7AdDpCFQMOmgcp9CBs3S/1hg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.nlark.com/argparse/download/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/aria-query/download/aria-query-4.2.2.tgz?cache=0&sync_timestamp=1633308188641&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faria-query%2Fdownload%2Faria-query-4.2.2.tgz", - "integrity": "sha1-DSymyazrVriXfp/tau1+FbvS+Ds=", - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/arity-n": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/arity-n/download/arity-n-1.0.4.tgz", - "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=" - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/arr-flatten/download/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/arr-union/download/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.nlark.com/array-flatten/download/array-flatten-2.1.2.tgz", - "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=" - }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/array-includes/download/array-includes-3.1.4.tgz?cache=0&sync_timestamp=1633411556939&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Farray-includes%2Fdownload%2Farray-includes-3.1.4.tgz", - "integrity": "sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz", - "integrity": "sha1-hzrAD+yDdJ8lWsjdCDgUtPYykZA=" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/array-union/download/array-union-2.1.0.tgz", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.nlark.com/array-unique/download/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/array.prototype.flat/download/array.prototype.flat-1.2.5.tgz", - "integrity": "sha1-B+CXXYS7x8SM0YedYJ5oJZjTPhM=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/download/array.prototype.flatmap-1.2.5.tgz?cache=0&sync_timestamp=1633120737303&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.5.tgz", - "integrity": "sha1-kI3ILYpAaTD984WY1R50EdGNREY=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/arrify/download/arrify-2.0.1.tgz?cache=0&sync_timestamp=1619599497996&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farrify%2Fdownload%2Farrify-2.0.1.tgz", - "integrity": "sha1-yWVekzHgq81YjSp8rX6ZVvZnAfo=", - "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.nlark.com/asap/download/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", - "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", - "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1622213272480&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/ast-types-flow/download/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/astral-regex/download/astral-regex-2.0.0.tgz", - "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", - "engines": { - "node": ">=8" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", - "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=" - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/async-limiter/download/async-limiter-1.0.1.tgz", - "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=" - }, - "node_modules/async-validator": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-3.5.2.tgz?cache=0&sync_timestamp=1634529532378&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-3.5.2.tgz", - "integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA=" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz", - "integrity": "sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.nlark.com/atob/download/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmmirror.com/autoprefixer/download/autoprefixer-9.8.8.tgz?cache=0&sync_timestamp=1635421245353&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.8.tgz", - "integrity": "sha1-/UvUWVOF+m8GWZ3nSaTV96R0lXo=", - "license": "MIT", - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - }, - "node_modules/autoprefixer/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz", - "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=", - "license": "ISC" - }, - "node_modules/axe-core": { - "version": "4.3.5", - "resolved": "https://registry.npmmirror.com/axe-core/download/axe-core-4.3.5.tgz?cache=0&sync_timestamp=1636734431667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxe-core%2Fdownload%2Faxe-core-4.3.5.tgz", - "integrity": "sha1-eNaRG6MXqCYr/uKSrq/MHgS0nMU=", - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmmirror.com/axios/download/axios-0.21.4.tgz", - "integrity": "sha1-xnuQ3AVo5cHPKwuFjEO6KOLtpXU=", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/axobject-query/download/axobject-query-2.2.0.tgz?cache=0&sync_timestamp=1633307441530&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxobject-query%2Fdownload%2Faxobject-query-2.2.0.tgz", - "integrity": "sha1-lD1H4QwLcEqkInXiDt83ImSJib4=" - }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/babel-eslint/download/babel-eslint-10.1.0.tgz", - "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-eslint/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-extract-comments": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/babel-extract-comments/download/babel-extract-comments-1.0.0.tgz", - "integrity": "sha1-Cirt+BQX7TkbheGLRhTmk6A1GiE=", - "dependencies": { - "babylon": "^6.18.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/babel-jest/download/babel-jest-26.6.3.tgz?cache=0&sync_timestamp=1634626745680&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-jest%2Fdownload%2Fbabel-jest-26.6.3.tgz", - "integrity": "sha1-2H0lywA3V3oMifguV1XF0pPAEFY=", - "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/babel-loader/download/babel-loader-8.1.0.tgz?cache=0&sync_timestamp=1634769717079&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz", - "integrity": "sha1-xhHVESvVIJq+i5+oTD5NolJ18cM=", - "dependencies": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 6.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.nlark.com/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1618847141951&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/download/babel-plugin-istanbul-6.1.1.tgz?cache=0&sync_timestamp=1634418060011&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-istanbul%2Fdownload%2Fbabel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha1-+ojsWSMv2bTjbbvFQKjsmptH2nM=", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-26.6.2.tgz?cache=0&sync_timestamp=1631520418164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-jest-hoist%2Fdownload%2Fbabel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha1-gYW9AwNI0lTG192XQ1Xmoosh5i0=", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.nlark.com/babel-plugin-macros/download/babel-plugin-macros-2.8.0.tgz?cache=0&sync_timestamp=1620238165179&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-macros%2Fdownload%2Fbabel-plugin-macros-2.8.0.tgz", - "integrity": "sha1-D5WKfMZVax5lNERl2ZERoeXhATg=", - "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-6.0.0.tgz", - "integrity": "sha1-2k/uhTxS9rHmk19BwaL8UL1KmYI=", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.7", - "resolved": "https://registry.npmmirror.com/babel-plugin-named-asset-import/download/babel-plugin-named-asset-import-0.3.7.tgz", - "integrity": "sha1-FWzVXT8SKKV2V3Q0CTevyDmAZ90=", - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.2.3", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.3.tgz?cache=0&sync_timestamp=1636799838015&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.3.tgz", - "integrity": "sha1-btjjCYGwYvj+asqIc6N+vMjMHA8=", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.4", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.3.0.tgz?cache=0&sync_timestamp=1636799836766&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-corejs3%2Fdownload%2Fbabel-plugin-polyfill-corejs3-0.3.0.tgz", - "integrity": "sha1-+nyj0e6d3GGTYA/7YyyXhdVJGK8=", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.4", - "core-js-compat": "^3.18.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.2.3", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.2.3.tgz?cache=0&sync_timestamp=1636799764770&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.2.3.tgz", - "integrity": "sha1-LpgI9QJ8QzbJlJkrSKQmJYDLjW0=", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "node_modules/babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dependencies": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-react-remove-prop-types/download/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha1-8u2vm0xqX75cHWeL+1MQeMFVXzo=" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/babel-preset-current-node-syntax/download/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha1-tDmSObibKgEfndvj5PQB/EDP9zs=", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/babel-preset-jest/download/babel-preset-jest-26.6.2.tgz?cache=0&sync_timestamp=1631520438953&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-preset-jest%2Fdownload%2Fbabel-preset-jest-26.6.2.tgz", - "integrity": "sha1-dHhysRcd8DIlJCZYaIHWLTF5j+4=", - "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-react-app": { - "version": "10.0.0", - "resolved": "https://registry.npmmirror.com/babel-preset-react-app/download/babel-preset-react-app-10.0.0.tgz", - "integrity": "sha1-aJtg7ccF+KcM6H9Hqw5WCjF9cEU=", - "dependencies": { - "@babel/core": "7.12.3", - "@babel/plugin-proposal-class-properties": "7.12.1", - "@babel/plugin-proposal-decorators": "7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1", - "@babel/plugin-proposal-numeric-separator": "7.12.1", - "@babel/plugin-proposal-optional-chaining": "7.12.1", - "@babel/plugin-transform-flow-strip-types": "7.12.1", - "@babel/plugin-transform-react-display-name": "7.12.1", - "@babel/plugin-transform-runtime": "7.12.1", - "@babel/preset-env": "7.12.1", - "@babel/preset-react": "7.12.1", - "@babel/preset-typescript": "7.12.1", - "@babel/runtime": "7.12.1", - "babel-plugin-macros": "2.8.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmmirror.com/@babel/core/download/@babel/core-7.12.3.tgz?cache=0&sync_timestamp=1635560662864&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.3.tgz", - "integrity": "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.1.tgz", - "integrity": "sha1-DixndMTOSL5BIRm01pOsd392haY=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.1.tgz", - "integrity": "sha1-zOEiID/IoyeUKW/Dd8be2vQ2N5c=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-display-name%2Fdownload%2F%40babel%2Fplugin-transform-react-display-name-7.12.1.tgz", - "integrity": "sha1-HLzQw7HWZIxVN0oi/JtrflNBwA0=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/preset-env": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/download/@babel/preset-env-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.1.tgz", - "integrity": "sha1-nH5cqCoZ78hlOEu0mJFI0u5desI=", - "dependencies": { - "@babel/compat-data": "^7.12.1", - "@babel/helper-compilation-targets": "^7.12.1", - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.1", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.1", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.1", - "core-js-compat": "^3.6.2", - "semver": "^5.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/preset-react": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/preset-react/download/@babel/preset-react-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-react%2Fdownload%2F%40babel%2Fpreset-react-7.12.1.tgz", - "integrity": "sha1-fwIrE/VbbdgvAPFtHFma5imFNYw=", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.12.1", - "@babel/plugin-transform-react-jsx": "^7.12.1", - "@babel/plugin-transform-react-jsx-development": "^7.12.1", - "@babel/plugin-transform-react-jsx-self": "^7.12.1", - "@babel/plugin-transform-react-jsx-source": "^7.12.1", - "@babel/plugin-transform-react-pure-annotations": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/preset-react/node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/download/@babel/plugin-transform-react-jsx-self-7.16.0.tgz?cache=0&sync_timestamp=1635891993050&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-jsx-self%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-self-7.16.0.tgz", - "integrity": "sha1-CSAhWKu8cWoIMw85K/uY1rms+gw=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/preset-react/node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/download/@babel/plugin-transform-react-jsx-source-7.16.0.tgz", - "integrity": "sha1-1AyVnXgDquOCJFlFhXSGk+hMCiI=", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/runtime": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.12.1.tgz?cache=0&sync_timestamp=1636495059115&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.1.tgz", - "integrity": "sha1-tBFqa2cR0BCy2tO3tuQ78bmVR0A=", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/babel-preset-react-app/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmmirror.com/core-js/download/core-js-2.6.12.tgz", - "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", - "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1626992969133&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz", - "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "node_modules/bfj": { - "version": "7.0.2", - "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-7.0.2.tgz", - "integrity": "sha1-GYjOdvOt2awpE/2LpHqtnmUb+7I=", - "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", - "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz?cache=0&sync_timestamp=1602657218976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.7.2.tgz", - "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=" - }, - "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz", - "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz?cache=0&sync_timestamp=1615817950402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz", - "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/bytes/download/bytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.nlark.com/qs/download/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.nlark.com/bonjour/download/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/boolbase/download/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/brorand/download/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/browserify-cipher/download/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", - "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz?cache=0&sync_timestamp=1605194257215&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-rsa%2Fdownload%2Fbrowserify-rsa-4.1.0.tgz", - "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.nlark.com/browserify-sign/download/browserify-sign-4.2.1.tgz", - "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/browserify-zlib/download/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.17.6", - "resolved": "https://registry.npmmirror.com/browserslist/download/browserslist-4.17.6.tgz", - "integrity": "sha1-x2vjPneGtJf2bK0lpzdWyLk4mF0=", - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001274", - "electron-to-chromium": "^1.3.886", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/bser/download/bser-2.1.1.tgz", - "integrity": "sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU=", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.nlark.com/buffer/download/buffer-4.9.2.tgz", - "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/buffer-from/download/buffer-from-1.1.2.tgz", - "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", - "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/buffer/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/builtin-modules/download/builtin-modules-3.2.0.tgz", - "integrity": "sha1-RdXbmefuXmvE82LgCL+RerUEmIc=", - "engines": { - "node": ">=6" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/bytes/download/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.nlark.com/cacache/download/cacache-15.3.0.tgz", - "integrity": "sha1-3IU4D7L1Vv492kxxm/oOyHWn8es=", - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/cache-base/download/cache-base-1.0.1.tgz?cache=0&sync_timestamp=1636237452423&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz", - "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/caller-callsite/download/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/callsites/download/callsites-2.0.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1633674116889&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-4.1.2.tgz?cache=0&sync_timestamp=1606867311564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.2.tgz", - "integrity": "sha1-lygHKpVPgFIoIlpt7qazhGHhvVo=", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-6.2.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", - "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001280", - "resolved": "https://registry.npmmirror.com/caniuse-lite/download/caniuse-lite-1.0.30001280.tgz?cache=0&sync_timestamp=1636700079633&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001280.tgz", - "integrity": "sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz", - "integrity": "sha1-+5U7+uvreB9iiYI52rtCbQilCaQ=", - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz?cache=0&sync_timestamp=1614018570698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.3.0.tgz", - "integrity": "sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/center-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dependencies": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/char-regex/download/char-regex-1.0.2.tgz", - "integrity": "sha1-10Q1giYhf5ge1Y9Hmx1rzClUXc8=", - "engines": { - "node": ">=10" - } - }, - "node_modules/check-types": { - "version": "11.1.2", - "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-11.1.2.tgz", - "integrity": "sha1-hqfBK/VTn2Mk6w5wyoiWwOOPPi8=" - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-3.5.2.tgz", - "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", - "optional": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz", - "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/ci-info/download/ci-info-2.0.0.tgz", - "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=" - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.nlark.com/cjs-module-lexer/download/cjs-module-lexer-0.6.0.tgz?cache=0&sync_timestamp=1626379164639&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcjs-module-lexer%2Fdownload%2Fcjs-module-lexer-0.6.0.tgz", - "integrity": "sha1-QYb8yg6uF1lwruhwuf4tbPjVZV8=" - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/classnames/download/classnames-2.3.1.tgz", - "integrity": "sha1-38+jiR4wbsHa0QXQ6I9EF7hTXo4=" - }, - "node_modules/clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmmirror.com/clean-css/download/clean-css-4.2.4.tgz?cache=0&sync_timestamp=1634992314911&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fclean-css%2Fdownload%2Fclean-css-4.2.4.tgz", - "integrity": "sha1-czv0brpOYHxokepXwkqYk1aDEXg=", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1621915066376&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/clsx/download/clsx-1.1.1.tgz", - "integrity": "sha1-mLMTT5q73yOyZjSRrOE8XAOnMYg=", - "engines": { - "node": ">=6" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/coa/download/coa-2.0.2.tgz", - "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/collect-v8-coverage/download/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha1-zCyOlPwYu9/+ZNZTRXDIpnOyf1k=" - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/collection-visit/download/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/color/download/color-3.2.1.tgz?cache=0&sync_timestamp=1628104117021&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolor%2Fdownload%2Fcolor-3.2.1.tgz", - "integrity": "sha1-NUTcGYyvRJDD7MmnkLVP6f9F4WQ=", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/color-string": { - "version": "1.6.0", - "resolved": "https://registry.nlark.com/color-string/download/color-string-1.6.0.tgz", - "integrity": "sha1-w5FfYf4mdnLLfh4GTJ1pIhn2wxI=", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/commander/download/commander-4.1.1.tgz", - "integrity": "sha1-n9YCvZNilOnp70aj9NaWQESxgGg=", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-tags": { - "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/common-tags/download/common-tags-1.8.1.tgz?cache=0&sync_timestamp=1636657225472&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.1.tgz", - "integrity": "sha512-uOZd85rJqrdEIE/JjhW5YAeatX8iqjjvVzIyfx7JL7G5r9Tep6YpYT9gEJWhWpVyDQEyzukWd6p2qULpJ8tmBw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" - }, - "node_modules/compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/compose-function/download/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "dependencies": { - "arity-n": "^1.0.4" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz", - "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz", - "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npm.taobao.org/compute-scroll-into-view/download/compute-scroll-into-view-1.0.17.tgz?cache=0&sync_timestamp=1614042349490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompute-scroll-into-view%2Fdownload%2Fcompute-scroll-into-view-1.0.17.tgz", - "integrity": "sha1-aojxis2dQunPS6pr7H4FImB6t6s=" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/confusing-browser-globals/download/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha1-MNHn89G4grJexJM9HRraw1PSClk=" - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/console-browserify/download/console-browserify-1.2.0.tgz", - "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=" - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/constants-browserify/download/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz", - "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/contour_plot": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/contour_plot/download/contour_plot-0.0.1.tgz", - "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.8.0.tgz?cache=0&sync_timestamp=1624045508580&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.8.0.tgz", - "integrity": "sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", - "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.nlark.com/cookie-signature/download/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/copy-descriptor/download/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/copy-to-clipboard/download/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha1-EVqhqZmP+rYZb5MHatbaO5E2Yq4=", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/core-js": { - "version": "3.19.1", - "resolved": "https://registry.npmmirror.com/core-js/download/core-js-3.19.1.tgz", - "integrity": "sha1-9vFzyuI+c6fYj6I7bp2jKSdsZkE=", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.19.1", - "resolved": "https://registry.npmmirror.com/core-js-compat/download/core-js-compat-3.19.1.tgz?cache=0&sync_timestamp=1635883123462&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.19.1.tgz", - "integrity": "sha1-/lmPGpvzcxDXfDgTlo6ffHu5lHY=", - "license": "MIT", - "dependencies": { - "browserslist": "^4.17.6", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", - "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.19.1", - "resolved": "https://registry.npmmirror.com/core-js-pure/download/core-js-pure-3.19.1.tgz", - "integrity": "sha1-7f/B/HY0AApVugXpWz8P6Vh6WqQ=", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.3.tgz", - "integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=" - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-7.0.1.tgz", - "integrity": "sha1-cU11ZSLKzoZ4Z8y0R0xdAbuuXW0=", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", - "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-1.0.0.tgz?cache=0&sync_timestamp=1617610491419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/css": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz", - "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=", - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "node_modules/css-blank-pseudo": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/css-blank-pseudo/download/css-blank-pseudo-0.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz", - "integrity": "sha1-3979MlS/ioICeZNnTM81SDv8s8U=", - "dependencies": { - "postcss": "^7.0.5" - }, - "bin": { - "css-blank-pseudo": "cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", - "dependencies": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "engines": { - "node": ">4" - } - }, - "node_modules/css-has-pseudo": { - "version": "0.10.0", - "resolved": "https://registry.nlark.com/css-has-pseudo/download/css-has-pseudo-0.10.0.tgz?cache=0&sync_timestamp=1631805424332&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz", - "integrity": "sha1-PGQqs0yiQsWcQaEl35EFhB9pZu4=", - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" - }, - "bin": { - "css-has-pseudo": "cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/css-has-pseudo/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/css-loader/download/css-loader-4.3.0.tgz?cache=0&sync_timestamp=1635967924209&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcss-loader%2Fdownload%2Fcss-loader-4.3.0.tgz", - "integrity": "sha1-yIivZLKlsuhUYscsD0qFx+Lggh4=", - "dependencies": { - "camelcase": "^6.0.0", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^2.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.3", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.1", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "webpack": "^4.27.0 || ^5.0.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/css-prefers-color-scheme/download/css-prefers-color-scheme-3.1.1.tgz?cache=0&sync_timestamp=1631886309650&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha1-b4MKJxQZnU8NDQu4onkW7WXP8fQ=", - "dependencies": { - "postcss": "^7.0.5" - }, - "bin": { - "css-prefers-color-scheme": "cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-4.1.3.tgz", - "integrity": "sha1-pwRA9wMX8maRGK10/xBeZYSccGc=", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=" - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1617191696722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", - "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/css-what/download/css-what-5.1.0.tgz", - "integrity": "sha1-P3tweq32M7r2LCzrhXm1RbtA9/4=", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssdb": { - "version": "4.4.0", - "resolved": "https://registry.npm.taobao.org/cssdb/download/cssdb-4.4.0.tgz", - "integrity": "sha1-O/LypowQ9cagir2SN4Mx7oA83bA=" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-3.0.0.tgz", - "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "4.1.11", - "resolved": "https://registry.npmmirror.com/cssnano/download/cssnano-4.1.11.tgz", - "integrity": "sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk=", - "dependencies": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz?cache=0&sync_timestamp=1636226947365&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.8.tgz", - "integrity": "sha1-kgYisfwelaNOiDggPxOXpQTy0/8=", - "dependencies": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano/node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-5.2.1.tgz", - "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1636944618780&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz", - "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.3.tgz?cache=0&sync_timestamp=1617191696722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.1.3.tgz", - "integrity": "sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz?cache=0&sync_timestamp=1631835926316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.14.tgz", - "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=" - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.nlark.com/cssom/download/cssom-0.4.4.tgz", - "integrity": "sha1-WmbPk9LQtmHYC/akT7ZfXC5OChA=" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/cssstyle/download/cssstyle-2.3.0.tgz", - "integrity": "sha1-/2ZaDdvcMYZLCWR/NBY0Q9kLCFI=", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.nlark.com/cssom/download/cssom-0.3.8.tgz", - "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=" - }, - "node_modules/csstype": { - "version": "3.0.9", - "resolved": "https://registry.nlark.com/csstype/download/csstype-3.0.9.tgz?cache=0&sync_timestamp=1631540782346&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcsstype%2Fdownload%2Fcsstype-3.0.9.tgz", - "integrity": "sha1-ZBCvMbJr0FIJM9AsvGT86c4/vws=" - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/d/download/d-1.0.1.tgz", - "integrity": "sha1-hpgJU3LVjb7jRv/Qxwk/mfj561o=", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/d3-color": { - "version": "1.4.1", - "resolved": "https://registry.nlark.com/d3-color/download/d3-color-1.4.1.tgz?cache=0&sync_timestamp=1622917792948&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-color%2Fdownload%2Fd3-color-1.4.1.tgz", - "integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo=" - }, - "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/d3-dispatch/download/d3-dispatch-2.0.0.tgz", - "integrity": "sha1-ihjhb3bdP8rvQhY8l7kmqptV588=" - }, - "node_modules/d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/d3-ease/download/d3-ease-1.0.7.tgz", - "integrity": "sha1-moNIkO+LiujFWLL+Vb1X9Zk7heI=" - }, - "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/d3-force/download/d3-force-2.1.1.tgz?cache=0&sync_timestamp=1622921037410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-force%2Fdownload%2Fd3-force-2.1.1.tgz", - "integrity": "sha1-8gzL8ebJ6ArdGSbwm1H2hqi8CTc=", - "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" - } - }, - "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/d3-hierarchy/download/d3-hierarchy-2.0.0.tgz?cache=0&sync_timestamp=1622918433189&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-hierarchy%2Fdownload%2Fd3-hierarchy-2.0.0.tgz", - "integrity": "sha1-2riKWMo+ehvGyrOQ6JZn/MbSAhg=" - }, - "node_modules/d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.nlark.com/d3-interpolate/download/d3-interpolate-1.4.0.tgz?cache=0&sync_timestamp=1622918433472&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-interpolate%2Fdownload%2Fd3-interpolate-1.4.0.tgz", - "integrity": "sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=", - "dependencies": { - "d3-color": "1" - } - }, - "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/d3-quadtree/download/d3-quadtree-2.0.0.tgz", - "integrity": "sha1-7brQRc74hwH2/uOu6Ok/szLTD50=" - }, - "node_modules/d3-regression": { - "version": "1.3.9", - "resolved": "https://registry.nlark.com/d3-regression/download/d3-regression-1.3.9.tgz?cache=0&sync_timestamp=1619194224119&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-regression%2Fdownload%2Fd3-regression-1.3.9.tgz", - "integrity": "sha1-YcNKy5trvZFy7eifBdC3+9V8zcA=" - }, - "node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.nlark.com/d3-timer/download/d3-timer-1.0.10.tgz", - "integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU=" - }, - "node_modules/dagre": { - "version": "0.8.5", - "resolved": "https://registry.npm.taobao.org/dagre/download/dagre-0.8.5.tgz", - "integrity": "sha1-ujCwBV2sErbB/MJHgXRCd30Gr+4=", - "dependencies": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/damerau-levenshtein/download/damerau-levenshtein-1.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdamerau-levenshtein%2Fdownload%2Fdamerau-levenshtein-1.0.7.tgz", - "integrity": "sha1-ZDaAA1EqGmmSWTdBoJqdMag29V0=" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/data-urls/download/data-urls-2.0.0.tgz", - "integrity": "sha1-FWSFpyljqXD11YIar2Qr7yvy25s=", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/date-fns": { - "version": "2.25.0", - "resolved": "https://registry.npmmirror.com/date-fns/download/date-fns-2.25.0.tgz", - "integrity": "sha1-jFyPHZWL44CamgP0t0LrqJT8VoA=", - "license": "MIT", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/dayjs": { - "version": "1.10.7", - "resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.7.tgz", - "integrity": "sha1-LPX5Gt0oEWdIRAhmoKHSbzps5Gg=" - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmmirror.com/debug/download/debug-4.3.2.tgz", - "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1633055756574&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.nlark.com/decimal.js/download/decimal.js-10.3.1.tgz", - "integrity": "sha1-2MOkRKnGd0umDKatcmHDqU/V54M=" - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/decode-uri-component/download/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz?cache=0&sync_timestamp=1608580825991&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdedent%2Fdownload%2Fdedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/deep-equal/download/deep-equal-1.1.1.tgz", - "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.nlark.com/deepmerge/download/deepmerge-4.2.2.tgz", - "integrity": "sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/default-gateway/download/default-gateway-4.2.0.tgz", - "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/default-gateway/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/execa/download/execa-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-1.1.0.tgz?cache=0&sync_timestamp=1628592856164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&sync_timestamp=1633420566316&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/default-gateway/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/default-gateway/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/default-gateway/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-1.0.0.tgz?cache=0&sync_timestamp=1628896304371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/define-property/download/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", - "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/array-union/download/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1629801109090&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/p-map/download/p-map-2.1.0.tgz?cache=0&sync_timestamp=1635931861684&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz", - "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", - "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-browser": { - "version": "5.2.1", - "resolved": "https://registry.nlark.com/detect-browser/download/detect-browser-5.2.1.tgz", - "integrity": "sha1-uIT42E6PM7uHT/7RC0vuomEz/NE=" - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/detect-newline/download/detect-newline-3.1.0.tgz", - "integrity": "sha1-V29d/GOuGhkv8ZLYrTr2MImRtlE=", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/detect-node/download/detect-node-2.1.0.tgz", - "integrity": "sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/detect-port-alt/download/detect-port-alt-1.1.6.tgz", - "integrity": "sha1-JHB96r6TLUo89iEwICfCsmZWgnU=", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/diff-sequences/download/diff-sequences-26.6.2.tgz", - "integrity": "sha1-SLqZFX3hkjQS7tQdtrbUqpynwLE=", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz", - "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.nlark.com/dns-packet/download/dns-packet-1.3.4.tgz", - "integrity": "sha1-40VQZYJKJQe6iGxVqJljuxB97G8=", - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-align": { - "version": "1.12.2", - "resolved": "https://registry.nlark.com/dom-align/download/dom-align-1.12.2.tgz?cache=0&sync_timestamp=1621853133882&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-align%2Fdownload%2Fdom-align-1.12.2.tgz", - "integrity": "sha1-D4Fk69DJwhsMeQMQSTzYVYkqzUs=" - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/dom-converter/download/dom-converter-0.2.0.tgz", - "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256858583&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz", - "integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1627591557212&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=" - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/domexception/download/domexception-2.0.1.tgz?cache=0&sync_timestamp=1633538737274&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdomexception%2Fdownload%2Fdomexception-2.0.1.tgz", - "integrity": "sha1-+0Su+6eT4VdLCvau0oAdBXUp8wQ=", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/webidl-conversions/download/webidl-conversions-5.0.0.tgz", - "integrity": "sha1-rlnIoAsSFUOirMZcBDT1ew/BGv8=", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.2.2", - "resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.2.tgz?cache=0&sync_timestamp=1630246778110&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomhandler%2Fdownload%2Fdomhandler-4.2.2.tgz", - "integrity": "sha1-6CXXIdGahrjCAaNSZOImxnjudV8=", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-2.8.0.tgz", - "integrity": "sha1-RDfe9dtuLR9dbuhZvZXKfQIEgTU=", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/dot-case/download/dot-case-3.0.4.tgz?cache=0&sync_timestamp=1606867255091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.4.tgz", - "integrity": "sha1-mytnDQCkMWZ6inW6Kc0bmICc51E=", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.nlark.com/dot-prop/download/dot-prop-5.3.0.tgz", - "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.nlark.com/dotenv/download/dotenv-8.2.0.tgz?cache=0&sync_timestamp=1621628681571&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdotenv%2Fdownload%2Fdotenv-8.2.0.tgz", - "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", - "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=" - }, - "node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/dotignore/download/dotignore-0.1.2.tgz", - "integrity": "sha1-+ULyIA0ow6dvvdbw7p8yV8ii6QU=", - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", - "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.nlark.com/duplexify/download/duplexify-3.7.1.tgz?cache=0&sync_timestamp=1626860849590&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fduplexify%2Fdownload%2Fduplexify-3.7.1.tgz", - "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmmirror.com/ejs/download/ejs-2.7.4.tgz", - "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", - "hasInstallScript": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.895", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.3.895.tgz?cache=0&sync_timestamp=1636687258172&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.895.tgz", - "integrity": "sha512-9Ww3fB8CWctjqHwkOt7DQbMZMpal2x2reod+/lU4b9axO1XJEDUpPMBxs7YnjLhhqpKXIIB5SRYN/B4K0QpvyQ==" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.nlark.com/elliptic/download/elliptic-6.5.4.tgz", - "integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/emittery": { - "version": "0.7.2", - "resolved": "https://registry.nlark.com/emittery/download/emittery-0.7.2.tgz?cache=0&sync_timestamp=1631379607714&other_urls=https%3A%2F%2Fregistry.nlark.com%2Femittery%2Fdownload%2Femittery-0.7.2.tgz", - "integrity": "sha1-JVlZCOE68PVnSrQZOW4vs5TN+oI=", - "engines": { - "node": ">=10" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-9.2.2.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-9.2.2.tgz", - "integrity": "sha1-hAyIA7DYBH9P8M+WMXazLU7z7XI=" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz", - "integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=", - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", - "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npm.taobao.org/enquirer/download/enquirer-2.3.6.tgz", - "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/entities/download/entities-2.2.0.tgz", - "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=" - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.nlark.com/errno/download/errno-0.1.8.tgz", - "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.nlark.com/error-stack-parser/download/error-stack-parser-2.0.6.tgz", - "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", - "dependencies": { - "stackframe": "^1.1.1" - } - }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmmirror.com/es-abstract/download/es-abstract-1.19.1.tgz?cache=0&sync_timestamp=1633234313248&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.19.1.tgz", - "integrity": "sha1-1IhXlodpFpWd547aoN9FZicRXsM=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.nlark.com/es-to-primitive/download/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz", - "integrity": "sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE=", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.3.tgz", - "integrity": "sha1-utXTwbzawoJp9MszHkMceKxwXRg=", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567261690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-2.0.0.tgz", - "integrity": "sha1-XjKxKDPoqo+jXhvwvvqJOASEx90=", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", - "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmmirror.com/eslint/download/eslint-7.32.0.tgz?cache=0&sync_timestamp=1636156084258&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint%2Fdownload%2Feslint-7.32.0.tgz", - "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/eslint-config-react-app": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/eslint-config-react-app/download/eslint-config-react-app-6.0.0.tgz", - "integrity": "sha1-zP+fyONrMikChEy9eRl5gr41Wg4=", - "dependencies": { - "confusing-browser-globals": "^1.0.10" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0", - "@typescript-eslint/parser": "^4.0.0", - "babel-eslint": "^10.0.0", - "eslint": "^7.5.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-jest": "^24.0.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.20.3", - "eslint-plugin-react-hooks": "^4.0.8", - "eslint-plugin-testing-library": "^3.9.0" - }, - "peerDependenciesMeta": { - "eslint-plugin-jest": { - "optional": true - }, - "eslint-plugin-testing-library": { - "optional": true - } - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.nlark.com/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.6.tgz?cache=0&sync_timestamp=1629046642917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-import-resolver-node%2Fdownload%2Feslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/eslint-module-utils/download/eslint-module-utils-2.7.1.tgz?cache=0&sync_timestamp=1634152102578&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.7.1.tgz", - "integrity": "sha1-tDUAHJ+N1Kt/bQ78rkuWltTCS3w=", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364600466&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-flowtype/download/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha1-d2TMY5QPIVvz8L0tmhKTsrmytLs=", - "dependencies": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmmirror.com/eslint-plugin-import/download/eslint-plugin-import-2.25.3.tgz?cache=0&sync_timestamp=1636529205526&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/eslint-plugin-import/node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "24.7.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-jest/download/eslint-plugin-jest-24.7.0.tgz?cache=0&sync_timestamp=1636362329546&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-jest%2Fdownload%2Feslint-plugin-jest-24.7.0.tgz", - "integrity": "sha1-IGrAgzhB5Z43UXCxX40JVSGcSIk=", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^4.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">= 4", - "eslint": ">=5" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmmirror.com/eslint-plugin-jsx-a11y/download/eslint-plugin-jsx-a11y-6.5.1.tgz?cache=0&sync_timestamp=1636698418809&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-jsx-a11y%2Fdownload%2Feslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.27.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-react/download/eslint-plugin-react-7.27.0.tgz?cache=0&sync_timestamp=1636528437026&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-react%2Fdownload%2Feslint-plugin-react-7.27.0.tgz", - "integrity": "sha512-0Ut+CkzpppgFtoIhdzi2LpdpxxBvgFf99eFqWxJnUrO7mMe0eOiNpou6rvNYeVVV6lWZvTah0BFne7k5xHjARg==", - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-react-hooks/download/eslint-plugin-react-hooks-4.3.0.tgz?cache=0&sync_timestamp=1636733842218&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-react-hooks%2Fdownload%2Feslint-plugin-react-hooks-4.3.0.tgz", - "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-2.0.0-next.3.tgz", - "integrity": "sha1-1BAWKT1KhYajnKXZtfFcvqH1XkY=", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "3.10.2", - "resolved": "https://registry.npmmirror.com/eslint-plugin-testing-library/download/eslint-plugin-testing-library-3.10.2.tgz?cache=0&sync_timestamp=1635405268464&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-testing-library%2Fdownload%2Feslint-plugin-testing-library-3.10.2.tgz", - "integrity": "sha1-YJ7CsDadp88ubZ7f9doVPMMdh70=", - "dependencies": { - "@typescript-eslint/experimental-utils": "^3.10.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-3.10.1.tgz?cache=0&sync_timestamp=1636927348659&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-3.10.1.tgz", - "integrity": "sha1-4Xn/yBqA68ri6gTgMy+LJRNFpoY=", - "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/types": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-3.10.1.tgz?cache=0&sync_timestamp=1636927435113&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypes%2Fdownload%2F%40typescript-eslint%2Ftypes-3.10.1.tgz", - "integrity": "sha1-HXRj+nwy2KI6tQioA8ov4m51hyc=", - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-3.10.1.tgz?cache=0&sync_timestamp=1636928494244&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypescript-estree%2Fdownload%2F%40typescript-eslint%2Ftypescript-estree-3.10.1.tgz", - "integrity": "sha1-/QBhzDit1PrUUTbWVECFafNluFM=", - "dependencies": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-3.10.1.tgz?cache=0&sync_timestamp=1636927358040&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fvisitor-keys%2Fdownload%2F%40typescript-eslint%2Fvisitor-keys-3.10.1.tgz", - "integrity": "sha1-zUJ0dz4+tjsuhwrGAidEh+zR6TE=", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz", - "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.nlark.com/eslint-scope/download/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-3.0.0.tgz", - "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=", - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz", - "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/eslint-webpack-plugin/download/eslint-webpack-plugin-2.6.0.tgz", - "integrity": "sha512-V+LPY/T3kur5QO3u+1s34VDTcRxjXWPUGM4hlmTb5DwVD0OQz631yGTxJZf4SpAqAjdbBVe978S8BJeHpAdOhQ==", - "dependencies": { - "@types/eslint": "^7.28.2", - "arrify": "^2.0.1", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz", - "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz", - "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", - "engines": { - "node": ">=10" - } - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.nlark.com/espree/download/espree-7.3.1.tgz?cache=0&sync_timestamp=1631307207311&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fespree%2Fdownload%2Fespree-7.3.1.tgz", - "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz", - "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-0.6.1.tgz", - "integrity": "sha1-UwSRQ/QMbrkYsjZx0f4yGfOhs2I=" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.nlark.com/etag/download/etag-1.8.1.tgz?cache=0&sync_timestamp=1618847044821&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fetag%2Fdownload%2Fetag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz", - "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/events/download/events-3.3.0.tgz", - "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/eventsource": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/eventsource/download/eventsource-1.1.0.tgz", - "integrity": "sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68=", - "dependencies": { - "original": "^1.0.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.6.tgz?cache=0&sync_timestamp=1616789108646&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexec-sh%2Fdownload%2Fexec-sh-0.3.6.tgz", - "integrity": "sha1-/yZPnjJVGaYMteJzaSlDSDzKY7w=" - }, - "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/execa/download/execa-4.1.0.tgz", - "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz", - "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/array-flatten/download/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.nlark.com/qs/download/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/ext/download/ext-1.6.0.tgz", - "integrity": "sha1-OHHVBkHodMwXLitT+RmELRnbTFI=", - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/type/download/type-2.5.0.tgz", - "integrity": "sha1-Ci54wud5B7JSq+XymMGwHGPw2z0=" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/extglob/download/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz?cache=0&sync_timestamp=1625773305786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.7.tgz", - "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz", - "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.nlark.com/faye-websocket/download/faye-websocket-0.11.4.tgz", - "integrity": "sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.1.tgz", - "integrity": "sha1-/IT7OdJwnPP/bXQ3BhV7tXCKioU=", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fecha": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/fecha/download/fecha-4.2.1.tgz?cache=0&sync_timestamp=1617639941867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffecha%2Fdownload%2Ffecha-4.2.1.tgz", - "integrity": "sha1-CoOtj4bvYqCR4iu1oDnNA9I+7M4=" - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", - "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=" - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.1.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-6.0.1.tgz", - "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-loader": { - "version": "6.1.1", - "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-6.1.1.tgz", - "integrity": "sha1-pvKd+z9ZM6HDULLbqiCsW+BTm6o=", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", - "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", - "optional": true - }, - "node_modules/filesize": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/filesize/download/filesize-6.1.0.tgz?cache=0&sync_timestamp=1635763993879&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffilesize%2Fdownload%2Ffilesize-6.1.0.tgz", - "integrity": "sha1-6Bvap4DiRR1xTXHA16TzI403rQA=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", - "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-3.0.4.tgz", - "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz?cache=0&sync_timestamp=1636473868538&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fflatted%2Fdownload%2Fflatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==" - }, - "node_modules/flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/flatten/download/flatten-1.0.3.tgz", - "integrity": "sha1-wSg6yfJ7Noq8HjbR/3sEUBowNWs=", - "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash." - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", - "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/fmin": { - "version": "0.0.2", - "resolved": "https://registry.npm.taobao.org/fmin/download/fmin-0.0.2.tgz", - "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", - "dependencies": { - "contour_plot": "^0.0.1", - "json2module": "^0.0.3", - "rollup": "^0.25.8", - "tape": "^4.5.1", - "uglify-js": "^2.6.2" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmmirror.com/follow-redirects/download/follow-redirects-1.14.5.tgz?cache=0&sync_timestamp=1635857764332&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.14.5.tgz", - "integrity": "sha1-8JpYSJgdPHcrU5Iwl3hSP42Fw4E=", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.nlark.com/for-each/download/for-each-0.3.3.tgz", - "integrity": "sha1-abRH6IoKXTLD5whPPxcQA0shN24=", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/for-in/download/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-4.1.6.tgz?cache=0&sync_timestamp=1635536116565&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffork-ts-checker-webpack-plugin%2Fdownload%2Ffork-ts-checker-webpack-plugin-4.1.6.tgz", - "integrity": "sha1-UFXHA/6883+gZAXUAMEiuQUWf8U=", - "dependencies": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - }, - "engines": { - "node": ">=6.11.5", - "yarn": ">=1.0.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/form-data/download/form-data-3.0.1.tgz", - "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz?cache=0&sync_timestamp=1622503499867&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fforwarded%2Fdownload%2Fforwarded-0.2.0.tgz", - "integrity": "sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.nlark.com/fresh/download/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/from2/download/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-9.1.0.tgz", - "integrity": "sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz", - "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.nlark.com/get-caller-file/download/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/get-intrinsic/download/get-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/get-package-type/download/get-package-type-0.1.0.tgz", - "integrity": "sha1-jeLYA8/0TfO8bEVuZmizbDkm4Ro=", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/get-stream/download/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/get-symbol-description/download/get-symbol-description-1.0.0.tgz", - "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/gl-matrix/download/gl-matrix-3.4.3.tgz", - "integrity": "sha1-/BGR6DIACf1NIOkzlZXGBB3cIsk=", - "license": "MIT" - }, - "node_modules/gl-vec2": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/gl-vec2/download/gl-vec2-1.3.0.tgz", - "integrity": "sha1-g9Ry7UYDTejgnLyFcSP7bIHFEZk=" - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz", - "integrity": "sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/global-modules/download/global-modules-2.0.0.tgz", - "integrity": "sha1-mXYFrSNF8n9RU5vqJldEISFcd4A=", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/global-prefix/download/global-prefix-3.0.0.tgz", - "integrity": "sha1-/IX3MGTfafUEIfR/iD/luRO6m5c=", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmmirror.com/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.nlark.com/globby/download/globby-11.0.4.tgz?cache=0&sync_timestamp=1629801109090&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-11.0.4.tgz", - "integrity": "sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz", - "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=" - }, - "node_modules/graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/graphlib/download/graphlib-2.1.8.tgz", - "integrity": "sha1-V2HUFHN4cAhMkux7XbywWSydNdo=", - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "optional": true - }, - "node_modules/guacamole-common-js": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/guacamole-common-js/download/guacamole-common-js-1.3.1.tgz", - "integrity": "sha1-SOwK0gLdplgndDrtSddXS4WvyZg=", - "license": "Apache 2.0" - }, - "node_modules/gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", - "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", - "dependencies": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hammerjs": { - "version": "2.0.8", - "resolved": "https://registry.npm.taobao.org/hammerjs/download/hammerjs-2.0.8.tgz", - "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", - "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npm.taobao.org/harmony-reflect/download/harmony-reflect-1.6.2.tgz", - "integrity": "sha1-Mey9MuZIo00DDYattn1NR1R/5xA=" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz?cache=0&sync_timestamp=1631556960487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz", - "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=" - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443577352&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz", - "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz?cache=0&sync_timestamp=1628197490246&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-tostringtag%2Fdownload%2Fhas-tostringtag-1.0.0.tgz", - "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/has-values/download/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", - "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", - "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", - "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=" - }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmmirror.com/history/download/history-4.10.1.tgz", - "integrity": "sha1-MzcaZeOoOyZ0NOKz87G0xYqtTPM=", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha1-7OCsr3HWLClpwuxZ/v9CpLGoW0U=", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/hoopy/download/hoopy-0.1.4.tgz", - "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.9.tgz?cache=0&sync_timestamp=1617826545071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=" - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/html-encoding-sniffer/download/html-encoding-sniffer-2.0.1.tgz?cache=0&sync_timestamp=1632005670807&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhtml-encoding-sniffer%2Fdownload%2Fhtml-encoding-sniffer-2.0.1.tgz", - "integrity": "sha1-QqbcT9M/ACgRduiyN1nKTk+hhfM=", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.4.0.tgz?cache=0&sync_timestamp=1617031468383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.4.0.tgz", - "integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/html-escaper/download/html-escaper-2.0.2.tgz", - "integrity": "sha1-39YAJ9o2o238viNiYsAKWCJoFFM=" - }, - "node_modules/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.nlark.com/html-minifier-terser/download/html-minifier-terser-5.1.1.tgz", - "integrity": "sha1-ki6W8fO7YIMsJjS3mIQJY4mx8FQ=", - "dependencies": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/html-webpack-plugin": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/html-webpack-plugin/download/html-webpack-plugin-4.5.0.tgz", - "integrity": "sha1-YlCXZQiGuX6l2uMxwyDjI49sEhw=", - "dependencies": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, - "engines": { - "node": ">=6.9" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/html-webpack-plugin/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/html-webpack-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/htmlparser2/download/htmlparser2-6.1.0.tgz?cache=0&sync_timestamp=1636640853072&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-6.1.0.tgz", - "integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmmirror.com/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1636932182141&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz?cache=0&sync_timestamp=1609540073700&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.5.3.tgz", - "integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz", - "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/http-proxy-agent/download/http-proxy-agent-4.0.1.tgz", - "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", - "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-5.0.0.tgz?cache=0&sync_timestamp=1614740547969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttps-proxy-agent%2Fdownload%2Fhttps-proxy-agent-5.0.0.tgz", - "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/human-signals/download/human-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz", - "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/identity-obj-proxy/download/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.nlark.com/ieee754/download/ieee754-1.2.1.tgz", - "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=" - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.nlark.com/iferr/download/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "node_modules/ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.9.tgz", - "integrity": "sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs=", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "8.0.1", - "resolved": "https://registry.nlark.com/immer/download/immer-8.0.1.tgz?cache=0&sync_timestamp=1630436525123&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fimmer%2Fdownload%2Fimmer-8.0.1.tgz", - "integrity": "sha1-nHPbaD4rOXXEJPsFcq9YiYd65lY=" - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/import-cwd/download/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/import-from/download/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/import-local/download/import-local-3.0.3.tgz", - "integrity": "sha1-TVHCxJXKk5PaJZ7Ga2LgIpICEeA=", - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz?cache=0&sync_timestamp=1618679442183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", - "engines": { - "node": ">=8" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.8.tgz?cache=0&sync_timestamp=1607907810942&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fini%2Fdownload%2Fini-1.3.8.tgz", - "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=" - }, - "node_modules/insert-css": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/insert-css/download/insert-css-2.0.0.tgz", - "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ=" - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/internal-ip/download/internal-ip-4.3.0.tgz", - "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz", - "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/inversify": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/inversify/download/inversify-5.1.1.tgz?cache=0&sync_timestamp=1636450911253&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Finversify%2Fdownload%2Finversify-5.1.1.tgz", - "integrity": "sha1-b71mjFkTN0BOAFoZRr/g2ALAhzA=" - }, - "node_modules/inversify-inject-decorators": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/inversify-inject-decorators/download/inversify-inject-decorators-3.1.0.tgz", - "integrity": "sha1-2ZQQgLrXfOyKZe4p2QXk1dc+HpU=" - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.nlark.com/ip/download/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/ip-regex/download/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "engines": { - "node": ">=4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.nlark.com/ipaddr.js/download/ipaddr.js-1.9.1.tgz", - "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-absolute-url/download/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-any-array": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-any-array/download/is-any-array-1.0.1.tgz?cache=0&sync_timestamp=1635886325334&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-any-array%2Fdownload%2Fis-any-array-1.0.1.tgz", - "integrity": "sha1-Bf7ewaTc7RhUvSebLsXfQx5b6p4=" - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/is-arguments/download/is-arguments-1.1.1.tgz?cache=0&sync_timestamp=1628202102318&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.1.tgz", - "integrity": "sha1-FbP4j9oB8ql/7ITKdhpWDxI++ps=", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.4.tgz?cache=0&sync_timestamp=1628747504782&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-bigint%2Fdownload%2Fis-bigint-1.0.4.tgz", - "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", - "dependencies": { - "has-bigints": "^1.0.1" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz?cache=0&sync_timestamp=1628207133571&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-boolean-object%2Fdownload%2Fis-boolean-object-1.1.2.tgz", - "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz?cache=0&sync_timestamp=1628259683451&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-callable%2Fdownload%2Fis-callable-1.2.4.tgz", - "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/is-ci/download/is-ci-2.0.0.tgz?cache=0&sync_timestamp=1635261061017&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-ci%2Fdownload%2Fis-ci-2.0.0.tgz", - "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.0.tgz?cache=0&sync_timestamp=1634237061095&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-core-module%2Fdownload%2Fis-core-module-2.8.0.tgz", - "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=", - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz", - "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/is-docker/download/is-docker-2.2.1.tgz?cache=0&sync_timestamp=1630451108035&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-docker%2Fdownload%2Fis-docker-2.2.1.tgz", - "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-generator-fn/download/is-generator-fn-2.1.0.tgz?cache=0&sync_timestamp=1628686122487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-generator-fn%2Fdownload%2Fis-generator-fn-2.1.0.tgz", - "integrity": "sha1-fRQK3DiarzARqPKipM+m+q3/sRg=", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-module/download/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607123314998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz", - "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.6.tgz", - "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/is-path-cwd/download/is-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1620047389319&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz", - "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz", - "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz?cache=0&sync_timestamp=1618601044820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1618846974259&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-potential-custom-element-name/download/is-potential-custom-element-name-1.0.1.tgz?cache=0&sync_timestamp=1617781844353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-potential-custom-element-name%2Fdownload%2Fis-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha1-Fx7W8Z46xVQ5Tt94yqBXhKRb67U=" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz", - "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz?cache=0&sync_timestamp=1617816642607&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=" - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-root/download/is-root-2.1.0.tgz?cache=0&sync_timestamp=1617783413343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-root%2Fdownload%2Fis-root-2.1.0.tgz", - "integrity": "sha1-gJ4YEpzxEpZEMCpPhUQDXVGYSpw=", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/download/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha1-l7DIX72stZycRG/mU7gs8rW3z+Y=" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz?cache=0&sync_timestamp=1628592856164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-stream%2Fdownload%2Fis-stream-2.0.1.tgz", - "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/is-string/download/is-string-1.0.7.tgz", - "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501308896&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz", - "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/is-weakref/download/is-weakref-1.0.1.tgz", - "integrity": "sha1-hC26TsF/qayYUN8tbvvBc3J08qI=", - "dependencies": { - "call-bind": "^1.0.0" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/is-wsl/download/is-wsl-2.2.0.tgz", - "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/download/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha1-GJ55CdCjn6Wj361bA/cZR3cBkdM=", - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/download/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha1-e0kZi2V7J6cwuOnLYB8eG/8kxZo=", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha1-dRj+UupE3jcvRgp2tezan/tz2KY=", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/download/istanbul-lib-source-maps-4.0.1.tgz?cache=0&sync_timestamp=1634004194474&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fistanbul-lib-source-maps%2Fdownload%2Fistanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha1-iV86cJ/PujTG3lpCk5Ai8+Q1hVE=", - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmmirror.com/istanbul-reports/download/istanbul-reports-3.0.5.tgz?cache=0&sync_timestamp=1634144740267&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fistanbul-reports%2Fdownload%2Fistanbul-reports-3.0.5.tgz", - "integrity": "sha1-olgBB+cSeeptZh3e3pKf/G1pM4Q=", - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "26.6.0", - "resolved": "https://registry.npmmirror.com/jest/download/jest-26.6.0.tgz?cache=0&sync_timestamp=1634626718300&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest%2Fdownload%2Fjest-26.6.0.tgz", - "integrity": "sha1-VGslodjIiFadu+k8rhMXSAhqSiU=", - "dependencies": { - "@jest/core": "^26.6.0", - "import-local": "^3.0.2", - "jest-cli": "^26.6.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-changed-files/download/jest-changed-files-26.6.2.tgz", - "integrity": "sha1-9hmEeeHMZvIvmuHiKsqgtCnAQtA=", - "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-circus": { - "version": "26.6.0", - "resolved": "https://registry.npmmirror.com/jest-circus/download/jest-circus-26.6.0.tgz?cache=0&sync_timestamp=1634626756472&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-circus%2Fdownload%2Fjest-circus-26.6.0.tgz", - "integrity": "sha1-fZZHsuf5IRgYafquH5CiYp/XBwU=", - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.0", - "@jest/test-result": "^26.6.0", - "@jest/types": "^26.6.0", - "@types/babel__traverse": "^7.0.4", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^26.6.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.0", - "jest-matcher-utils": "^26.6.0", - "jest-message-util": "^26.6.0", - "jest-runner": "^26.6.0", - "jest-runtime": "^26.6.0", - "jest-snapshot": "^26.6.0", - "jest-util": "^26.6.0", - "pretty-format": "^26.6.0", - "stack-utils": "^2.0.2", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-circus/node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/expect/download/expect-26.6.2.tgz?cache=0&sync_timestamp=1634626714215&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexpect%2Fdownload%2Fexpect-26.6.2.tgz", - "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-cli/download/jest-cli-26.6.3.tgz?cache=0&sync_timestamp=1634626719019&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-cli%2Fdownload%2Fjest-cli-26.6.3.tgz", - "integrity": "sha1-QxF8/vJLxM1pGhdKh5alMuE16So=", - "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-config/download/jest-config-26.6.3.tgz", - "integrity": "sha1-ZPQURO756wPcUdXFO3XIxx9kU0k=", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-diff/download/jest-diff-26.6.2.tgz", - "integrity": "sha1-GqdGi1LDpo19XF/c381eSb0WQ5Q=", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.nlark.com/jest-docblock/download/jest-docblock-26.0.0.tgz", - "integrity": "sha1-Pi+iCJn8koyxO9D/aL03EaNoibU=", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-each/download/jest-each-26.6.2.tgz", - "integrity": "sha1-AlJkOKd6Z0AcimOC3+WZmVLBZ8s=", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/download/jest-environment-jsdom-26.6.2.tgz?cache=0&sync_timestamp=1634626747973&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-environment-jsdom%2Fdownload%2Fjest-environment-jsdom-26.6.2.tgz", - "integrity": "sha1-eNCf6c8BmjVwCbm34fEB0jvR2j4=", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-environment-node/download/jest-environment-node-26.6.2.tgz?cache=0&sync_timestamp=1634626741234&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-environment-node%2Fdownload%2Fjest-environment-node-26.6.2.tgz", - "integrity": "sha1-gk5Mf7SURkY1bxGsdbIpsANfKww=", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmmirror.com/jest-get-type/download/jest-get-type-26.3.0.tgz", - "integrity": "sha1-6X3Dw/U8K0Bsp6+u1Ek7HQmRmeA=", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-haste-map/download/jest-haste-map-26.6.2.tgz?cache=0&sync_timestamp=1634626734781&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-26.6.2.tgz", - "integrity": "sha1-3X5g/n3A6fkRoj15xf9/tcLK/qo=", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" - } - }, - "node_modules/jest-haste-map/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-haste-map/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", - "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-haste-map/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-jasmine2/download/jest-jasmine2-26.6.3.tgz", - "integrity": "sha1-rcPPkV3qy1ISyTufNUfNEpWPLt0=", - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-jasmine2/node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/expect/download/expect-26.6.2.tgz?cache=0&sync_timestamp=1634626714215&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexpect%2Fdownload%2Fexpect-26.6.2.tgz", - "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-leak-detector/download/jest-leak-detector-26.6.2.tgz", - "integrity": "sha1-dxfPEYuSI48uumUFTIoMnGU6ka8=", - "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-matcher-utils/download/jest-matcher-utils-26.6.2.tgz?cache=0&sync_timestamp=1634626711399&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-matcher-utils%2Fdownload%2Fjest-matcher-utils-26.6.2.tgz", - "integrity": "sha1-jm/W6GPIstMaxkcu6yN7xZXlPno=", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-message-util/download/jest-message-util-26.6.2.tgz", - "integrity": "sha1-WBc3RK1vwFBrXSEVC5vlbvABygc=", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-mock/download/jest-mock-26.6.2.tgz?cache=0&sync_timestamp=1634496332606&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-mock%2Fdownload%2Fjest-mock-26.6.2.tgz", - "integrity": "sha1-1stxKwQe1H/g2bb8NHS8ZUP+swI=", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/download/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha1-twSsCuAoqJEIpNBAs/kZ393I4zw=", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.nlark.com/jest-regex-util/download/jest-regex-util-26.0.0.tgz", - "integrity": "sha1-0l5xhLNuOf1GbDvEG+CXHoIf7ig=", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve": { - "version": "26.6.0", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.0.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.0.tgz", - "integrity": "sha1-Bw/nFZr4ewPlD1LqXhfulbvuQOE=", - "dependencies": { - "@jest/types": "^26.6.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.0", - "read-pkg-up": "^7.0.1", - "resolve": "^1.17.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/download/jest-resolve-dependencies-26.6.3.tgz?cache=0&sync_timestamp=1634626757739&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve-dependencies%2Fdownload%2Fjest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha1-ZoCFnuXSLuXc2WH+SHH1n0x4T7Y=", - "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-runner/download/jest-runner-26.6.3.tgz", - "integrity": "sha1-LR/tPUbhDyM/0dvTv6o/6JJL4Vk=", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runner/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", - "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-runtime/download/jest-runtime-26.6.3.tgz?cache=0&sync_timestamp=1634626757108&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-runtime%2Fdownload%2Fjest-runtime-26.6.3.tgz", - "integrity": "sha1-T2TvvPrDmDMbdLSzyC0n1AG4+is=", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/jest-serializer/download/jest-serializer-26.6.2.tgz", - "integrity": "sha1-0Tmq/UaVfTpEjzps2r4pGboHQtE=", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-snapshot/download/jest-snapshot-26.6.2.tgz?cache=0&sync_timestamp=1634626720436&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-snapshot%2Fdownload%2Fjest-snapshot-26.6.2.tgz", - "integrity": "sha1-87CvGssiMxaFC9FOG+6pg3+znIQ=", - "dependencies": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-snapshot/node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/expect/download/expect-26.6.2.tgz?cache=0&sync_timestamp=1634626714215&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexpect%2Fdownload%2Fexpect-26.6.2.tgz", - "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-util/download/jest-util-26.6.2.tgz?cache=0&sync_timestamp=1634626703989&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-util%2Fdownload%2Fjest-util-26.6.2.tgz", - "integrity": "sha1-kHU12+TVpstMR6ybkm9q8pV2y8E=", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-validate/download/jest-validate-26.6.2.tgz", - "integrity": "sha1-I9OAlxWHFQRnNCkRw9e0rFerIOw=", - "dependencies": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/jest-watch-typeahead/download/jest-watch-typeahead-0.6.1.tgz?cache=0&sync_timestamp=1632899984169&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-watch-typeahead%2Fdownload%2Fjest-watch-typeahead-0.6.1.tgz", - "integrity": "sha1-RSIbhrtnELfpe6qhZAriSgd4XmM=", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^26.0.0", - "jest-watcher": "^26.3.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watch-typeahead/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-watch-typeahead/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-watcher/download/jest-watcher-26.6.2.tgz", - "integrity": "sha1-pbaDuPnWjbyx19rjIXLSzKBZKXU=", - "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-27.3.1.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-27.3.1.tgz", - "integrity": "sha1-De9/6uW4BCvjhHl5mut7X6ysJLI=", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-8.1.1.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-8.1.1.tgz", - "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/js-base64": { - "version": "3.7.2", - "resolved": "https://registry.npmmirror.com/js-base64/download/js-base64-3.7.2.tgz", - "integrity": "sha1-gW0R2BqK/yQWA9Gc5XYeE+Qdd0U=" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618434911653&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmmirror.com/jsdom/download/jsdom-16.7.0.tgz?cache=0&sync_timestamp=1636758139682&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjsdom%2Fdownload%2Fjsdom-16.7.0.tgz", - "integrity": "sha1-kYrnGWVCSxl8gZ+Bg6dU4Yl3txA=", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.nlark.com/acorn/download/acorn-8.5.0.tgz?cache=0&sync_timestamp=1630916591807&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-8.5.0.tgz", - "integrity": "sha1-RRLMuZs2mMdSWR6btEcuOK1DzuI=", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.nlark.com/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.nlark.com/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "node_modules/json2module": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/json2module/download/json2module-0.0.3.tgz", - "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", - "dependencies": { - "rw": "^1.3.2" - }, - "bin": { - "json2module": "bin/json2module" - } - }, - "node_modules/json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/json2mq/download/json2mq-0.2.0.tgz", - "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", - "dependencies": { - "string-convert": "^0.2.0" - } - }, - "node_modules/json3": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/json3/download/json3-3.3.3.tgz", - "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=" - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz", - "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604161912962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz", - "integrity": "sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/jsx-ast-utils/download/jsx-ast-utils-3.2.1.tgz?cache=0&sync_timestamp=1631856184359&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjsx-ast-utils%2Fdownload%2Fjsx-ast-utils-3.2.1.tgz", - "integrity": "sha1-cguXv+fZAbkn2Hw3c2N66OpIeBs=", - "dependencies": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/killable/download/killable-1.0.1.tgz", - "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/kleur/download/kleur-3.0.3.tgz", - "integrity": "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/klona/download/klona-2.0.5.tgz?cache=0&sync_timestamp=1635385383825&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fklona%2Fdownload%2Fklona-2.0.5.tgz", - "integrity": "sha1-0WZXTZAHY5XZljqnqSj6u412r7w=", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.nlark.com/language-subtag-registry/download/language-subtag-registry-0.3.21.tgz", - "integrity": "sha1-BKwhi+pG8EywOQhGAsbanniN1Fo=" - }, - "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/language-tags/download/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "node_modules/last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha1-l0LfDhDjz0blwDgcLekNOnotdVU=", - "dependencies": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/leven/download/leven-3.1.0.tgz?cache=0&sync_timestamp=1628598084975&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fleven%2Fdownload%2Fleven-3.1.0.tgz", - "integrity": "sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.nlark.com/lines-and-columns/download/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1610027943366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", - "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-2.0.2.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-2.0.2.tgz", - "integrity": "sha1-1uO0+4GHByGuTghoqxHdY4NowSk=", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-5.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz", - "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz", - "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=" - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/lodash.template/download/lodash.template-4.5.0.tgz", - "integrity": "sha1-+XYZXPPzR9DV9SSDVp/oAxzM6Ks=", - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha1-5IExDwSdPPbUfpEq0JMTsVTw+zM=", - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npm.taobao.org/lodash.truncate/download/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.nlark.com/loglevel/download/loglevel-1.7.1.tgz", - "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/lower-case/download/lower-case-2.0.2.tgz", - "integrity": "sha1-b6I3xj29xKgsoP2ILkci3F5jTig=", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz", - "integrity": "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=", - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmmirror.com/makeerror/download/makeerror-1.0.12.tgz", - "integrity": "sha1-Pl3SB5qC6BLpg8xmEMSiyw6qgBo=", - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.nlark.com/map-cache/download/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", - "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1631835926316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz", - "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.nlark.com/media-typer/download/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/merge-descriptors/download/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/merge-stream/download/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", - "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/microevent.ts/download/microevent.ts-0.1.1.tgz", - "integrity": "sha1-cLCbg/Q99RctAgWmMCW84Pc1f6A=" - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz", - "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/mime/download/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmmirror.com/mime-db/download/mime-db-1.51.0.tgz?cache=0&sync_timestamp=1636425960296&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-db%2Fdownload%2Fmime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmmirror.com/mime-types/download/mime-types-2.1.34.tgz?cache=0&sync_timestamp=1636432302620&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "0.11.3", - "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/download/mini-css-extract-plugin-0.11.3.tgz?cache=0&sync_timestamp=1636028520003&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.11.3.tgz", - "integrity": "sha1-FbCRCn8y5i/95KdDDP771wByTqY=", - "dependencies": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", - "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&sync_timestamp=1602337228360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" - }, - "node_modules/minipass": { - "version": "3.1.5", - "resolved": "https://registry.nlark.com/minipass/download/minipass-3.1.5.tgz?cache=0&sync_timestamp=1631656107998&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fminipass%2Fdownload%2Fminipass-3.1.5.tgz", - "integrity": "sha1-cfYlGwozpJwBs8+X/3ftoDDf9zI=", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/minipass-collect/download/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.nlark.com/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz", - "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz", - "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ml-array-max": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/ml-array-max/download/ml-array-max-1.2.3.tgz?cache=0&sync_timestamp=1616593177293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fml-array-max%2Fdownload%2Fml-array-max-1.2.3.tgz", - "integrity": "sha1-ktH/72Z0MtFFHTWBenJ2xShjXmQ=", - "dependencies": { - "is-any-array": "^1.0.0" - } - }, - "node_modules/ml-array-min": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/ml-array-min/download/ml-array-min-1.2.2.tgz", - "integrity": "sha1-q9aFEqV/6EmVE+byJlUzgH4rvms=", - "dependencies": { - "is-any-array": "^1.0.0" - } - }, - "node_modules/ml-array-rescale": { - "version": "1.3.6", - "resolved": "https://registry.nlark.com/ml-array-rescale/download/ml-array-rescale-1.3.6.tgz", - "integrity": "sha1-Bg0cY2+7X4dyZfT8xODhV1IdYVo=", - "dependencies": { - "is-any-array": "^1.0.0", - "ml-array-max": "^1.2.3", - "ml-array-min": "^1.2.2" - } - }, - "node_modules/ml-matrix": { - "version": "6.8.2", - "resolved": "https://registry.npmmirror.com/ml-matrix/download/ml-matrix-6.8.2.tgz?cache=0&sync_timestamp=1636729809006&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fml-matrix%2Fdownload%2Fml-matrix-6.8.2.tgz", - "integrity": "sha512-5o2gVLFyieDSgsStEU5mqty4MZqfeytYA/gJqBSw5/Xuob0X2UrFX/k7FDh+YAwjzG/1l8nYa0oDaJ0sGs/RlA==", - "dependencies": { - "ml-array-rescale": "^1.3.6" - } - }, - "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz", - "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=", - "engines": { - "node": "*" - } - }, - "node_modules/monaco-editor": { - "version": "0.30.1", - "resolved": "https://registry.npmmirror.com/monaco-editor/download/monaco-editor-0.30.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmonaco-editor%2Fdownload%2Fmonaco-editor-0.30.1.tgz", - "integrity": "sha512-B/y4+b2O5G2gjuxIFtCE2EkM17R2NM7/3F8x0qcPsqy4V83bitJTIO4TIeZpYlzu/xy6INiY/+84BEm6+7Cmzg==" - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmmirror.com/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1633354821467&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", - "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.nlark.com/nan/download/nan-2.15.0.tgz?cache=0&sync_timestamp=1628093719696&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnan%2Fdownload%2Fnan-2.15.0.tgz", - "integrity": "sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4=", - "optional": true - }, - "node_modules/nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz?cache=0&sync_timestamp=1634166241996&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.30.tgz", - "integrity": "sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I=", - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.nlark.com/nanomatch/download/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "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.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/native-url": { - "version": "0.2.6", - "resolved": "https://registry.npm.taobao.org/native-url/download/native-url-0.2.6.tgz", - "integrity": "sha1-yhJY9azhaccW/0Tsy922dOEDma4=", - "dependencies": { - "querystring": "^0.2.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.nlark.com/no-case/download/no-case-3.0.4.tgz", - "integrity": "sha1-02H9XJgA9VhVGoNp/A3NRmK2Ek0=", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz", - "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", - "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.nlark.com/node-notifier/download/node-notifier-8.0.2.tgz?cache=0&sync_timestamp=1621962325593&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-notifier%2Fdownload%2Fnode-notifier-8.0.2.tgz", - "integrity": "sha1-8xZ6OO8NLIqGaoPjGMG6Dv63AsU=", - "optional": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/node-releases/download/node-releases-2.0.1.tgz?cache=0&sync_timestamp=1634806914912&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnode-releases%2Fdownload%2Fnode-releases-2.0.1.tgz", - "integrity": "sha1-PR05XyBPHy8ppUNYuftnh2WtL8U=", - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.nlark.com/normalize-range/download/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dependencies": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/npm-run-path/download/npm-run-path-4.0.1.tgz?cache=0&sync_timestamp=1633420566316&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/nth-check/download/nth-check-2.0.1.tgz", - "integrity": "sha1-Lv4WL1w9oGoolZ+9PbddvuqfD8I=", - "dependencies": { - "boolbase": "^1.0.0" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/num2fraction/download/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz", - "integrity": "sha1-IEh5qePQaP8qVROcLHcngGgaOLc=" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1618846992533&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz", - "integrity": "sha1-nc6xRs7dQUig2eUauI00z1CZIrE=" - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz?cache=0&sync_timestamp=1613858420069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.5.tgz", - "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115183005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz", - "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmmirror.com/object.entries/download/object.entries-1.1.5.tgz?cache=0&sync_timestamp=1633280509618&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.5.tgz", - "integrity": "sha1-4azdF8TeLNltWghIfPuduE2IGGE=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/object.fromentries/download/object.fromentries-2.0.5.tgz?cache=0&sync_timestamp=1633280506895&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.5.tgz", - "integrity": "sha1-ezeyBRCcIedB5gVyf+iwrV+gglE=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmmirror.com/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.3.tgz?cache=0&sync_timestamp=1633321702182&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha1-siPPOOF/77l6Y8EMkd9yzLOG354=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/object.hasown/download/object.hasown-1.1.0.tgz?cache=0&sync_timestamp=1633322329923&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.hasown%2Fdownload%2Fobject.hasown-1.1.0.tgz", - "integrity": "sha1-cjLtJm800ZfRXKxYgCMvekeQr+U=", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmmirror.com/object.values/download/object.values-1.1.5.tgz?cache=0&sync_timestamp=1633326983597&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.values%2Fdownload%2Fobject.values-1.1.5.tgz", - "integrity": "sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/obuf/download/obuf-1.1.2.tgz", - "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz?cache=0&sync_timestamp=1614930634590&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/on-headers/download/on-headers-1.0.2.tgz", - "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmmirror.com/open/download/open-7.4.2.tgz", - "integrity": "sha1-uBR+Jtzz5CYxbHMAif1x7dKcIyE=", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/opn": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/opn/download/opn-5.5.0.tgz", - "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin": { - "version": "5.0.4", - "resolved": "https://registry.nlark.com/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-5.0.4.tgz?cache=0&sync_timestamp=1624442101760&other_urls=https%3A%2F%2Fregistry.nlark.com%2Foptimize-css-assets-webpack-plugin%2Fdownload%2Foptimize-css-assets-webpack-plugin-5.0.4.tgz", - "integrity": "sha1-hYg8ZSiqoC4wu62ZCMkpJrtS3JA=", - "dependencies": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.9.1.tgz", - "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/original": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", - "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", - "dependencies": { - "url-parse": "^1.4.3" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "node_modules/p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-each-series/download/p-each-series-2.2.0.tgz?cache=0&sync_timestamp=1617946660217&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-each-series%2Fdownload%2Fp-each-series-2.2.0.tgz", - "integrity": "sha1-EFqwNXznKyAqiouUkzZyZXteKpo=", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/p-map/download/p-map-4.0.0.tgz?cache=0&sync_timestamp=1635931861684&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz", - "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1635966813736&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", - "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/p-try/download/p-try-2.2.0.tgz?cache=0&sync_timestamp=1633364600466&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.nlark.com/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1627560187062&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", - "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/parallel-transform/download/parallel-transform-1.2.0.tgz", - "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-3.0.4.tgz?cache=0&sync_timestamp=1606867311360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.4.tgz", - "integrity": "sha1-fRf+SqEr3jTUp32RrPtiGcqtAcU=", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz", - "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1636944618780&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz", - "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.nlark.com/parse5/download/parse5-6.0.1.tgz", - "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", - "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/pascal-case/download/pascal-case-3.1.2.tgz", - "integrity": "sha1-tI4O8rmOIF58Ha50fQsVCCN2YOs=", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/pascalcase/download/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", - "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=" - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz?cache=0&sync_timestamp=1621947783503&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=" - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-1.8.0.tgz", - "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", - "engines": { - "node": ">=8" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/pbkdf2/download/pbkdf2-3.1.2.tgz", - "integrity": "sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU=", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/pdfast": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/pdfast/download/pdfast-0.2.0.tgz", - "integrity": "sha1-jLxVbhvyUiF3eHwN4uDUNzuohck=" - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz", - "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648305056&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pirates/download/pirates-4.0.1.tgz", - "integrity": "sha1-ZDqSyviUVm+RsrmG0sZpUKji+4c=", - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364600466&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/pkg-up/download/pkg-up-3.1.0.tgz?cache=0&sync_timestamp=1636035118070&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-up%2Fdownload%2Fpkg-up-3.1.0.tgz", - "integrity": "sha1-EA7CNcwVDk/UJRlBJZaihRKg3vU=", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.nlark.com/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=", - "dependencies": { - "ts-pnp": "^1.1.6" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/polyline-miter-util": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/polyline-miter-util/download/polyline-miter-util-1.0.1.tgz", - "integrity": "sha1-tpPyOJ6g3tNqa89ezS7OS2kX2Vc=", - "dependencies": { - "gl-vec2": "^1.0.0" - } - }, - "node_modules/polyline-normals": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/polyline-normals/download/polyline-normals-2.0.2.tgz", - "integrity": "sha1-oXN+ddjA3MsaWR+csn8J7vS30TU=", - "dependencies": { - "polyline-miter-util": "^1.0.1" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz", - "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/async/download/async-2.6.3.tgz", - "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz?cache=0&sync_timestamp=1634821260697&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.39.tgz", - "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=", - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-attribute-case-insensitive/download/postcss-attribute-case-insensitive-4.0.2.tgz", - "integrity": "sha1-2T5GtQRYnpSscnewRjImxoBBqIA=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^6.0.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/postcss-browser-comments/download/postcss-browser-comments-3.0.0.tgz?cache=0&sync_timestamp=1619681938425&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-browser-comments%2Fdownload%2Fpostcss-browser-comments-3.0.0.tgz", - "integrity": "sha1-EkjS2TX7cgU8jh9hqEpXKS2fZek=", - "dependencies": { - "postcss": "^7" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "browserslist": "^4" - } - }, - "node_modules/postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1609689191682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", - "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", - "dependencies": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/postcss-color-functional-notation/download/postcss-color-functional-notation-2.0.1.tgz?cache=0&sync_timestamp=1631886310445&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha1-Xv03qI+6vrAKKWbR5T2Yztk/dOA=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-color-gray": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-color-gray/download/postcss-color-gray-5.0.0.tgz", - "integrity": "sha1-Uyox65CfjaiYzv/ilv3B+GS+hUc=", - "dependencies": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "5.0.3", - "resolved": "https://registry.npmmirror.com/postcss-color-hex-alpha/download/postcss-color-hex-alpha-5.0.3.tgz?cache=0&sync_timestamp=1632321113526&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha1-qNnKTDnUl8lmHjdLnFGJnvD4c4g=", - "dependencies": { - "postcss": "^7.0.14", - "postcss-values-parser": "^2.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-color-mod-function": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-color-mod-function/download/postcss-color-mod-function-3.0.3.tgz", - "integrity": "sha1-gWuhRawRzDy2uqkFp1pJ+QPk0x0=", - "dependencies": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-color-rebeccapurple/download/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha1-x6ib6HK7dORbHjAiv+V0iCPm3nc=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/postcss-colormin/download/postcss-colormin-4.0.3.tgz", - "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", - "dependencies": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-colormin/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1635857664165&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz", - "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-custom-media": { - "version": "7.0.8", - "resolved": "https://registry.npm.taobao.org/postcss-custom-media/download/postcss-custom-media-7.0.8.tgz", - "integrity": "sha1-//0T/+/61zYhvl84cHaiiwApTgw=", - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-custom-properties": { - "version": "8.0.11", - "resolved": "https://registry.nlark.com/postcss-custom-properties/download/postcss-custom-properties-8.0.11.tgz?cache=0&sync_timestamp=1631899912337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz", - "integrity": "sha1-LWF3LW6S8i9eDVJgLfj65G+jDZc=", - "dependencies": { - "postcss": "^7.0.17", - "postcss-values-parser": "^2.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-custom-selectors/download/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha1-ZIWMbrLs/y+0HQsoyd17PbTef7o=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-custom-selectors/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-dir-pseudo-class/download/postcss-dir-pseudo-class-5.0.0.tgz?cache=0&sync_timestamp=1631886320458&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha1-bjpBd9Dts6vMhf22+7HCbauuq6I=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/postcss-double-position-gradients/download/postcss-double-position-gradients-1.0.0.tgz?cache=0&sync_timestamp=1631886323118&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha1-/JJ9Uv3ciWyzooEuvF3xR+EQUi4=", - "dependencies": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-env-function": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/postcss-env-function/download/postcss-env-function-2.0.2.tgz", - "integrity": "sha1-Dz49PFfwlKksK69LYkHwsNpTZdc=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/postcss-flexbugs-fixes/download/postcss-flexbugs-fixes-4.2.1.tgz", - "integrity": "sha1-khimUknzCJfeqxAzrO2FeFYqZpA=", - "dependencies": { - "postcss": "^7.0.26" - } - }, - "node_modules/postcss-focus-visible": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/postcss-focus-visible/download/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha1-R30QcROt5gJLFBKDF63ivR4XBG4=", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-focus-within": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/postcss-focus-within/download/postcss-focus-within-3.0.0.tgz?cache=0&sync_timestamp=1632319342556&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz", - "integrity": "sha1-djuHiFls7puHTJmSAc3egGWe9oA=", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-font-variant": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-font-variant/download/postcss-font-variant-4.0.1.tgz", - "integrity": "sha1-QtTAqzCJT2D5ixdWHrXAMh9QJkE=", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-gap-properties": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/postcss-gap-properties/download/postcss-gap-properties-2.0.0.tgz?cache=0&sync_timestamp=1631886308817&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz", - "integrity": "sha1-QxwZKrPtlqPD0J8v9hWWD5AsFxU=", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-image-set-function": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/postcss-image-set-function/download/postcss-image-set-function-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz", - "integrity": "sha1-KJIKLymUW+1MMZjX32SW1BDT8og=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-initial": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/postcss-initial/download/postcss-initial-3.0.4.tgz?cache=0&sync_timestamp=1618435188850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.4.tgz", - "integrity": "sha1-nTIGmhBTH+Lsr6C2rHUO4Lx+/FM=", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-lab-function": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/postcss-lab-function/download/postcss-lab-function-2.0.1.tgz", - "integrity": "sha1-u1GmhWzRIomrSuINseOCHvE9fS4=", - "dependencies": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/postcss-load-config/download/postcss-load-config-2.1.2.tgz", - "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-load-config/node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-5.2.1.tgz", - "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-load-config/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-load-config/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1636944618780&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-load-config/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/postcss-loader/download/postcss-loader-3.0.0.tgz", - "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", - "dependencies": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/postcss-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-logical": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/postcss-logical/download/postcss-logical-3.0.0.tgz", - "integrity": "sha1-JJXQ+LgunyYnJfdflAGzTntF1bU=", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-media-minmax": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-media-minmax/download/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha1-t1u2y8IXyKxJQz4S8iBIgUpPXtU=", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1636226949214&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz", - "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1635856887200&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", - "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", - "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", - "dependencies": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", - "dependencies": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", - "dependencies": { - "postcss": "^7.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587625149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=", - "dependencies": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=", - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz?cache=0&sync_timestamp=1602586215124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-3.0.0.tgz", - "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", - "dependencies": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "node_modules/postcss-nesting": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/postcss-nesting/download/postcss-nesting-7.0.1.tgz?cache=0&sync_timestamp=1635765807038&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz", - "integrity": "sha1-tQrXt/AXPlteOIDDUBNEcD4EwFI=", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize": { - "version": "8.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize/download/postcss-normalize-8.0.1.tgz", - "integrity": "sha1-kOgKd2PX/fLaby8Pgr6DLOT2Z3Y=", - "dependencies": { - "@csstools/normalize.css": "^10.1.0", - "browserslist": "^4.6.2", - "postcss": "^7.0.17", - "postcss-browser-comments": "^3.0.0", - "sanitize.css": "^10.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", - "dependencies": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-3.3.0.tgz", - "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz", - "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-overflow-shorthand": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/postcss-overflow-shorthand/download/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha1-MezzUOnG9t3CUKePDD4RHzLdTDA=", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-page-break": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/postcss-page-break/download/postcss-page-break-2.0.0.tgz", - "integrity": "sha1-rdUtDgpSjKvmr+6LRuKrsnffRr8=", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-place": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-place/download/postcss-place-4.0.1.tgz", - "integrity": "sha1-6fOdM9LcWE5G7h20Wtt3yp0dzGI=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-preset-env": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/postcss-preset-env/download/postcss-preset-env-6.7.0.tgz", - "integrity": "sha1-w03az4+QI4OzWtHgMPF49M3xGKU=", - "dependencies": { - "autoprefixer": "^9.6.1", - "browserslist": "^4.6.4", - "caniuse-lite": "^1.0.30000981", - "css-blank-pseudo": "^0.1.4", - "css-has-pseudo": "^0.10.0", - "css-prefers-color-scheme": "^3.1.1", - "cssdb": "^4.4.0", - "postcss": "^7.0.17", - "postcss-attribute-case-insensitive": "^4.0.1", - "postcss-color-functional-notation": "^2.0.1", - "postcss-color-gray": "^5.0.0", - "postcss-color-hex-alpha": "^5.0.3", - "postcss-color-mod-function": "^3.0.3", - "postcss-color-rebeccapurple": "^4.0.1", - "postcss-custom-media": "^7.0.8", - "postcss-custom-properties": "^8.0.11", - "postcss-custom-selectors": "^5.1.2", - "postcss-dir-pseudo-class": "^5.0.0", - "postcss-double-position-gradients": "^1.0.0", - "postcss-env-function": "^2.0.2", - "postcss-focus-visible": "^4.0.0", - "postcss-focus-within": "^3.0.0", - "postcss-font-variant": "^4.0.0", - "postcss-gap-properties": "^2.0.0", - "postcss-image-set-function": "^3.0.1", - "postcss-initial": "^3.0.0", - "postcss-lab-function": "^2.0.1", - "postcss-logical": "^3.0.0", - "postcss-media-minmax": "^4.0.0", - "postcss-nesting": "^7.0.0", - "postcss-overflow-shorthand": "^2.0.0", - "postcss-page-break": "^2.0.0", - "postcss-place": "^4.0.1", - "postcss-pseudo-class-any-link": "^6.0.0", - "postcss-replace-overflow-wrap": "^3.0.0", - "postcss-selector-matches": "^4.0.0", - "postcss-selector-not": "^4.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "6.0.0", - "resolved": "https://registry.nlark.com/postcss-pseudo-class-any-link/download/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha1-LtPu05OzcCh53sSocDKyENrrBNE=", - "dependencies": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/postcss-replace-overflow-wrap/download/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha1-YbNg/9rtyoTHyRjSsPDQ6lWasBw=", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-safe-parser": { - "version": "5.0.2", - "resolved": "https://registry.nlark.com/postcss-safe-parser/download/postcss-safe-parser-5.0.2.tgz", - "integrity": "sha1-RZ3Sffa8K6ZGCIJLo55F2s9ehS0=", - "dependencies": { - "postcss": "^8.1.0" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/postcss-safe-parser/node_modules/postcss": { - "version": "8.3.11", - "resolved": "https://registry.npmmirror.com/postcss/download/postcss-8.3.11.tgz?cache=0&sync_timestamp=1634821260697&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss%2Fdownload%2Fpostcss-8.3.11.tgz", - "integrity": "sha1-w77KfqgRzV4cSj7G0udZnvH4+Fg=", - "license": "MIT", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^0.6.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-selector-matches": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-selector-matches/download/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha1-ccgkj5F7osyTA3yWN+4JxkQ2/P8=", - "dependencies": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-selector-not": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-selector-not/download/postcss-selector-not-4.0.1.tgz", - "integrity": "sha1-JjAW7vHPIZ4K3pqRN4D8H0ggTL8=", - "dependencies": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/postcss-svgo/download/postcss-svgo-4.0.3.tgz", - "integrity": "sha1-NDos26yVBdQWJD1Jb3JPOIlMlB4=", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-svgo/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - }, - "node_modules/postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", - "dependencies": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", - "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=" - }, - "node_modules/postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/postcss-values-parser/download/postcss-values-parser-2.0.1.tgz", - "integrity": "sha1-2otHLZAdoeIFtHvcmGN7np5VDl8=", - "dependencies": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=6.14.4" - } - }, - "node_modules/postcss/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz", - "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=", - "license": "ISC" - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/prepend-http/download/prepend-http-1.0.4.tgz?cache=0&sync_timestamp=1628547381568&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprepend-http%2Fdownload%2Fprepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npm.taobao.org/pretty-bytes/download/pretty-bytes-5.6.0.tgz?cache=0&sync_timestamp=1613916344909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.6.0.tgz", - "integrity": "sha1-NWJW9kOAR3PIL2RyP+eMksYr6us=", - "engines": { - "node": ">=6" - } - }, - "node_modules/pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/pretty-error/download/pretty-error-2.1.2.tgz?cache=0&sync_timestamp=1635212589197&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.2.tgz", - "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/pretty-format/download/pretty-format-26.6.2.tgz", - "integrity": "sha1-41wnBfFMt/4v6U+geDRbREEg/JM=", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/pretty-format/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmmirror.com/react-is/download/react-is-17.0.2.tgz?cache=0&sync_timestamp=1636734285994&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-is%2Fdownload%2Freact-is-17.0.2.tgz", - "integrity": "sha1-5pHUqOnHiTZWVVOas3J2Kw77VPA=" - }, - "node_modules/probe.gl": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/probe.gl/download/probe.gl-3.4.1.tgz", - "integrity": "sha1-iNhin7rFpicEnW/ca4w2TVbwCBU=", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@probe.gl/stats": "3.4.1" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "8.1.0", - "resolved": "https://registry.npm.taobao.org/promise/download/promise-8.1.0.tgz", - "integrity": "sha1-aXwlw9/nQ13Xn81Yw4oTWIjq8F4=", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "node_modules/prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/prompts/download/prompts-2.4.0.tgz", - "integrity": "sha1-SqXeByOiMdHukSHED99mPfc/Ydc=", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npm.taobao.org/prop-types/download/prop-types-15.7.2.tgz", - "integrity": "sha1-UsQedbjIfnK52TYOAga5ncv/psU=", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.nlark.com/proxy-addr/download/proxy-addr-2.0.7.tgz", - "integrity": "sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", - "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", - "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.nlark.com/pumpify/download/pumpify-1.5.1.tgz", - "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.nlark.com/q/download/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.10.1", - "resolved": "https://registry.nlark.com/qs/download/qs-6.10.1.tgz", - "integrity": "sha1-STFIL6jWR6Wqt5nFJx0hM7mB+2o=", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.nlark.com/query-string/download/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/querystring/download/querystring-0.2.1.tgz", - "integrity": "sha1-QNd2FbsJ0WkCqFw+OKqLXtdhwt0=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz", - "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz", - "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz", - "integrity": "sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/randomfill/download/randomfill-1.0.4.tgz", - "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.nlark.com/range-parser/download/range-parser-1.2.1.tgz", - "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.nlark.com/raw-body/download/raw-body-2.4.0.tgz", - "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/bytes/download/bytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-app-polyfill": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz", - "integrity": "sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA==", - "dependencies": { - "core-js": "^3.6.5", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "whatwg-fetch": "^3.4.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-dev-utils": { - "version": "11.0.4", - "resolved": "https://registry.npmmirror.com/react-dev-utils/download/react-dev-utils-11.0.4.tgz?cache=0&sync_timestamp=1633373952222&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-11.0.4.tgz", - "integrity": "sha1-p8y2Alehyi4O/nqD445nANF6o3o=", - "dependencies": { - "@babel/code-frame": "7.10.4", - "address": "1.1.2", - "browserslist": "4.14.2", - "chalk": "2.4.2", - "cross-spawn": "7.0.3", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.1.0", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "4.1.6", - "global-modules": "2.0.0", - "globby": "11.0.1", - "gzip-size": "5.1.1", - "immer": "8.0.1", - "is-root": "2.1.0", - "loader-utils": "2.0.0", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "prompts": "2.4.0", - "react-error-overlay": "^6.0.9", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-dev-utils/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz", - "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/react-dev-utils/node_modules/browserslist": { - "version": "4.14.2", - "resolved": "https://registry.npmmirror.com/browserslist/download/browserslist-4.14.2.tgz", - "integrity": "sha1-GzzsRYobqHWIzF6b5i8ZttSIE84=", - "dependencies": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/react-dev-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz", - "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/globby": { - "version": "11.0.1", - "resolved": "https://registry.nlark.com/globby/download/globby-11.0.1.tgz?cache=0&sync_timestamp=1629801109090&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz", - "integrity": "sha1-mivxB6Bo8//qvEmtcCx57ejP01c=", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-2.0.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/react-dev-utils/node_modules/node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmmirror.com/node-releases/download/node-releases-1.1.77.tgz?cache=0&sync_timestamp=1634806914912&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.77.tgz", - "integrity": "sha1-ULDP7ehV3TdOdYW/Io/zTlfBwy4=", - "license": "MIT" - }, - "node_modules/react-dev-utils/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmmirror.com/react-dom/download/react-dom-16.14.0.tgz?cache=0&sync_timestamp=1636734309640&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-dom%2Fdownload%2Freact-dom-16.14.0.tgz", - "integrity": "sha1-etg47Cmnd/s8dcOhkPZhz5Kri4k=", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - }, - "peerDependencies": { - "react": "^16.14.0" - } - }, - "node_modules/react-draggable": { - "version": "4.4.4", - "resolved": "https://registry.nlark.com/react-draggable/download/react-draggable-4.4.4.tgz", - "integrity": "sha1-WybZmWvmPTLShaQm9BBV3oflmy8=", - "dependencies": { - "clsx": "^1.1.1", - "prop-types": "^15.6.0" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.9", - "resolved": "https://registry.npmmirror.com/react-error-overlay/download/react-error-overlay-6.0.9.tgz?cache=0&sync_timestamp=1633373944263&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-error-overlay%2Fdownload%2Freact-error-overlay-6.0.9.tgz", - "integrity": "sha1-PHQwEMk1lgjDdezWvHbzXZOZWwo=" - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmmirror.com/react-is/download/react-is-16.13.1.tgz?cache=0&sync_timestamp=1636734285994&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz", - "integrity": "sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ=" - }, - "node_modules/react-monaco-editor": { - "version": "0.40.0", - "resolved": "https://registry.npmmirror.com/react-monaco-editor/download/react-monaco-editor-0.40.0.tgz", - "integrity": "sha1-8bAhsylSz8Y6S/JmH9IPYbK4MJ8=", - "dependencies": { - "monaco-editor": "*", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "@types/react": "^16.x", - "react": "^16.x" - } - }, - "node_modules/react-refresh": { - "version": "0.8.3", - "resolved": "https://registry.npmmirror.com/react-refresh/download/react-refresh-0.8.3.tgz?cache=0&sync_timestamp=1636734515235&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-refresh%2Fdownload%2Freact-refresh-0.8.3.tgz", - "integrity": "sha1-ch1GV2ctQAxePHXQY8SoX7LV1o8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/react-router/download/react-router-5.2.1.tgz", - "integrity": "sha1-TS5OnVrpQlCRhFuNvG2dJ2I5d00=", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/react-router-dom/download/react-router-dom-5.3.0.tgz?cache=0&sync_timestamp=1636499761778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.3.0.tgz", - "integrity": "sha1-2hv7U1oOiacSqTuX3Xb0etHzI2M=", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.1", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router/node_modules/mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/mini-create-react-context/download/mini-create-react-context-0.4.1.tgz?cache=0&sync_timestamp=1603390284123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.1.tgz", - "integrity": "sha1-ByFxVhv9ySLaCKYMIZekl8wtHV4=", - "dependencies": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - }, - "peerDependencies": { - "prop-types": "^15.0.0", - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-scripts": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/react-scripts/download/react-scripts-4.0.3.tgz", - "integrity": "sha1-scr+18P6YD52KLoPGHeHlky100U=", - "dependencies": { - "@babel/core": "7.12.3", - "@pmmmwh/react-refresh-webpack-plugin": "0.4.3", - "@svgr/webpack": "5.5.0", - "@typescript-eslint/eslint-plugin": "^4.5.0", - "@typescript-eslint/parser": "^4.5.0", - "babel-eslint": "^10.1.0", - "babel-jest": "^26.6.0", - "babel-loader": "8.1.0", - "babel-plugin-named-asset-import": "^0.3.7", - "babel-preset-react-app": "^10.0.0", - "bfj": "^7.0.2", - "camelcase": "^6.1.0", - "case-sensitive-paths-webpack-plugin": "2.3.0", - "css-loader": "4.3.0", - "dotenv": "8.2.0", - "dotenv-expand": "5.1.0", - "eslint": "^7.11.0", - "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest": "^24.1.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "^4.2.0", - "eslint-plugin-testing-library": "^3.9.2", - "eslint-webpack-plugin": "^2.5.2", - "file-loader": "6.1.1", - "fs-extra": "^9.0.1", - "html-webpack-plugin": "4.5.0", - "identity-obj-proxy": "3.0.0", - "jest": "26.6.0", - "jest-circus": "26.6.0", - "jest-resolve": "26.6.0", - "jest-watch-typeahead": "0.6.1", - "mini-css-extract-plugin": "0.11.3", - "optimize-css-assets-webpack-plugin": "5.0.4", - "pnp-webpack-plugin": "1.6.4", - "postcss-flexbugs-fixes": "4.2.1", - "postcss-loader": "3.0.0", - "postcss-normalize": "8.0.1", - "postcss-preset-env": "6.7.0", - "postcss-safe-parser": "5.0.2", - "prompts": "2.4.0", - "react-app-polyfill": "^2.0.0", - "react-dev-utils": "^11.0.3", - "react-refresh": "^0.8.3", - "resolve": "1.18.1", - "resolve-url-loader": "^3.1.2", - "sass-loader": "^10.0.5", - "semver": "7.3.2", - "style-loader": "1.3.0", - "terser-webpack-plugin": "4.2.3", - "ts-pnp": "1.2.0", - "url-loader": "4.1.1", - "webpack": "4.44.2", - "webpack-dev-server": "3.11.1", - "webpack-manifest-plugin": "2.2.0", - "workbox-webpack-plugin": "5.1.4" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.1.3" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-scripts/node_modules/@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmmirror.com/@babel/core/download/@babel/core-7.12.3.tgz?cache=0&sync_timestamp=1635560662864&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.3.tgz", - "integrity": "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/react-scripts/node_modules/@babel/core/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/react-tsparticles": { - "version": "1.37.5", - "resolved": "https://registry.npmjs.org/react-tsparticles/-/react-tsparticles-1.37.5.tgz", - "integrity": "sha512-Vl+rg3C+vsrek675x7OHBbLLZLJ0dZZjV3OhjT9NiKhdK+NcxNDB2CL3INsSZIv99sln5DRgsxdL3GYrZtqsqg==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "tsparticles": "^1.37.5" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/matteobruni" - }, - "peerDependencies": { - "react": ">=16" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-5.2.0.tgz?cache=0&sync_timestamp=1628984780649&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg%2Fdownload%2Fread-pkg-5.2.0.tgz", - "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/read-pkg-up/download/read-pkg-up-7.0.1.tgz", - "integrity": "sha1-86YTV1hFlzOuK5VjgFbhhU5+9Qc=", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz", - "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.nlark.com/readdirp/download/readdirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/recursive-readdir/download/recursive-readdir-2.2.2.tgz", - "integrity": "sha1-mUb7MnThYo3m42svZxSVO0hFCU8=", - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz", - "integrity": "sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag=" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218378158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", - "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=" - }, - "node_modules/regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.nlark.com/regenerate-unicode-properties/download/regenerate-unicode-properties-9.0.0.tgz?cache=0&sync_timestamp=1631617208210&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha1-VNCccRXh9T3CMUqXSzLBw0Tv4yY=", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz?cache=0&sync_timestamp=1626992969133&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.9.tgz", - "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.nlark.com/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1627057533376&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", - "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/regex-not/download/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npm.taobao.org/regex-parser/download/regex-parser-2.2.11.tgz", - "integrity": "sha1-OzfskEnhlHmAboeMq+fByoPM/lg=" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.nlark.com/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623668860843&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz", - "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", - "engines": { - "node": ">=8" - } - }, - "node_modules/regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.nlark.com/regexpu-core/download/regexpu-core-4.8.0.tgz?cache=0&sync_timestamp=1631619101495&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.8.0.tgz", - "integrity": "sha1-5WBbo2G2excYR4UBMnUC9EeamPA=", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmmirror.com/regjsgen/download/regjsgen-0.5.2.tgz", - "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=" - }, - "node_modules/regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.nlark.com/regjsparser/download/regjsparser-0.7.0.tgz", - "integrity": "sha1-prZntUyIXhi1JVTLSWDvcRh+mWg=", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.nlark.com/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/regl": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/regl/download/regl-1.7.0.tgz", - "integrity": "sha1-DRhUMQRKNWv4Dpt3WxG5Ne8nRtM=" - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "node_modules/renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/renderkid/download/renderkid-2.0.7.tgz?cache=0&sync_timestamp=1635212582997&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frenderkid%2Fdownload%2Frenderkid-2.0.7.tgz", - "integrity": "sha1-Rk8namvc7mBvShWZP5sp/HTKhgk=", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - } - }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/renderkid/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.nlark.com/repeat-element/download/repeat-element-1.1.4.tgz", - "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/require-directory/download/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz", - "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" - }, - "node_modules/resolve": { - "version": "1.18.1", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.18.1.tgz", - "integrity": "sha1-AY/LLFsgfSpkJK7jYcWiZtqPQTA=", - "dependencies": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-3.0.0.tgz", - "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz", - "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/resolve-pathname/download/resolve-pathname-3.0.0.tgz", - "integrity": "sha1-mdAiJNPPJjaJvsuzk7xWAxMCXc0=" - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/resolve-url/download/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/resolve-url-loader": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/resolve-url-loader/download/resolve-url-loader-3.1.4.tgz", - "integrity": "sha1-PBbK6+C5+uqcfMJS+knSNTxBIyA=", - "dependencies": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.36", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1624045508580&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", - "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/resolve-url-loader/node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve-url-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.2.3.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.2.3.tgz", - "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.36.tgz?cache=0&sync_timestamp=1634821260697&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.36.tgz", - "integrity": "sha1-BW+M/6k5ZiqPWQWVDAfVKFZE38s=", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-url-loader/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/resumer": { - "version": "0.0.0", - "resolved": "https://registry.npm.taobao.org/resumer/download/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "dependencies": { - "through": "~2.3.4" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.nlark.com/retry/download/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz", - "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rework": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/rework/download/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "dependencies": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - } - }, - "node_modules/rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/rework-visit/download/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" - }, - "node_modules/rework/node_modules/convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-0.3.5.tgz?cache=0&sync_timestamp=1624045508580&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "node_modules/right-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dependencies": { - "align-text": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", - "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rollup": { - "version": "0.25.8", - "resolved": "https://registry.npmmirror.com/rollup/download/rollup-0.25.8.tgz?cache=0&sync_timestamp=1636694254448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frollup%2Fdownload%2Frollup-0.25.8.tgz", - "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", - "dependencies": { - "chalk": "^1.1.1", - "minimist": "^1.2.0", - "source-map-support": "^0.3.2" - }, - "bin": { - "rollup": "bin/rollup" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npm.taobao.org/rollup-pluginutils/download/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha1-cvKvB0i1kjZNvTOJ5gDlqURKNR4=", - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/rollup/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup/node_modules/source-map": { - "version": "0.1.32", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.1.32.tgz", - "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/rollup/node_modules/source-map-support": { - "version": "0.3.3", - "resolved": "https://registry.nlark.com/source-map-support/download/source-map-support-0.3.3.tgz", - "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", - "dependencies": { - "source-map": "0.1.32" - } - }, - "node_modules/rollup/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz", - "integrity": "sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ=", - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz", - "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/rw/download/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" - }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/sane/download/sane-4.1.0.tgz", - "integrity": "sha1-7Ygf2SJzOmxGG8GJ3CtsAG8//e0=", - "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/sane/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/execa/download/execa-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-1.1.0.tgz?cache=0&sync_timestamp=1628592856164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&sync_timestamp=1633420566316&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/sane/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-1.0.0.tgz?cache=0&sync_timestamp=1628896304371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/sanitize.css": { - "version": "10.0.0", - "resolved": "https://registry.nlark.com/sanitize.css/download/sanitize.css-10.0.0.tgz", - "integrity": "sha1-tcslR+lthimmCUdURmUkOx3DZXo=" - }, - "node_modules/sass-loader": { - "version": "10.2.0", - "resolved": "https://registry.npmmirror.com/sass-loader/download/sass-loader-10.2.0.tgz?cache=0&sync_timestamp=1635385383233&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsass-loader%2Fdownload%2Fsass-loader-10.2.0.tgz", - "integrity": "sha1-PWTBWQ+REBOz+kigsiqD1eFJRxY=", - "dependencies": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0", - "sass": "^1.3.0", - "webpack": "^4.36.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/sass-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/saxes/download/saxes-5.0.1.tgz?cache=0&sync_timestamp=1636312689375&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsaxes%2Fdownload%2Fsaxes-5.0.1.tgz", - "integrity": "sha1-7rq5U/o7dgjb6U5drbFciI+maW0=", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmmirror.com/scheduler/download/scheduler-0.19.1.tgz", - "integrity": "sha1-Tz4u0sGn1laB9MhU+oxaHMtA8ZY=", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-2.7.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.1.tgz", - "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/scroll-into-view-if-needed": { - "version": "2.2.28", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/download/scroll-into-view-if-needed-2.2.28.tgz", - "integrity": "sha1-WhWy9YpSZCyIyOylhGROAXA9ZFo=", - "dependencies": { - "compute-scroll-into-view": "^1.0.17" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "node_modules/selfsigned": { - "version": "1.10.11", - "resolved": "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz?cache=0&sync_timestamp=1620160245612&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.11.tgz", - "integrity": "sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k=", - "dependencies": { - "node-forge": "^0.10.0" - } - }, - "node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz", - "integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg=", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", - "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-5.0.1.tgz?cache=0&sync_timestamp=1624284098038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-5.0.1.tgz", - "integrity": "sha1-eIbshIBJpGJGepfT2Rjrsqr5NPQ=", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmmirror.com/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1636932182141&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", - "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/set-value/download/set-value-2.0.1.tgz?cache=0&sync_timestamp=1631437777668&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/setimmediate/download/setimmediate-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsetimmediate%2Fdownload%2Fsetimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", - "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/shallowequal/download/shallowequal-1.1.0.tgz?cache=0&sync_timestamp=1616049083960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz", - "integrity": "sha1-GI1SHelbkIdAT9TctosT3wrk5/g=" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz?cache=0&sync_timestamp=1628896304371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmmirror.com/shell-quote/download/shell-quote-1.7.2.tgz?cache=0&sync_timestamp=1634798222474&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fshell-quote%2Fdownload%2Fshell-quote-1.7.2.tgz", - "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=" - }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz", - "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", - "optional": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.4.tgz", - "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.5.tgz", - "integrity": "sha1-nj6MwMdamUcrRDIQM6dwLnc4JS8=", - "license": "ISC" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/simple-swizzle/download/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", - "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/sisteransi/download/sisteransi-1.0.5.tgz", - "integrity": "sha1-E01oEpd1ZDfMBcoBNw06elcQde0=" - }, - "node_modules/size-sensor": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/size-sensor/download/size-sensor-1.0.1.tgz", - "integrity": "sha1-+E5GIG0+JZ+v8dVI5LO+ypMhnbs=" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz", - "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/slice-ansi/download/slice-ansi-4.0.0.tgz", - "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/snapdragon-util/download/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.21.tgz?cache=0&sync_timestamp=1612938804584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.21.tgz", - "integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs-client": { - "version": "1.5.2", - "resolved": "https://registry.nlark.com/sockjs-client/download/sockjs-client-1.5.2.tgz", - "integrity": "sha1-S8SMLanOR2nxnccjOWtQ9cEjMKM=", - "dependencies": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.3" - } - }, - "node_modules/sockjs-client/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/source-list-map/download/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=" - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmmirror.com/source-map-js/download/source-map-js-0.6.2.tgz?cache=0&sync_timestamp=1636401089874&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-0.6.2.tgz", - "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz", - "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.nlark.com/source-map-support/download/source-map-support-0.5.20.tgz", - "integrity": "sha1-EhZgifj15ejFaSazd2Mzkt0stsk=", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz", - "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=" - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.nlark.com/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz", - "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz", - "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", - "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz?cache=0&sync_timestamp=1618847153695&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz", - "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.nlark.com/spdx-license-ids/download/spdx-license-ids-3.0.10.tgz?cache=0&sync_timestamp=1628483195107&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.10.tgz", - "integrity": "sha1-DZvszN5wA9bGWNSH3UijLwvzAUs=" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/spdy/download/spdy-4.0.2.tgz", - "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", - "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/split-string/download/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.nlark.com/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1621364918494&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", - "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/stable/download/stable-0.1.8.tgz", - "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=" - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.nlark.com/stack-utils/download/stack-utils-2.0.5.tgz?cache=0&sync_timestamp=1631896368766&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstack-utils%2Fdownload%2Fstack-utils-2.0.5.tgz", - "integrity": "sha1-0lJl/KmVFUZZ27+6O0klR3jS/dU=", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz", - "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz", - "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=" - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654066899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", - "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.nlark.com/stream-http/download/stream-http-2.8.3.tgz", - "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", - "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=" - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "node_modules/string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/string-convert/download/string-convert-0.2.1.tgz", - "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/string-length/download/string-length-4.0.2.tgz", - "integrity": "sha1-qKjce9XBqCubPIuH4SX2aHG25Xo=", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/string-natural-compare/download/string-natural-compare-3.0.1.tgz", - "integrity": "sha1-ekLVhHRFSWN1no6LeuY9ccHn/fQ=" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-4.2.3.tgz", - "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/string.prototype.matchall/download/string.prototype.matchall-4.0.6.tgz?cache=0&sync_timestamp=1633405409079&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.6.tgz", - "integrity": "sha1-Wrtdq8lMew6iOA9lumELOlRLFfo=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/string.prototype.trim/download/string.prototype.trim-1.2.5.tgz", - "integrity": "sha1-pYe8yL+tjLmCmld/XeMN0XDBaCw=", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127318238&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz", - "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/stringify-object/download/stringify-object-3.3.0.tgz?cache=0&sync_timestamp=1629674903267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz", - "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-4.0.0.tgz?cache=0&sync_timestamp=1618599642133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-4.0.0.tgz", - "integrity": "sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg=", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/strip-comments/download/strip-comments-1.0.2.tgz", - "integrity": "sha1-grnEXn8FhzvuU/NxaK+TCqNoZ50=", - "dependencies": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/strip-eof/download/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz?cache=0&sync_timestamp=1620046435959&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-final-newline%2Fdownload%2Fstrip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz", - "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", - "engines": { - "node": ">=8" - } - }, - "node_modules/style-loader": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/style-loader/download/style-loader-1.3.0.tgz?cache=0&sync_timestamp=1634872454568&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstyle-loader%2Fdownload%2Fstyle-loader-1.3.0.tgz", - "integrity": "sha1-gotKOzt+eqWEfOe66eh0USEUJJ4=", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0" - }, - "engines": { - "node": ">= 8.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&sync_timestamp=1621449783387&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstylehacks%2Fdownload%2Fstylehacks-4.0.3.tgz", - "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/supports-hyperlinks/download/supports-hyperlinks-2.2.0.tgz?cache=0&sync_timestamp=1617752134357&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-hyperlinks%2Fdownload%2Fsupports-hyperlinks-2.2.0.tgz", - "integrity": "sha1-T3e0JIh2WJF3S3DHm6vYf5vVlLs=", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/svg-parser/download/svg-parser-2.0.4.tgz", - "integrity": "sha1-/cLinhOVFzYUC3bLEiyO5mMOtrU=" - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1635850455786&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", - "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz", - "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmmirror.com/css-what/download/css-what-3.4.2.tgz", - "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", - "engines": { - "node": ">= 6" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256858583&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", - "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=" - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/nth-check/download/nth-check-1.0.2.tgz", - "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz", - "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=" - }, - "node_modules/table": { - "version": "6.7.3", - "resolved": "https://registry.npmmirror.com/table/download/table-6.7.3.tgz?cache=0&sync_timestamp=1636037112686&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftable%2Fdownload%2Ftable-6.7.3.tgz", - "integrity": "sha1-JVOIQ5cVpzg5G9LuTLyomk0Fqbc=", - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.8.0", - "resolved": "https://registry.npmmirror.com/ajv/download/ajv-8.8.0.tgz?cache=0&sync_timestamp=1636828403489&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-8.8.0.tgz", - "integrity": "sha512-L+cJ/+pkdICMueKR6wIx3VP2fjIx3yAhuvadUv/osv9yFD7OVZy442xFF+Oeu3ZvmhBGQzoF6mTSt+LUWBmGQg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-1.0.0.tgz", - "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=" - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/tapable/download/tapable-1.1.3.tgz", - "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", - "engines": { - "node": ">=6" - } - }, - "node_modules/tape": { - "version": "4.14.0", - "resolved": "https://registry.nlark.com/tape/download/tape-4.14.0.tgz?cache=0&sync_timestamp=1628314883765&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftape%2Fdownload%2Ftape-4.14.0.tgz", - "integrity": "sha1-5NRgl+EpgXF1uQkl8jhfaxvPqCY=", - "dependencies": { - "call-bind": "~1.0.2", - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "glob": "~7.1.7", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.1.3", - "minimist": "~1.2.5", - "object-inspect": "~1.11.0", - "resolve": "~1.20.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.4", - "through": "~2.3.8" - }, - "bin": { - "tape": "bin/tape" - } - }, - "node_modules/tape/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmmirror.com/glob/download/glob-7.1.7.tgz", - "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tape/node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.nlark.com/tar/download/tar-6.1.11.tgz", - "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/temp-dir/download/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/tempy": { - "version": "0.3.0", - "resolved": "https://registry.nlark.com/tempy/download/tempy-0.3.0.tgz?cache=0&sync_timestamp=1629290041914&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz", - "integrity": "sha1-b2xbKVaVoWEwmWrVqwGovXJui/g=", - "dependencies": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.3.1.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz", - "integrity": "sha1-Y9ANIE4FlHT+Xht8ARESu9HcKeE=", - "engines": { - "node": ">=6" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/terminal-link/download/terminal-link-2.1.1.tgz?cache=0&sync_timestamp=1618724423731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterminal-link%2Fdownload%2Fterminal-link-2.1.1.tgz", - "integrity": "sha1-FKZKJ6s8Dfkz6lRvulXy0HjtyZQ=", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.nlark.com/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1632229770103&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", - "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/download/terser-webpack-plugin-4.2.3.tgz?cache=0&sync_timestamp=1636385901001&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-4.2.3.tgz", - "integrity": "sha1-KNrvSoO9F8HbApcHCtwH/Iz8apo=", - "dependencies": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" - }, - "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-3.3.2.tgz", - "integrity": "sha1-swxbbv8HMHMa6pu9nb7L2AJW1ks=", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", - "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz", - "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.9.0", - "resolved": "https://registry.nlark.com/terser/download/terser-5.9.0.tgz?cache=0&sync_timestamp=1632229770103&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser%2Fdownload%2Fterser-5.9.0.tgz", - "integrity": "sha1-R9bmKaUiljJA8rVfyqPJkIPSw1E=", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin/node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "engines": { - "node": ">= 8" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.nlark.com/test-exclude/download/test-exclude-6.0.0.tgz", - "integrity": "sha1-BKhphmHYBepvopO2y55jrARO8V4=", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "node_modules/throat": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/throat/download/throat-5.0.0.tgz", - "integrity": "sha1-xRmSNYA6rRh1SmZ9ZZtecs4Wdks=" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.nlark.com/through2/download/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", - "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=" - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz", - "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.nlark.com/timsort/download/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "node_modules/tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/tiny-invariant/download/tiny-invariant-1.2.0.tgz", - "integrity": "sha1-oRQfhrZyqRSMcul4oZpzublKFak=", - "license": "MIT" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/tiny-warning/download/tiny-warning-1.0.3.tgz", - "integrity": "sha1-lKMNtFPfTGQ9D9VmBg1gqHXYR1Q=" - }, - "node_modules/tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.2.tgz", - "integrity": "sha1-P2pNEHGtB2dtf6Ry4frECnGdiAM=", - "engines": { - "node": "*" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/tmpl/download/tmpl-1.0.5.tgz?cache=0&sync_timestamp=1630997323959&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftmpl%2Fdownload%2Ftmpl-1.0.5.tgz", - "integrity": "sha1-hoPguQK7nCDE9ybjwLafNlGMB8w=" - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/toggle-selection/download/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/toidentifier/download/toidentifier-1.0.0.tgz?cache=0&sync_timestamp=1636938521998&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-4.0.0.tgz", - "integrity": "sha1-2CIjTuyogvmR8PkIgkrSYi3b7OQ=", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/tr46/download/tr46-2.1.0.tgz", - "integrity": "sha1-+oeqgcpdWUHajL8fm3SdyWmk4kA=", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", - "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=" - }, - "node_modules/ts-pnp": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/ts-pnp/download/ts-pnp-1.2.0.tgz", - "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=", - "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.nlark.com/tsconfig-paths/download/tsconfig-paths-3.11.0.tgz?cache=0&sync_timestamp=1629839709860&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.11.0.tgz", - "integrity": "sha1-lUwf6XPaYznHjgawPOLkiBC2XzY=", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz?cache=0&sync_timestamp=1618599642133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz", - "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=" - }, - "node_modules/tsparticles": { - "version": "1.37.5", - "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.37.5.tgz", - "integrity": "sha512-BQBRnnKKhKH2POwxuHzPiuL/zPUjuR5QmMCFQ2vm3fadE2k4vqmH099m1R9R+nt0lTvWL6SCS0hYQQkqUjsMXg==", - "hasInstallScript": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/matteobruni" - } - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npm.taobao.org/tsutils/download/tsutils-3.21.0.tgz?cache=0&sync_timestamp=1615138426726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.21.0.tgz", - "integrity": "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.nlark.com/tty-browserify/download/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz", - "integrity": "sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A=" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.nlark.com/type-detect/download/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.21.3.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.21.3.tgz", - "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=", - "engines": { - "node": ">=10" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", - "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npm.taobao.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmmirror.com/typescript/download/typescript-4.4.4.tgz?cache=0&sync_timestamp=1636874454791&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftypescript%2Fdownload%2Ftypescript-4.4.4.tgz", - "integrity": "sha1-LNAaGh8WBwTTEB/VpY/w+fy4Aww=", - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmmirror.com/uglify-js/download/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dependencies": { - "source-map": "~0.5.1", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - }, - "optionalDependencies": { - "uglify-to-browserify": "~1.0.0" - } - }, - "node_modules/uglify-js/node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-1.2.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uglify-js/node_modules/cliui": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "node_modules/uglify-js/node_modules/yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "node_modules/uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/unbox-primitive/download/unbox-primitive-1.0.1.tgz", - "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha1-MBrNxSVjFnDTn2FG4Od/9rvevdw=", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-2.0.0.tgz?cache=0&sync_timestamp=1631618696521&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha1-VP0W4OyxZ88Ezx91a9zJLrp5dsM=", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha1-GgGqVyR8FMVouJd1pUk4eIGJpxQ=", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha1-CjbLmlhcT2q9Ua0d7dsoXBZSl8g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/union-value/download/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/unique-filename/download/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/unique-slug/download/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/unique-string/download/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz", - "integrity": "sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz?cache=0&sync_timestamp=1616088572283&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/has-values/download/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/upath/download/upath-1.2.0.tgz", - "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/urix/download/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/url-loader/download/url-loader-4.1.1.tgz", - "integrity": "sha1-KFBekFyuFYzwfJLKYi1/I35wpOI=", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.3", - "resolved": "https://registry.nlark.com/url-parse/download/url-parse-1.5.3.tgz?cache=0&sync_timestamp=1627252196051&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl-parse%2Fdownload%2Furl-parse-1.5.3.tgz", - "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/url/node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/querystring/download/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1622213272480&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.11.1.tgz", - "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159819836&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", - "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", - "dependencies": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmmirror.com/uuid/download/uuid-8.3.2.tgz", - "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz?cache=0&sync_timestamp=1614993639567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.3.0.tgz", - "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=" - }, - "node_modules/v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmmirror.com/v8-to-istanbul/download/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha1-MImNGn+gyE0iWiwUNPuVjykIg8E=", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/value-equal/download/value-equal-1.0.1.tgz", - "integrity": "sha1-Hgt5THNMXAyt4XnEN9NW2TGjTWw=" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1615203397897&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz", - "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=" - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz", - "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=" - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz", - "integrity": "sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/w3c-xmlserializer/download/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha1-PnEEoFt1FGzGD1ZDgLf2g6zxAgo=", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/walker/download/walker-1.0.8.tgz?cache=0&sync_timestamp=1635238260872&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwalker%2Fdownload%2Fwalker-1.0.8.tgz", - "integrity": "sha1-vUmNtHev5XPcBBhfAR06uKjXZT8=", - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz", - "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.nlark.com/watchpack/download/watchpack-1.7.5.tgz", - "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz?cache=0&sync_timestamp=1604989128919&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack-chokidar2%2Fdownload%2Fwatchpack-chokidar2-2.0.1.tgz", - "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "optional": true, - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-1.2.13.tgz", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-3.1.0.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", - "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/webidl-conversions/download/webidl-conversions-6.1.0.tgz", - "integrity": "sha1-kRG01+qArNQPUnDWZmIa+ni2lRQ=", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmmirror.com/webpack/download/webpack-4.44.2.tgz?cache=0&sync_timestamp=1636640473731&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack%2Fdownload%2Fwebpack-4.44.2.tgz", - "integrity": "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I=", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=", - "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/mime/download/mime-2.6.0.tgz", - "integrity": "sha1-oqaCqVzU0MsdYlfij4PafjWAA2c=", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "3.11.1", - "resolved": "https://registry.npmmirror.com/webpack-dev-server/download/webpack-dev-server-3.11.1.tgz?cache=0&sync_timestamp=1636807928809&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.1.tgz", - "integrity": "sha1-x0Aov1uoiFqvIw5Iog6JNquFEfA=", - "dependencies": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 6.11.5" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", - "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" - }, - "node_modules/webpack-dev-server/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-1.2.13.tgz", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-3.1.0.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/import-local/download/import-local-2.0.0.tgz", - "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.nlark.com/is-absolute-url/download/is-absolute-url-3.0.3.tgz", - "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-dev-server/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/webpack-dev-server/node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack-dev-server/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmmirror.com/ws/download/ws-6.2.2.tgz", - "integrity": "sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4=", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/webpack-dev-server/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1624233886384&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1615477439589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz", - "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-log/node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.nlark.com/ansi-colors/download/ansi-colors-3.2.4.tgz", - "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-log/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/webpack-manifest-plugin": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/webpack-manifest-plugin/download/webpack-manifest-plugin-2.2.0.tgz?cache=0&sync_timestamp=1627559109502&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-manifest-plugin%2Fdownload%2Fwebpack-manifest-plugin-2.2.0.tgz", - "integrity": "sha1-GcpptDWwuux+KfvpD7QBXeLeTxY=", - "dependencies": { - "fs-extra": "^7.0.0", - "lodash": ">=3.5 <5", - "object.entries": "^1.1.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.11.5" - }, - "peerDependencies": { - "webpack": "2 || 3 || 4" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-7.0.1.tgz", - "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161912962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1631547057681&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", - "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.nlark.com/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1630916591807&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-6.4.2.tgz", - "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.nlark.com/cacache/download/cacache-12.0.4.tgz", - "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/eslint-scope/download/eslint-scope-4.0.3.tgz", - "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/webpack/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1624284098038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", - "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.nlark.com/ssri/download/ssri-6.0.2.tgz?cache=0&sync_timestamp=1621364918494&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-6.0.2.tgz", - "integrity": "sha1-FXk5E08gRk5zAd26PpD/qPdyisU=", - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1636385901001&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz", - "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=" - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz", - "integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/websocket-extensions/download/websocket-extensions-0.1.4.tgz", - "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz?cache=0&sync_timestamp=1631479707600&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwhatwg-encoding%2Fdownload%2Fwhatwg-encoding-1.0.5.tgz", - "integrity": "sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-3.6.2.tgz", - "integrity": "sha1-3O0k838mJO0CgXJdUdDi4/5nf4w=" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmmirror.com/whatwg-url/download/whatwg-url-8.7.0.tgz?cache=0&sync_timestamp=1634673865107&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-8.7.0.tgz", - "integrity": "sha1-ZWp45RD/jzk3vAvL6fXArDWUG3c=", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz?cache=0&sync_timestamp=1614792316802&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/window-size": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/workbox-background-sync": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-background-sync/download/workbox-background-sync-5.1.4.tgz?cache=0&sync_timestamp=1635903720777&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-background-sync%2Fdownload%2Fworkbox-background-sync-5.1.4.tgz", - "integrity": "sha1-WuC71FX06cMZ6NgnwFW7hsiU/RI=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-broadcast-update/download/workbox-broadcast-update-5.1.4.tgz?cache=0&sync_timestamp=1635903720695&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-broadcast-update%2Fdownload%2Fworkbox-broadcast-update-5.1.4.tgz", - "integrity": "sha1-DuuJFw3cp/aRT6NSP7FEYokfLPw=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-build": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-build/download/workbox-build-5.1.4.tgz?cache=0&sync_timestamp=1635903725929&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-build%2Fdownload%2Fworkbox-build-5.1.4.tgz", - "integrity": "sha1-I9F+1cMgYMNjAwyII7OdDqv0yMc=", - "dependencies": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/runtime": "^7.8.4", - "@hapi/joi": "^15.1.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "@rollup/plugin-replace": "^2.3.1", - "@surma/rollup-plugin-off-main-thread": "^1.1.1", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.6", - "lodash.template": "^4.5.0", - "pretty-bytes": "^5.3.0", - "rollup": "^1.31.1", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-terser": "^5.3.1", - "source-map": "^0.7.3", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "tempy": "^0.3.0", - "upath": "^1.2.0", - "workbox-background-sync": "^5.1.4", - "workbox-broadcast-update": "^5.1.4", - "workbox-cacheable-response": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-expiration": "^5.1.4", - "workbox-google-analytics": "^5.1.4", - "workbox-navigation-preload": "^5.1.4", - "workbox-precaching": "^5.1.4", - "workbox-range-requests": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4", - "workbox-streams": "^5.1.4", - "workbox-sw": "^5.1.4", - "workbox-window": "^5.1.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve": { - "version": "7.1.3", - "resolved": "https://registry.npmmirror.com/@rollup/plugin-node-resolve/download/@rollup/plugin-node-resolve-7.1.3.tgz?cache=0&sync_timestamp=1634651560099&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz", - "integrity": "sha1-gN44Tt+9e/yRARZJEPhgeBUaPso=", - "dependencies": { - "@rollup/pluginutils": "^3.0.8", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-3.1.0.tgz", - "integrity": "sha1-cGtFJO5tyLEDs8mVUz5a1oDAK5s=", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/@rollup/plugin-replace/download/@rollup/plugin-replace-2.4.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.4.2.tgz", - "integrity": "sha1-otU5MU+8d8JEhY+qUjASglBoUQo=", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-replace/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-3.1.0.tgz", - "integrity": "sha1-cGtFJO5tyLEDs8mVUz5a1oDAK5s=", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.nlark.com/@types/estree/download/@types/estree-0.0.39.tgz", - "integrity": "sha1-4Xfmme4bjCLSMXTKqnQiZEOJUJ8=" - }, - "node_modules/workbox-build/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-1.0.1.tgz", - "integrity": "sha1-MbxdYSyWtwQQa0d+bdXYqhOMtwA=" - }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-8.1.0.tgz", - "integrity": "sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/workbox-build/node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz", - "integrity": "sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=", - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/workbox-build/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161912962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/workbox-build/node_modules/rollup": { - "version": "1.32.1", - "resolved": "https://registry.npmmirror.com/rollup/download/rollup-1.32.1.tgz?cache=0&sync_timestamp=1636694254448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frollup%2Fdownload%2Frollup-1.32.1.tgz", - "integrity": "sha1-RIDlLZ2eKuS0a6DZ3erzFjlA+cQ=", - "dependencies": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" - }, - "bin": { - "rollup": "dist/bin/rollup" - } - }, - "node_modules/workbox-build/node_modules/rollup-plugin-babel": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/rollup-plugin-babel/download/rollup-plugin-babel-4.4.0.tgz", - "integrity": "sha1-0VvSWUZqnRrMvbL+L/8XxS0DCss=", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - }, - "peerDependencies": { - "@babel/core": "7 || ^7.0.0-rc.2", - "rollup": ">=0.60.0 <3" - } - }, - "node_modules/workbox-build/node_modules/rollup-plugin-terser": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/rollup-plugin-terser/download/rollup-plugin-terser-5.3.1.tgz", - "integrity": "sha1-jGUAYsIqhCbGQmhUiVdGO/mBtBM=", - "dependencies": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^4.0.0", - "terser": "^4.6.2" - }, - "peerDependencies": { - "rollup": ">=0.66.0 <3" - } - }, - "node_modules/workbox-build/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1624284098038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", - "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/workbox-build/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-cacheable-response/download/workbox-cacheable-response-5.1.4.tgz?cache=0&sync_timestamp=1635903720752&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-cacheable-response%2Fdownload%2Fworkbox-cacheable-response-5.1.4.tgz", - "integrity": "sha1-n/JuE2YhS90Fz1pD2pMFsnQHilQ=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-core": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-core/download/workbox-core-5.1.4.tgz?cache=0&sync_timestamp=1635903721732&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-core%2Fdownload%2Fworkbox-core-5.1.4.tgz", - "integrity": "sha1-i7+yNi7N/zDiXRI8gseaxl2SZPQ=" - }, - "node_modules/workbox-expiration": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-expiration/download/workbox-expiration-5.1.4.tgz?cache=0&sync_timestamp=1635903720602&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-expiration%2Fdownload%2Fworkbox-expiration-5.1.4.tgz", - "integrity": "sha1-krXfRh6BJhFJQ6OxXFXk7LkgsWM=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-google-analytics": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-google-analytics/download/workbox-google-analytics-5.1.4.tgz?cache=0&sync_timestamp=1635903726174&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-google-analytics%2Fdownload%2Fworkbox-google-analytics-5.1.4.tgz", - "integrity": "sha1-szdoBrGsfX34QYME03lwcZX6hRc=", - "dependencies": { - "workbox-background-sync": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-navigation-preload/download/workbox-navigation-preload-5.1.4.tgz?cache=0&sync_timestamp=1635903720583&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-navigation-preload%2Fdownload%2Fworkbox-navigation-preload-5.1.4.tgz", - "integrity": "sha1-MNG3INJqBe/F+hFQPlzB7Vp4kCo=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-precaching": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-precaching/download/workbox-precaching-5.1.4.tgz?cache=0&sync_timestamp=1635903726628&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-precaching%2Fdownload%2Fworkbox-precaching-5.1.4.tgz", - "integrity": "sha1-h09+vddQ3T4EJJ766aGz9IKF/ms=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-range-requests": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-range-requests/download/workbox-range-requests-5.1.4.tgz?cache=0&sync_timestamp=1635903720707&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-range-requests%2Fdownload%2Fworkbox-range-requests-5.1.4.tgz", - "integrity": "sha1-cGahLBId9lv3b98rCGgBaqK6uFk=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-routing": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-routing/download/workbox-routing-5.1.4.tgz?cache=0&sync_timestamp=1635903726131&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-routing%2Fdownload%2Fworkbox-routing-5.1.4.tgz", - "integrity": "sha1-PozYa9O2VzSI0aLOc4XlR7VH6XA=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-strategies": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-strategies/download/workbox-strategies-5.1.4.tgz?cache=0&sync_timestamp=1635903721198&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-strategies%2Fdownload%2Fworkbox-strategies-5.1.4.tgz", - "integrity": "sha1-lrFBjM395TVGEpFJZAdNRmxS0Iw=", - "dependencies": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "node_modules/workbox-streams": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-streams/download/workbox-streams-5.1.4.tgz?cache=0&sync_timestamp=1635903726354&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-streams%2Fdownload%2Fworkbox-streams-5.1.4.tgz", - "integrity": "sha1-BXVOXjZnvcB43yyTFbP0EhDYysA=", - "dependencies": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "node_modules/workbox-sw": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-sw/download/workbox-sw-5.1.4.tgz?cache=0&sync_timestamp=1635903720656&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-sw%2Fdownload%2Fworkbox-sw-5.1.4.tgz", - "integrity": "sha1-K7NMn3OB+Q2EzvZEgW1FFQAR09s=" - }, - "node_modules/workbox-webpack-plugin": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-webpack-plugin/download/workbox-webpack-plugin-5.1.4.tgz?cache=0&sync_timestamp=1635903726379&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-webpack-plugin%2Fdownload%2Fworkbox-webpack-plugin-5.1.4.tgz", - "integrity": "sha1-e/6MFuQP6e2JNwgKx66ci94B55w=", - "dependencies": { - "@babel/runtime": "^7.5.5", - "fast-json-stable-stringify": "^2.0.0", - "source-map-url": "^0.4.0", - "upath": "^1.1.2", - "webpack-sources": "^1.3.0", - "workbox-build": "^5.1.4" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/workbox-window": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-window/download/workbox-window-5.1.4.tgz?cache=0&sync_timestamp=1635903720613&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-window%2Fdownload%2Fworkbox-window-5.1.4.tgz", - "integrity": "sha1-J0D33qf5O5kyYXmmLxzAyiyTyGM=", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", - "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/worker-rpc/download/worker-rpc-0.1.1.tgz", - "integrity": "sha1-y1Zb1tcHGo8WZgaGBR6WmtMvVNU=", - "dependencies": { - "microevent.ts": "~0.1.1" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz", - "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.5", - "resolved": "https://registry.npmmirror.com/ws/download/ws-7.5.5.tgz", - "integrity": "sha1-i0vEr1GM+r0Ec65PmRRCh7M+uIE=", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/xml-name-validator/download/xml-name-validator-3.0.0.tgz", - "integrity": "sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo=" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/xmlchars/download/xmlchars-2.2.0.tgz", - "integrity": "sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs=" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xterm": { - "version": "4.15.0", - "resolved": "https://registry.npmmirror.com/xterm/download/xterm-4.15.0.tgz", - "integrity": "sha1-5SA4UH66fg021H+B4p/lSMgrlWE=", - "license": "MIT" - }, - "node_modules/xterm-addon-fit": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/xterm-addon-fit/download/xterm-addon-fit-0.4.0.tgz", - "integrity": "sha1-BuDF0KaqrPsAnvVl76HIHpPZAZM=", - "peerDependencies": { - "xterm": "^4.0.0" - } - }, - "node_modules/xterm-addon-web-links": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/xterm-addon-web-links/download/xterm-addon-web-links-0.4.0.tgz?cache=0&sync_timestamp=1636129577866&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fxterm-addon-web-links%2Fdownload%2Fxterm-addon-web-links-0.4.0.tgz", - "integrity": "sha1-Jly/giG5sxXQp0jhMjvuMxzV2gM=", - "peerDependencies": { - "xterm": "^4.0.0" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/y18n/download/y18n-4.0.3.tgz", - "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmmirror.com/yaml/download/yaml-1.10.2.tgz?cache=0&sync_timestamp=1636797325177&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyaml%2Fdownload%2Fyaml-1.10.2.tgz", - "integrity": "sha1-IwHF/78StGfejaIzOkWeKeeSDks=", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1624233886384&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.nlark.com/yocto-queue/download/yocto-queue-0.1.0.tgz", - "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", - "engines": { - "node": ">=10" - } - } - }, - "dependencies": { - "@ant-design/charts": { - "version": "1.2.14", - "resolved": "https://registry.npmmirror.com/@ant-design/charts/download/@ant-design/charts-1.2.14.tgz", - "integrity": "sha1-8vbdUEh5nViKQaG9KZIbQO8SEEs=", - "requires": { - "@antv/g2plot": "^2.2.11", - "@antv/g6": "4.2.4", - "@antv/util": "^2.0.9", - "react-content-loader": "^5.0.4" - }, - "dependencies": { - "react-content-loader": { - "version": "5.1.4", - "resolved": "https://registry.npm.taobao.org/react-content-loader/download/react-content-loader-5.1.4.tgz?cache=0&sync_timestamp=1617698326524&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-content-loader%2Fdownload%2Freact-content-loader-5.1.4.tgz", - "integrity": "sha1-hUuv5EFd2d4HF0YhN1vDCO3Q67U=", - "requires": {} - } - } - }, - "@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-6.0.0.tgz?cache=0&sync_timestamp=1612935636044&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Fcolors%2Fdownload%2F%40ant-design%2Fcolors-6.0.0.tgz", - "integrity": "sha1-m5NmJXz/zEfbQrnQIDu1ksE8Apg=", - "requires": { - "@ctrl/tinycolor": "^3.4.0" - } - }, - "@ant-design/icons": { - "version": "4.7.0", - "resolved": "https://registry.npmmirror.com/@ant-design/icons/download/@ant-design/icons-4.7.0.tgz?cache=0&sync_timestamp=1632478732118&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40ant-design%2Ficons%2Fdownload%2F%40ant-design%2Ficons-4.7.0.tgz", - "integrity": "sha1-jDy+ClVrqSr13H0ecMCyW1F5rw8=", - "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1", - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-util": "^5.9.4" - }, - "dependencies": { - "rc-util": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/rc-util/download/rc-util-5.15.0.tgz", - "integrity": "sha512-8RI8sjOCXD3FhD3dzQNBQetpGol6BBd3sHQ/8jSGk9NPT0CH3JGtBfPODnASyE7AdDpCFQMOmgcp9CBs3S/1hg==", - "requires": { - "@babel/runtime": "^7.12.5", - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" - } - } - } - }, - "@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/download/@ant-design/icons-svg-4.2.1.tgz?cache=0&sync_timestamp=1632478258053&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40ant-design%2Ficons-svg%2Fdownload%2F%40ant-design%2Ficons-svg-4.2.1.tgz", - "integrity": "sha1-hjDajrRHGkqr2u19H/apfcss8Fo=" - }, - "@antv/adjust": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.2.3.tgz", - "integrity": "sha1-w4hKaAwyZMwSXX8qtTmOihwLlAE=", - "requires": { - "@antv/util": "~2.0.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" - } - } - }, - "@antv/algorithm": { - "version": "0.1.13", - "resolved": "https://registry.npmmirror.com/@antv/algorithm/download/@antv/algorithm-0.1.13.tgz?cache=0&sync_timestamp=1635393060420&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Falgorithm%2Fdownload%2F%40antv%2Falgorithm-0.1.13.tgz", - "integrity": "sha1-9iWNmZxlgknbxPq43zs7d02ygsA=", - "requires": { - "@antv/util": "^2.0.13", - "tslib": "^2.0.0" - } - }, - "@antv/attr": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.3.2.tgz", - "integrity": "sha1-5YZrZIcMYvOpwluKYfZUuiv9oFE=", - "requires": { - "@antv/color-util": "^2.0.1", - "@antv/util": "~2.0.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" - } - } - }, - "@antv/color-util": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@antv/color-util/download/@antv/color-util-2.0.6.tgz?cache=0&sync_timestamp=1636459510771&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fcolor-util%2Fdownload%2F%40antv%2Fcolor-util-2.0.6.tgz", - "integrity": "sha1-XhKbuc4/K5MJtSECs9ySlDDMwBY=", - "requires": { - "@antv/util": "^2.0.9", - "tslib": "^2.0.3" - } - }, - "@antv/component": { - "version": "0.8.20", - "resolved": "https://registry.npmmirror.com/@antv/component/download/@antv/component-0.8.20.tgz", - "integrity": "sha1-l/Daoi83aKNd4zzQ2cWP8yzspBc=", - "requires": { - "@antv/color-util": "^2.0.3", - "@antv/dom-util": "~2.0.1", - "@antv/g-base": "0.5.6", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.7", - "@antv/scale": "~0.3.1", - "@antv/util": "~2.0.0", - "fecha": "~4.2.0", - "tslib": "^2.0.3" - }, - "dependencies": { - "@antv/g-base": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/@antv/g-base/download/@antv/g-base-0.5.6.tgz", - "integrity": "sha1-2W2l+/bF+LBzBydR4V5e7HCzk/w=", - "requires": { - "@antv/event-emitter": "^0.1.1", - "@antv/g-math": "^0.1.6", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "@types/d3-timer": "^2.0.0", - "d3-ease": "^1.0.5", - "d3-interpolate": "^1.3.2", - "d3-timer": "^1.0.9", - "detect-browser": "^5.1.0", - "tslib": "^2.0.3" - } - } - } - }, - "@antv/coord": { - "version": "0.3.1", - "resolved": "https://registry.nlark.com/@antv/coord/download/@antv/coord-0.3.1.tgz?cache=0&sync_timestamp=1622725983384&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fcoord%2Fdownload%2F%40antv%2Fcoord-0.3.1.tgz", - "integrity": "sha1-mC4mHYoeBqGY61GOp6zCDth1oBk=", - "requires": { - "@antv/matrix-util": "^3.1.0-beta.2", - "@antv/util": "~2.0.12", - "tslib": "^2.1.0" - } - }, - "@antv/dom-util": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/@antv/dom-util/download/@antv/dom-util-2.0.3.tgz", - "integrity": "sha1-y9FYsciODopNhlhxpZabEZBVT/U=", - "requires": { - "tslib": "^2.0.3" - } - }, - "@antv/event-emitter": { - "version": "0.1.2", - "resolved": "https://registry.nlark.com/@antv/event-emitter/download/@antv/event-emitter-0.1.2.tgz", - "integrity": "sha1-oXt8uG5tBxiA3Gv7IydW+IYk7Lw=" - }, - "@antv/g-base": { - "version": "0.5.9", - "resolved": "https://registry.npmmirror.com/@antv/g-base/download/@antv/g-base-0.5.9.tgz", - "integrity": "sha1-WNDhHYUVetoUCPvfJPT0aPQOWc0=", - "requires": { - "@antv/event-emitter": "^0.1.1", - "@antv/g-math": "^0.1.6", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "@types/d3-timer": "^2.0.0", - "d3-ease": "^1.0.5", - "d3-interpolate": "^1.3.2", - "d3-timer": "^1.0.9", - "detect-browser": "^5.1.0", - "tslib": "^2.0.3" - } - }, - "@antv/g-canvas": { - "version": "0.5.12", - "resolved": "https://registry.npmmirror.com/@antv/g-canvas/download/@antv/g-canvas-0.5.12.tgz?cache=0&sync_timestamp=1636710672518&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg-canvas%2Fdownload%2F%40antv%2Fg-canvas-0.5.12.tgz", - "integrity": "sha1-L8QNztaZTwdPIjQeZdVve71Sdfc=", - "requires": { - "@antv/g-base": "^0.5.3", - "@antv/g-math": "^0.1.6", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0", - "tslib": "^2.0.3" - } - }, - "@antv/g-math": { - "version": "0.1.7", - "resolved": "https://registry.npmmirror.com/@antv/g-math/download/@antv/g-math-0.1.7.tgz?cache=0&sync_timestamp=1636705916424&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg-math%2Fdownload%2F%40antv%2Fg-math-0.1.7.tgz", - "integrity": "sha1-bsJ2kmn3zLZ+WBQNVznfdARswE4=", - "requires": { - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0" - } - }, - "@antv/g-svg": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/@antv/g-svg/download/@antv/g-svg-0.5.6.tgz", - "integrity": "sha1-cLL6mAxDGzmtPFtLU+NqHWCVfWU=", - "requires": { - "@antv/g-base": "^0.5.3", - "@antv/g-math": "^0.1.6", - "@antv/util": "~2.0.0", - "detect-browser": "^5.0.0", - "tslib": "^2.0.3" - } - }, - "@antv/g-webgpu": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/@antv/g-webgpu/download/@antv/g-webgpu-0.5.5.tgz", - "integrity": "sha1-AD1BFFPtA+fdkWvWxtsmorU9GZE=", - "requires": { - "@antv/g-webgpu-core": "^0.5.5", - "@antv/g-webgpu-engine": "^0.5.5", - "@webgpu/types": "^0.0.31", - "gl-matrix": "^3.1.0", - "gl-vec2": "^1.3.0", - "hammerjs": "^2.0.8", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "polyline-miter-util": "^1.0.1", - "polyline-normals": "^2.0.2", - "probe.gl": "^3.1.1", - "reflect-metadata": "^0.1.13" - } - }, - "@antv/g-webgpu-core": { - "version": "0.5.6", - "resolved": "https://registry.npm.taobao.org/@antv/g-webgpu-core/download/@antv/g-webgpu-core-0.5.6.tgz?cache=0&sync_timestamp=1615774782970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fg-webgpu-core%2Fdownload%2F%40antv%2Fg-webgpu-core-0.5.6.tgz", - "integrity": "sha1-aM3gtdC0S1eUNxwlI2gvRzTaPGw=", - "requires": { - "eventemitter3": "^4.0.0", - "gl-matrix": "^3.1.0", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "probe.gl": "^3.1.1", - "reflect-metadata": "^0.1.13" - } - }, - "@antv/g-webgpu-engine": { - "version": "0.5.6", - "resolved": "https://registry.npm.taobao.org/@antv/g-webgpu-engine/download/@antv/g-webgpu-engine-0.5.6.tgz", - "integrity": "sha1-vnwb+OSxgi1yowLWKANDReBXe70=", - "requires": { - "@antv/g-webgpu-core": "^0.5.6", - "@webgpu/glslang": "^0.0.15", - "@webgpu/types": "^0.0.31", - "gl-matrix": "^3.1.0", - "hammerjs": "^2.0.8", - "inversify": "^5.0.1", - "inversify-inject-decorators": "^3.1.0", - "probe.gl": "^3.1.1", - "reflect-metadata": "^0.1.13", - "regl": "^1.3.11" - } - }, - "@antv/g2": { - "version": "4.1.34", - "resolved": "https://registry.npmmirror.com/@antv/g2/download/@antv/g2-4.1.34.tgz", - "integrity": "sha1-aqcaCcJAuSkUvGZvESMQqrwOPhY=", - "requires": { - "@antv/adjust": "^0.2.1", - "@antv/attr": "^0.3.1", - "@antv/color-util": "^2.0.2", - "@antv/component": "^0.8.19", - "@antv/coord": "^0.3.0", - "@antv/dom-util": "^2.0.2", - "@antv/event-emitter": "~0.1.0", - "@antv/g-base": "~0.5.6", - "@antv/g-canvas": "~0.5.10", - "@antv/g-svg": "~0.5.6", - "@antv/matrix-util": "^3.1.0-beta.3", - "@antv/path-util": "^2.0.15", - "@antv/scale": "^0.3.14", - "@antv/util": "~2.0.5", - "tslib": "^2.0.0" - } - }, - "@antv/g2plot": { - "version": "2.3.40", - "resolved": "https://registry.npmmirror.com/@antv/g2plot/download/@antv/g2plot-2.3.40.tgz", - "integrity": "sha512-A6BqXoEZObauzBlVqOo15fS4PKKzZl/bJAvF4EdraUM5LhwU1yjGinMrPNi1AZ+fIsAwP6NhAFWmpd7TC+bLhw==", - "requires": { - "@antv/event-emitter": "^0.1.2", - "@antv/g2": "^4.1.26", - "d3-hierarchy": "^2.0.0", - "d3-regression": "^1.3.5", - "fmin": "^0.0.2", - "pdfast": "^0.2.0", - "size-sensor": "^1.0.1", - "tslib": "^2.0.3" - } - }, - "@antv/g6": { - "version": "4.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6/download/@antv/g6-4.2.4.tgz?cache=0&sync_timestamp=1634648114384&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg6%2Fdownload%2F%40antv%2Fg6-4.2.4.tgz", - "integrity": "sha1-1cCIvi61tfbl3wESJSLp1Tbunjo=", - "requires": { - "@antv/g6-pc": "0.2.4" - } - }, - "@antv/g6-core": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6-core/download/@antv/g6-core-0.2.4.tgz", - "integrity": "sha1-KE+qohhmLAz0JndFE1NsvQBKDtY=", - "requires": { - "@antv/algorithm": "^0.1.5", - "@antv/dom-util": "^2.0.1", - "@antv/event-emitter": "~0.1.0", - "@antv/g-base": "^0.5.1", - "@antv/g-math": "^0.1.1", - "@antv/matrix-util": "^3.1.0-beta.2", - "@antv/path-util": "^2.0.3", - "@antv/scale": "^0.3.1", - "@antv/util": "~2.0.5", - "ml-matrix": "^6.5.0", - "tslib": "^2.1.0" - } - }, - "@antv/g6-element": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6-element/download/@antv/g6-element-0.2.4.tgz?cache=0&sync_timestamp=1634631107455&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg6-element%2Fdownload%2F%40antv%2Fg6-element-0.2.4.tgz", - "integrity": "sha1-fh5CWJIgb/+RBPFSn9jqJFNhYq4=", - "requires": { - "@antv/g-base": "^0.5.1", - "@antv/g6-core": "0.2.4", - "@antv/util": "~2.0.5" - } - }, - "@antv/g6-pc": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6-pc/download/@antv/g6-pc-0.2.4.tgz", - "integrity": "sha1-dQLKwQhqKKmDxWdSGPFFr7FJomY=", - "requires": { - "@ant-design/colors": "^4.0.5", - "@antv/algorithm": "^0.1.5", - "@antv/dom-util": "^2.0.1", - "@antv/event-emitter": "~0.1.0", - "@antv/g-base": "^0.5.1", - "@antv/g-canvas": "^0.5.2", - "@antv/g-math": "^0.1.1", - "@antv/g-svg": "^0.5.1", - "@antv/g6-core": "0.2.4", - "@antv/g6-element": "0.2.4", - "@antv/g6-plugin": "0.2.4", - "@antv/hierarchy": "^0.6.7", - "@antv/layout": "^0.1.11", - "@antv/matrix-util": "^3.0.4", - "@antv/path-util": "^2.0.3", - "@antv/scale": "^0.3.1", - "@antv/util": "~2.0.5", - "color": "^3.1.3", - "d3-force": "^2.0.1", - "dagre": "^0.8.5", - "insert-css": "^2.0.0", - "ml-matrix": "^6.5.0" - }, - "dependencies": { - "@ant-design/colors": { - "version": "4.0.5", - "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-4.0.5.tgz?cache=0&sync_timestamp=1612935636044&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Fcolors%2Fdownload%2F%40ant-design%2Fcolors-4.0.5.tgz", - "integrity": "sha1-19EA11Rcyo9iSVRgSmiS/Ei6Wq4=", - "requires": { - "tinycolor2": "^1.4.1" - } - }, - "@antv/matrix-util": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.0.4.tgz", - "integrity": "sha1-6hPxWKovtLovuNa2tWHsRn6jrCA=", - "requires": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.3.0", - "tslib": "^2.0.3" - } - } - } - }, - "@antv/g6-plugin": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@antv/g6-plugin/download/@antv/g6-plugin-0.2.4.tgz?cache=0&sync_timestamp=1634633342017&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40antv%2Fg6-plugin%2Fdownload%2F%40antv%2Fg6-plugin-0.2.4.tgz", - "integrity": "sha1-btNQfHpICkv7vATt1CCdV8z1LfY=", - "requires": { - "@antv/dom-util": "^2.0.2", - "@antv/g-base": "^0.5.1", - "@antv/g-canvas": "^0.5.2", - "@antv/g-svg": "^0.5.2", - "@antv/g6-core": "0.2.4", - "@antv/matrix-util": "^3.0.4", - "@antv/scale": "^0.3.4", - "@antv/util": "^2.0.9", - "insert-css": "^2.0.0" - }, - "dependencies": { - "@antv/matrix-util": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.0.4.tgz", - "integrity": "sha1-6hPxWKovtLovuNa2tWHsRn6jrCA=", - "requires": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.3.0", - "tslib": "^2.0.3" - } - } - } - }, - "@antv/hierarchy": { - "version": "0.6.8", - "resolved": "https://registry.nlark.com/@antv/hierarchy/download/@antv/hierarchy-0.6.8.tgz", - "integrity": "sha1-t3xJCpwt1toYbLrO4OeIe4wbP6Q=", - "requires": { - "@antv/util": "^2.0.7" - } - }, - "@antv/layout": { - "version": "0.1.18", - "resolved": "https://registry.npmmirror.com/@antv/layout/download/@antv/layout-0.1.18.tgz", - "integrity": "sha1-8eI1EPswNfBfvCl4IF7+7D+4eO0=", - "requires": { - "@antv/g-webgpu": "0.5.5", - "d3-force": "^2.0.1", - "dagre": "^0.8.5", - "ml-matrix": "^6.5.0" - } - }, - "@antv/matrix-util": { - "version": "3.1.0-beta.3", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.1.0-beta.3.tgz", - "integrity": "sha1-4GHej6e+BGBaFVxpzFzpCC7t3e4=", - "requires": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.4.3", - "tslib": "^2.0.3" - } - }, - "@antv/path-util": { - "version": "2.0.15", - "resolved": "https://registry.npmmirror.com/@antv/path-util/download/@antv/path-util-2.0.15.tgz", - "integrity": "sha1-pvaR38i3vOW+fwqrtb1hSWQyVjE=", - "requires": { - "@antv/matrix-util": "^3.0.4", - "@antv/util": "^2.0.9", - "tslib": "^2.0.3" - }, - "dependencies": { - "@antv/matrix-util": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.0.4.tgz", - "integrity": "sha1-6hPxWKovtLovuNa2tWHsRn6jrCA=", - "requires": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.3.0", - "tslib": "^2.0.3" - } - } - } - }, - "@antv/scale": { - "version": "0.3.14", - "resolved": "https://registry.npmmirror.com/@antv/scale/download/@antv/scale-0.3.14.tgz", - "integrity": "sha1-Bxj4ZRNo5cmNtWEgZRMqjIu83kg=", - "requires": { - "@antv/util": "~2.0.3", - "fecha": "~4.2.0", - "tslib": "^2.0.0" - } - }, - "@antv/util": { - "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/@antv/util/download/@antv/util-2.0.17.tgz", - "integrity": "sha1-6O9CrKeJKBWyKSafPdEMazx1l6k=", - "requires": { - "csstype": "^3.0.8", - "tslib": "^2.0.3" - } - }, - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.16.0.tgz", - "integrity": "sha1-DfyAMJvuyEEeZecGRhxAiwu5tDE=", - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/compat-data": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/compat-data/download/@babel/compat-data-7.16.0.tgz?cache=0&sync_timestamp=1635560942494&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.16.0.tgz", - "integrity": "sha1-6iadf3jes6eCbDmkBI7s2lQevao=" - }, - "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/core/download/@babel/core-7.16.0.tgz?cache=0&sync_timestamp=1635560662864&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.16.0.tgz", - "integrity": "sha1-xP9EBG9f4xBSXMnrTvUUfwxTdNQ=", - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/generator/download/@babel/generator-7.16.0.tgz", - "integrity": "sha1-1A89HVB15i01ALzLZ/PaqKlSZbI=", - "requires": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.16.0.tgz?cache=0&sync_timestamp=1635560944976&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.16.0.tgz", - "integrity": "sha1-mh8OvNpT2aLQAQjEzqzmpdXx8I0=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", - "integrity": "sha1-8aaGuS2nlAIMJlguuFLprM0NeII=", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.16.3.tgz?cache=0&sync_timestamp=1636495224047&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.16.0.tgz?cache=0&sync_timestamp=1635560940029&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.16.0.tgz", - "integrity": "sha1-CQ1NFms0KgOp/sN+9P1a65x8aks=", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.16.0.tgz?cache=0&sync_timestamp=1635567015952&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.16.0.tgz", - "integrity": "sha1-BrI0jON/zMT14Y3NjXUFPyp8RP8=", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.2.4.tgz?cache=0&sync_timestamp=1636799764872&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-define-polyfill-provider%2Fdownload%2F%40babel%2Fhelper-define-polyfill-provider-0.2.4.tgz", - "integrity": "sha1-iGeu150+psreQPgB77esXGaRaxA=", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.16.0.tgz?cache=0&sync_timestamp=1635567238246&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.16.0.tgz", - "integrity": "sha1-dTAXM3oV9G+cCfZ0z/EM7pudd3g=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/download/@babel/helper-function-name-7.16.0.tgz?cache=0&sync_timestamp=1635560944177&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.16.0.tgz", - "integrity": "sha1-t90Hl9ALv+5PB+nE6lsOMMi7FIE=", - "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.16.0.tgz?cache=0&sync_timestamp=1635560945700&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.16.0.tgz", - "integrity": "sha1-AIjHSGspqctdlIsaHeRttm4InPo=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.16.0.tgz?cache=0&sync_timestamp=1635560943828&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.16.0.tgz", - "integrity": "sha1-TJAjwvHe9+KP9G/B2802o5vqqBo=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.16.0.tgz?cache=0&sync_timestamp=1635560945366&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha1-KShwQO/Rl8d2Nu91GI6B2ovM1aQ=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.16.0.tgz?cache=0&sync_timestamp=1635560941965&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.16.0.tgz", - "integrity": "sha1-kFOOYLZy7PG0SPX09UM9N+eaPsM=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.16.0.tgz", - "integrity": "sha1-HIKo3UyzRXdQLr0pCWmbGUw+m7U=", - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.16.0.tgz?cache=0&sync_timestamp=1635560944574&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha1-zs2xRdcMVAlrFWT46fEM19GTszg=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz?cache=0&sync_timestamp=1623280794347&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.14.5.tgz", - "integrity": "sha1-WsgizpfuxGdBq3ClF5ceRDpwxak=" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.16.0.tgz?cache=0&sync_timestamp=1635567015463&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.16.0.tgz", - "integrity": "sha1-1ao7CG4Tpf4FI4/0DDpaDC2rPq0=", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-wrap-function": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.16.0.tgz?cache=0&sync_timestamp=1635560943145&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.16.0.tgz", - "integrity": "sha1-cwVejTz5vLqN21XK2T/tyGD2jxc=", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.16.0.tgz?cache=0&sync_timestamp=1635560942808&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.16.0.tgz", - "integrity": "sha1-IdaidiDjg+N1NM9sELugGab5BRc=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.16.0.tgz?cache=0&sync_timestamp=1635566957303&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-skip-transparent-expression-wrappers%2Fdownload%2F%40babel%2Fhelper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha1-DuM4gHAUfDrgUeSH7KPrsOLouwk=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.16.0.tgz?cache=0&sync_timestamp=1635560943488&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.16.0.tgz", - "integrity": "sha1-KWcvQ2Y+k23zcKrrIr7ds7rsdDg=", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=" - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz?cache=0&sync_timestamp=1623280794147&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.14.5.tgz", - "integrity": "sha1-bnKh//GNXfy4eOHmLxoCHEty1aM=" - }, - "@babel/helper-wrap-function": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.16.0.tgz?cache=0&sync_timestamp=1635567238019&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.16.0.tgz", - "integrity": "sha1-s88xivzndN/nW4Z2fNbWjzSC5Xw=", - "requires": { - "@babel/helper-function-name": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/helpers/download/@babel/helpers-7.16.3.tgz?cache=0&sync_timestamp=1636495223518&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" - } - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/highlight/download/@babel/highlight-7.16.0.tgz?cache=0&sync_timestamp=1635560845502&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.16.0.tgz", - "integrity": "sha1-bOsysspLj182H7f9gh4/3fShclo=", - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.3.tgz?cache=0&sync_timestamp=1636495066293&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.16.3.tgz", - "integrity": "sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.2", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/download/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", - "integrity": "sha1-KXf8qbIS2xU8GVZ05Xz6uAdzMYM=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/download/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining%2Fdownload%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", - "integrity": "sha1-NYly6qsAb16wgmGDsMk8vK8T4eI=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.16.0.tgz", - "integrity": "sha1-EUJdR6YDZDUvZorV+8HWWWssXK8=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.0", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.16.0.tgz", - "integrity": "sha1-wClhgmfd68coD6KG4PjKKieKLRo=", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/download/@babel/plugin-proposal-class-static-block-7.16.0.tgz", - "integrity": "sha1-UpaULFZNgUTIPuo0fQqooLiRcOc=", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.12.1.tgz", - "integrity": "sha1-WScUOf7UFFRWxBBnRQVDruMy0V8=", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-decorators": "^7.12.1" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.16.0.tgz", - "integrity": "sha1-eD7KYdUFJiAvmylglUU5d+iGWfE=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.16.0.tgz", - "integrity": "sha1-nAHe5Auda4R7ZWqvSjl2pxdA8iI=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.16.0.tgz", - "integrity": "sha1-yuNale0dKn+inE3EFUC4SnLpqyU=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.16.0.tgz", - "integrity": "sha1-pxG4zrP/3dPviNOknobb08x9s/0=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", - "integrity": "sha1-ROHM4I/iQnSCz0RqkbtFFSjtBZY=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.16.0.tgz", - "integrity": "sha1-XUGOT7v4ubfQMSXTpScwQzo3NzQ=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.16.0.tgz", - "integrity": "sha1-X7MvbZJNbmcSgQNipg4SomCYcuY=", - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.16.0.tgz", - "integrity": "sha1-WRAIWBGrTCiwDW6/+kqwJ00eXxY=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.16.0.tgz", - "integrity": "sha1-VtvDlwglaDYI6e+1XqgsKi1sjcA=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.16.0.tgz", - "integrity": "sha1-tNr7nHF+QwHFd2sw0IDWODyJr/Y=", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/download/@babel/plugin-proposal-private-property-in-object-7.16.0.tgz", - "integrity": "sha1-aek1ssXHnSSIES2IbwxOJ5D+528=", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.16.0.tgz", - "integrity": "sha1-iQSC38XqN45C4Zpx5wlyjKvxhhI=", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-bigint/download/@babel/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha1-TJpvZp9dDN8bkKFnHpoUa+UwDOo=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-static-block/download/@babel/plugin-syntax-class-static-block-7.14.5.tgz?cache=0&sync_timestamp=1623280714275&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-class-static-block%2Fdownload%2F%40babel%2Fplugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha1-GV34mxRrS3izv4l/16JXyEZZ1AY=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.16.0.tgz", - "integrity": "sha1-642BHN0QYPasPACVa/P2M1UFoy8=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.16.0.tgz", - "integrity": "sha1-B0JwIdCT7XcBlAgiG+rwJyu8+uw=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-import-meta/download/@babel/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha1-7mATSMNw+jNNIge+FYd3SWUh/VE=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.16.0.tgz", - "integrity": "sha1-+WJDlDFzZamojII1jT+EcRVGmPE=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-private-property-in-object/download/@babel/plugin-syntax-private-property-in-object-7.14.5.tgz?cache=0&sync_timestamp=1623280716523&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-private-property-in-object%2Fdownload%2F%40babel%2Fplugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha1-DcZnHsDqIrbpShEU+FeXDNOd4a0=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.14.5.tgz?cache=0&sync_timestamp=1623280804775&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha1-wc/a3DWmRiQAAfBhOCR7dBw02Uw=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/download/@babel/plugin-syntax-typescript-7.16.0.tgz?cache=0&sync_timestamp=1635560940443&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-syntax-typescript%2Fdownload%2F%40babel%2Fplugin-syntax-typescript-7.16.0.tgz", - "integrity": "sha1-L+6xPZM0zFguqREdNQb3cxdBebs=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.16.0.tgz", - "integrity": "sha1-lRcG+LRJyDTtB71HTAkkyUS5Wo4=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.16.0.tgz", - "integrity": "sha1-3xJjf5Yw3foO+dehG8QU1inThgQ=", - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.16.0.tgz", - "integrity": "sha1-xhh2MjOtAoR4BavKxMNFzp3nFF0=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.16.0.tgz", - "integrity": "sha1-vPQz+0gv6MPTtOimaxxKjnfTfBY=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.16.0.tgz?cache=0&sync_timestamp=1635566945526&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.16.0.tgz", - "integrity": "sha1-VM9f8LIkLGVz11PNS/xwd6iygvU=", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.16.0.tgz", - "integrity": "sha1-4MOFUH0h4bCwdtZr7W1SMbhRELc=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.16.0.tgz", - "integrity": "sha1-rT1+dFhK1epOrbHmZCFGxZDe4zw=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.16.0.tgz", - "integrity": "sha1-ULqwDBCEthYtClioGAMc9XeY4G8=", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.16.0.tgz", - "integrity": "sha1-i8LiGBPj6J5eW/O2CqX8RYV1oXY=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.16.0.tgz?cache=0&sync_timestamp=1635566989126&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.16.0.tgz", - "integrity": "sha1-oYDNKIHjUzzvnTkB5I2tD77/S+Q=", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-flow-strip-types/download/@babel/plugin-transform-flow-strip-types-7.12.1.tgz", - "integrity": "sha1-hDDez6frKupUFO1KP6bhZSt9d8Q=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.12.1" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.16.0.tgz?cache=0&sync_timestamp=1635567508437&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.16.0.tgz", - "integrity": "sha1-96us7RVSYOJGE1m7x8ckispea9I=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.16.0.tgz?cache=0&sync_timestamp=1635566911742&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.16.0.tgz", - "integrity": "sha1-AuNpnChMYmIjZZn3UQZcXV8fQA4=", - "requires": { - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.16.0.tgz?cache=0&sync_timestamp=1635566948325&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.16.0.tgz", - "integrity": "sha1-eXEeZw/86zG9KYIp1Q82IfeYDKw=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.16.0.tgz?cache=0&sync_timestamp=1635566948649&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.16.0.tgz", - "integrity": "sha1-UlG0zOAer4MUQD0hrtsmnXn15ks=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.16.0.tgz?cache=0&sync_timestamp=1635566912764&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.16.0.tgz", - "integrity": "sha1-CavUHhjc9P1HnFmMHO97056xM34=", - "requires": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.16.0.tgz?cache=0&sync_timestamp=1635566912532&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.16.0.tgz", - "integrity": "sha1-rdWOY4yN3Eh1vZqey1xZRhP2ySI=", - "requires": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.16.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.16.0.tgz?cache=0&sync_timestamp=1635566913014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.16.0.tgz", - "integrity": "sha1-qSzyQK/rYF9MoWZwRTAkQl5CHqQ=", - "requires": { - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.15.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.16.0.tgz?cache=0&sync_timestamp=1635566913244&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.16.0.tgz", - "integrity": "sha1-GV8mwq1tajkbcIgO/84YzmJeBqc=", - "requires": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", - "integrity": "sha1-09thzF1bl5hlWZZ81eqD5cMglso=", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.16.0.tgz?cache=0&sync_timestamp=1635566951246&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.16.0.tgz", - "integrity": "sha1-r4I6tXb3UiFaSZN3eaQcplglqzU=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.16.0.tgz?cache=0&sync_timestamp=1635566913937&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.16.0.tgz", - "integrity": "sha1-+yDVgG3GSRoGKWrBTqjo1v7dpys=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.16.0" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.16.3.tgz?cache=0&sync_timestamp=1636495224692&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.16.3.tgz", - "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.16.0.tgz?cache=0&sync_timestamp=1635566952712&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.16.0.tgz", - "integrity": "sha1-qVxVIYmpagAFn2d23E4A42kMeNE=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-constant-elements/download/@babel/plugin-transform-react-constant-elements-7.16.0.tgz?cache=0&sync_timestamp=1635739225099&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-constant-elements%2Fdownload%2F%40babel%2Fplugin-transform-react-constant-elements-7.16.0.tgz", - "integrity": "sha1-FIO4lLjm7wcJ0mBTL71NufwnoOY=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-display-name%2Fdownload%2F%40babel%2Fplugin-transform-react-display-name-7.16.0.tgz", - "integrity": "sha1-mgrYqo6HkIg6e9Jzb2YimlgSVnY=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/download/@babel/plugin-transform-react-jsx-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-jsx%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-7.16.0.tgz", - "integrity": "sha1-VbeX1JYMPeBOB60cBHbivGpIifE=", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/download/@babel/plugin-transform-react-jsx-development-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-jsx-development%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-development-7.16.0.tgz", - "integrity": "sha1-HLUodGeNI6sR0NFkiNVHMIBzA+8=", - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.0" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-pure-annotations/download/@babel/plugin-transform-react-pure-annotations-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-pure-annotations%2Fdownload%2F%40babel%2Fplugin-transform-react-pure-annotations-7.16.0.tgz", - "integrity": "sha1-I9tt31WNir3kG4rZ1Z9IrVUyzKs=", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.16.0.tgz?cache=0&sync_timestamp=1635566914723&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.16.0.tgz", - "integrity": "sha1-6u5CLISwIy0Drqfbmcl97q9hJaQ=", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.16.0.tgz?cache=0&sync_timestamp=1635566953412&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.16.0.tgz", - "integrity": "sha1-//S53LGeEmGTlL2hctFPLQTAN5w=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.1.tgz", - "integrity": "sha1-BLeSBX60YDif9qQZjjd2FOoee6U=", - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "resolve": "^1.8.1", - "semver": "^5.5.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.16.0.tgz?cache=0&sync_timestamp=1635566953711&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.16.0.tgz", - "integrity": "sha1-CQNy4xQffMMk7XCz2vU3nfL6OE0=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.16.0.tgz?cache=0&sync_timestamp=1635566954049&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.16.0.tgz", - "integrity": "sha1-0hygmbvVOrMHqGIeAZp70PQM3Ps=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.16.0.tgz?cache=0&sync_timestamp=1635566954378&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.16.0.tgz", - "integrity": "sha1-w16jGgLYa+SF9qpRAYS2d6kXOP0=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.16.0.tgz?cache=0&sync_timestamp=1635566917280&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.16.0.tgz", - "integrity": "sha1-qOztOo57ji1A7E7EVIpFkSYw0wI=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.16.0.tgz?cache=0&sync_timestamp=1635566955088&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.16.0.tgz", - "integrity": "sha1-ixmiRMb4ydZo3Kam91Stbq0RKPI=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.16.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.16.1.tgz", - "integrity": "sha1-zAZwsoIrAzg1W8Gz0iRqQrgWZAk=", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.16.0" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.16.0.tgz?cache=0&sync_timestamp=1635566955407&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.16.0.tgz", - "integrity": "sha1-GjVAZLTEVmOjIzT0b6DPYQC1sfM=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.16.0.tgz", - "integrity": "sha1-KTuAlQF3yMha7eh87ygCWfuZVAI=", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/preset-env": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/download/@babel/preset-env-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.16.0.tgz", - "integrity": "sha1-lyKDk9IXVg1qHGxW8K250SvKZ/U=", - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-async-generator-functions": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-class-static-block": "^7.16.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.0", - "@babel/plugin-proposal-export-namespace-from": "^7.16.0", - "@babel/plugin-proposal-json-strings": "^7.16.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-object-rest-spread": "^7.16.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-proposal-private-property-in-object": "^7.16.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.0", - "@babel/plugin-transform-async-to-generator": "^7.16.0", - "@babel/plugin-transform-block-scoped-functions": "^7.16.0", - "@babel/plugin-transform-block-scoping": "^7.16.0", - "@babel/plugin-transform-classes": "^7.16.0", - "@babel/plugin-transform-computed-properties": "^7.16.0", - "@babel/plugin-transform-destructuring": "^7.16.0", - "@babel/plugin-transform-dotall-regex": "^7.16.0", - "@babel/plugin-transform-duplicate-keys": "^7.16.0", - "@babel/plugin-transform-exponentiation-operator": "^7.16.0", - "@babel/plugin-transform-for-of": "^7.16.0", - "@babel/plugin-transform-function-name": "^7.16.0", - "@babel/plugin-transform-literals": "^7.16.0", - "@babel/plugin-transform-member-expression-literals": "^7.16.0", - "@babel/plugin-transform-modules-amd": "^7.16.0", - "@babel/plugin-transform-modules-commonjs": "^7.16.0", - "@babel/plugin-transform-modules-systemjs": "^7.16.0", - "@babel/plugin-transform-modules-umd": "^7.16.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", - "@babel/plugin-transform-new-target": "^7.16.0", - "@babel/plugin-transform-object-super": "^7.16.0", - "@babel/plugin-transform-parameters": "^7.16.0", - "@babel/plugin-transform-property-literals": "^7.16.0", - "@babel/plugin-transform-regenerator": "^7.16.0", - "@babel/plugin-transform-reserved-words": "^7.16.0", - "@babel/plugin-transform-shorthand-properties": "^7.16.0", - "@babel/plugin-transform-spread": "^7.16.0", - "@babel/plugin-transform-sticky-regex": "^7.16.0", - "@babel/plugin-transform-template-literals": "^7.16.0", - "@babel/plugin-transform-typeof-symbol": "^7.16.0", - "@babel/plugin-transform-unicode-escapes": "^7.16.0", - "@babel/plugin-transform-unicode-regex": "^7.16.0", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.0", - "babel-plugin-polyfill-corejs2": "^0.2.3", - "babel-plugin-polyfill-corejs3": "^0.3.0", - "babel-plugin-polyfill-regenerator": "^0.2.3", - "core-js-compat": "^3.19.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmmirror.com/@babel/preset-modules/download/@babel/preset-modules-0.1.5.tgz?cache=0&sync_timestamp=1635094707880&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.5.tgz", - "integrity": "sha1-75Odbn8miCfhhBY43G/5VRXhFdk=", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/preset-react/download/@babel/preset-react-7.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-react%2Fdownload%2F%40babel%2Fpreset-react-7.16.0.tgz", - "integrity": "sha1-9x0+jf9SGEeAEd8Df61SZg7m2Co=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-react-jsx-development": "^7.16.0", - "@babel/plugin-transform-react-pure-annotations": "^7.16.0" - } - }, - "@babel/preset-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/preset-typescript/download/@babel/preset-typescript-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-typescript%2Fdownload%2F%40babel%2Fpreset-typescript-7.12.1.tgz", - "integrity": "sha1-hkgLSDu5f3UDbohk/kBMx4LMMRs=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.12.1" - } - }, - "@babel/runtime": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.3.tgz?cache=0&sync_timestamp=1636495059115&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.16.3.tgz", - "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/download/@babel/runtime-corejs3-7.16.3.tgz?cache=0&sync_timestamp=1636495062185&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.16.3.tgz", - "integrity": "sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==", - "requires": { - "core-js-pure": "^3.19.0", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.0.tgz", - "integrity": "sha1-0Wo16/TNdOICCDNW+rId2JNj3dY=", - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmmirror.com/@babel/traverse/download/@babel/traverse-7.16.3.tgz?cache=0&sync_timestamp=1636495060124&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/types/download/@babel/types-7.16.0.tgz?cache=0&sync_timestamp=1635560939610&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.16.0.tgz", - "integrity": "sha1-2zsxOAT5aq3Qt3bEgj4SetZyibo=", - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/@bcoe/v8-coverage/download/@bcoe/v8-coverage-0.2.3.tgz", - "integrity": "sha1-daLotRy3WKdVPWgEpZMteqznXDk=" - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/@cnakazawa/watch/download/@cnakazawa/watch-1.0.4.tgz", - "integrity": "sha1-+GSuhQBND8q29QvpFBxNo2jRZWo=", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@csstools/convert-colors": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz", - "integrity": "sha1-rUldxBsS511YjG24uYNPCPoTHrc=" - }, - "@csstools/normalize.css": { - "version": "10.1.0", - "resolved": "https://registry.nlark.com/@csstools/normalize.css/download/@csstools/normalize.css-10.1.0.tgz", - "integrity": "sha1-8JULuhiBlRLUL3GX5WxRiqSRzxg=" - }, - "@ctrl/tinycolor": { - "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz", - "integrity": "sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8=" - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-0.4.3.tgz?cache=0&sync_timestamp=1636146813175&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40eslint%2Feslintrc%2Fdownload%2F%40eslint%2Feslintrc-0.4.3.tgz", - "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz", - "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=", - "requires": { - "type-fest": "^0.20.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=" - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=" - } - } - }, - "@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/@gar/promisify/download/@gar/promisify-1.1.2.tgz?cache=0&sync_timestamp=1629999882087&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40gar%2Fpromisify%2Fdownload%2F%40gar%2Fpromisify-1.1.2.tgz", - "integrity": "sha1-MKqCXxHUOGcdWFvUTn/VZFNfwhA=" - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/@hapi/address/download/@hapi/address-2.1.4.tgz", - "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=" - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz", - "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmmirror.com/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1632776440309&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", - "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmmirror.com/@hapi/joi/download/@hapi/joi-15.1.1.tgz", - "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.nlark.com/@hapi/topo/download/@hapi/topo-3.1.6.tgz", - "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.5.0.tgz?cache=0&sync_timestamp=1635880373051&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40humanwhocodes%2Fconfig-array%2Fdownload%2F%40humanwhocodes%2Fconfig-array-0.5.0.tgz", - "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz?cache=0&sync_timestamp=1635879707386&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40humanwhocodes%2Fobject-schema%2Fdownload%2F%40humanwhocodes%2Fobject-schema-1.2.1.tgz", - "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=" - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/@istanbuljs/load-nyc-config/download/@istanbuljs/load-nyc-config-1.1.0.tgz", - "integrity": "sha1-/T2x1Z7PfPEh6AZQu4ZxL5tV7O0=", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.nlark.com/@istanbuljs/schema/download/@istanbuljs/schema-0.1.3.tgz", - "integrity": "sha1-5F44TkuOwWvOL9kDr3hFD2v37Jg=" - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/console/download/@jest/console-26.6.2.tgz?cache=0&sync_timestamp=1634626675835&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Fconsole%2Fdownload%2F%40jest%2Fconsole-26.6.2.tgz", - "integrity": "sha1-TgS8RkAUNYsDq0k3gF7jagrrmPI=", - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/@jest/core/download/@jest/core-26.6.3.tgz?cache=0&sync_timestamp=1634626715636&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Fcore%2Fdownload%2F%40jest%2Fcore-26.6.3.tgz", - "integrity": "sha1-djn8s4M9dIpGVq2lS94ZMFHkX60=", - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/environment/download/@jest/environment-26.6.2.tgz?cache=0&sync_timestamp=1634626739278&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Fenvironment%2Fdownload%2F%40jest%2Fenvironment-26.6.2.tgz", - "integrity": "sha1-ujZMxy4iHnnMjwqZVVv111d8+Sw=", - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/fake-timers/download/@jest/fake-timers-26.6.2.tgz", - "integrity": "sha1-RZwym89wzuSvTX4/PmeEgSNTWq0=", - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/globals/download/@jest/globals-26.6.2.tgz?cache=0&sync_timestamp=1634626717616&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Fglobals%2Fdownload%2F%40jest%2Fglobals-26.6.2.tgz", - "integrity": "sha1-W2E7eKGqJlWukI66Y4zJaiDfcgo=", - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/expect/download/expect-26.6.2.tgz?cache=0&sync_timestamp=1634626714215&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexpect%2Fdownload%2Fexpect-26.6.2.tgz", - "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - } - } - }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/reporters/download/@jest/reporters-26.6.2.tgz?cache=0&sync_timestamp=1634626712558&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Freporters%2Fdownload%2F%40jest%2Freporters-26.6.2.tgz", - "integrity": "sha1-H1GLmWN6Xxgwe9Ps+SdfaIKmZ/Y=", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/download/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha1-hzxv/4l0UBGCIndGlqPyiQLXfB0=", - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", - "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/@jest/source-map/download/@jest/source-map-26.6.2.tgz", - "integrity": "sha1-Ka9eHi4yTK/MyTbyGDCfVKtp1TU=", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/test-result/download/@jest/test-result-26.6.2.tgz?cache=0&sync_timestamp=1634626707209&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Ftest-result%2Fdownload%2F%40jest%2Ftest-result-26.6.2.tgz", - "integrity": "sha1-VdpYti3xNFdsyVR276X3lJ4/Xxg=", - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/download/@jest/test-sequencer-26.6.3.tgz?cache=0&sync_timestamp=1634626716094&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Ftest-sequencer%2Fdownload%2F%40jest%2Ftest-sequencer-26.6.3.tgz", - "integrity": "sha1-mOikUQCGOIbQdCBej/3Fp+tYKxc=", - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/transform/download/@jest/transform-26.6.2.tgz", - "integrity": "sha1-WsV8X6GtF7Kq6D5z5FgTiU3PLks=", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/@jest/types/download/@jest/types-26.6.2.tgz?cache=0&sync_timestamp=1633701113709&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40jest%2Ftypes%2Fdownload%2F%40jest%2Ftypes-26.6.2.tgz", - "integrity": "sha1-vvWlMgMOHYii9abZM/hOlyJu1I4=", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622792706054&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz", - "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz?cache=0&sync_timestamp=1622792705142&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.5.tgz", - "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz", - "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/@npmcli/fs/download/@npmcli/fs-1.0.0.tgz", - "integrity": "sha1-WJYSz606bqD+r8uQHSnGP9UtsJ8=", - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@npmcli/move-file/download/@npmcli/move-file-1.1.2.tgz", - "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" - } - } - }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.4.3", - "resolved": "https://registry.npmmirror.com/@pmmmwh/react-refresh-webpack-plugin/download/@pmmmwh/react-refresh-webpack-plugin-0.4.3.tgz", - "integrity": "sha1-HuxGBZbSAMAja/GVsHil0d+Jt2Y=", - "requires": { - "ansi-html": "^0.0.7", - "error-stack-parser": "^2.0.6", - "html-entities": "^1.2.1", - "native-url": "^0.2.6", - "schema-utils": "^2.6.5", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=" - } - } - }, - "@probe.gl/stats": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/@probe.gl/stats/download/@probe.gl/stats-3.4.1.tgz", - "integrity": "sha1-W8DsX4euMZXCKpg2PpwVAx+/6Og=", - "requires": { - "@babel/runtime": "^7.0.0" - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npm.taobao.org/@sinonjs/commons/download/@sinonjs/commons-1.8.3.tgz?cache=0&sync_timestamp=1617868533174&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sinonjs%2Fcommons%2Fdownload%2F%40sinonjs%2Fcommons-1.8.3.tgz", - "integrity": "sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=", - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/download/@sinonjs/fake-timers-6.0.1.tgz", - "integrity": "sha1-KTZ0/MsyYqx4LHqt/eyoaxDHXEA=", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@surma/rollup-plugin-off-main-thread": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/@surma/rollup-plugin-off-main-thread/download/@surma/rollup-plugin-off-main-thread-1.4.2.tgz?cache=0&sync_timestamp=1636350439834&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.2.tgz", - "integrity": "sha1-5nhravV5n4L3qzqC5T9hgtK5Glg=", - "requires": { - "ejs": "^2.6.1", - "magic-string": "^0.25.0" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/download/@svgr/babel-plugin-add-jsx-attribute-5.4.0.tgz?cache=0&sync_timestamp=1635739228177&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-add-jsx-attribute%2Fdownload%2F%40svgr%2Fbabel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha1-ge9hlHuyaOudUFI0RvnGOPs1WQY=" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/download/@svgr/babel-plugin-remove-jsx-attribute-5.4.0.tgz?cache=0&sync_timestamp=1635739228599&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-remove-jsx-attribute%2Fdownload%2F%40svgr%2Fbabel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha1-ayx3DJXIdGVP1eHV70dbeKCpYu8=" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/download/@svgr/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz?cache=0&sync_timestamp=1635739229005&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-remove-jsx-empty-expression%2Fdownload%2F%40svgr%2Fbabel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha1-JWIaiRXtetcNps6j0KbbwuqTPv0=" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/download/@svgr/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz?cache=0&sync_timestamp=1635739229427&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-replace-jsx-attribute-value%2Fdownload%2F%40svgr%2Fbabel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha1-CyIfxX+fzRDpH+IZ4s0N0DFFqJc=" - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/download/@svgr/babel-plugin-svg-dynamic-title-5.4.0.tgz?cache=0&sync_timestamp=1635739229786&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-svg-dynamic-title%2Fdownload%2F%40svgr%2Fbabel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha1-E5tUbdDDGGtuXbT+/CbLC66nKdc=" - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/download/@svgr/babel-plugin-svg-em-dimensions-5.4.0.tgz?cache=0&sync_timestamp=1636792908042&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-svg-em-dimensions%2Fdownload%2F%40svgr%2Fbabel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha1-ZUP2lSZjKhM85cq6uWXe6uoiNKA=" - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/download/@svgr/babel-plugin-transform-react-native-svg-5.4.0.tgz?cache=0&sync_timestamp=1635739231099&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-transform-react-native-svg%2Fdownload%2F%40svgr%2Fbabel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha1-AL+aenPxytOUjNqx+N+3dHUPjIA=" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/download/@svgr/babel-plugin-transform-svg-component-5.5.0.tgz?cache=0&sync_timestamp=1636706763615&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-plugin-transform-svg-component%2Fdownload%2F%40svgr%2Fbabel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha1-WDpeKhk+IU2i86/rC56NMlASa0o=" - }, - "@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-preset/download/@svgr/babel-preset-5.5.0.tgz?cache=0&sync_timestamp=1636792908501&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fbabel-preset%2Fdownload%2F%40svgr%2Fbabel-preset-5.5.0.tgz", - "integrity": "sha1-ivVPPgqK3XseKw/NWogsVTk98yc=", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - } - }, - "@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/core/download/@svgr/core-5.5.0.tgz?cache=0&sync_timestamp=1636792908851&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fcore%2Fdownload%2F%40svgr%2Fcore-5.5.0.tgz", - "integrity": "sha1-gugmuHFdcQgxIP6PJJLsfXh0pXk=", - "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/download/@svgr/hast-util-to-babel-ast-5.5.0.tgz?cache=0&sync_timestamp=1636706763213&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fhast-util-to-babel-ast%2Fdownload%2F%40svgr%2Fhast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha1-XuUqnCUz9z5j+PIrd5+TzUMqVGE=", - "requires": { - "@babel/types": "^7.12.6" - } - }, - "@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/plugin-jsx/download/@svgr/plugin-jsx-5.5.0.tgz?cache=0&sync_timestamp=1636706764147&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fplugin-jsx%2Fdownload%2F%40svgr%2Fplugin-jsx-5.5.0.tgz", - "integrity": "sha1-GqjNeYodtxc6wENGbXtSI2s2kAA=", - "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - } - }, - "@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/plugin-svgo/download/@svgr/plugin-svgo-5.5.0.tgz?cache=0&sync_timestamp=1635739226645&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fplugin-svgo%2Fdownload%2F%40svgr%2Fplugin-svgo-5.5.0.tgz", - "integrity": "sha1-AtpV2FMgVJMk4gHHsuU79DH8wkY=", - "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/webpack/download/@svgr/webpack-5.5.0.tgz?cache=0&sync_timestamp=1636792917429&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40svgr%2Fwebpack%2Fdownload%2F%40svgr%2Fwebpack-5.5.0.tgz", - "integrity": "sha1-quhY7lefX6jObDFm71bGobOBtkA=", - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@tootallnate/once/download/@tootallnate/once-1.1.2.tgz?cache=0&sync_timestamp=1632734046275&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40tootallnate%2Fonce%2Fdownload%2F%40tootallnate%2Fonce-1.1.2.tgz", - "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=" - }, - "@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.nlark.com/@types/babel__core/download/@types/babel__core-7.1.16.tgz?cache=0&sync_timestamp=1630960457319&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel__core%2Fdownload%2F%40types%2Fbabel__core-7.1.16.tgz", - "integrity": "sha1-vBLHS31l6C0ph2tdC69cYlrFhwI=", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.nlark.com/@types/babel__generator/download/@types/babel__generator-7.6.3.tgz?cache=0&sync_timestamp=1629706734012&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel__generator%2Fdownload%2F%40types%2Fbabel__generator-7.6.3.tgz", - "integrity": "sha1-9Fa0ss55E392iqEw0kI9LwzPq6U=", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.nlark.com/@types/babel__template/download/@types/babel__template-7.4.1.tgz?cache=0&sync_timestamp=1629706734879&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel__template%2Fdownload%2F%40types%2Fbabel__template-7.4.1.tgz", - "integrity": "sha1-PRpI/Z1sDt/Vby/1eNrtSPNsiWk=", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.nlark.com/@types/babel__traverse/download/@types/babel__traverse-7.14.2.tgz?cache=0&sync_timestamp=1629706736770&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel__traverse%2Fdownload%2F%40types%2Fbabel__traverse-7.14.2.tgz", - "integrity": "sha1-/81HC7s/i/MEgWePtVAieMqDOkM=", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/d3-timer": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/@types/d3-timer/download/@types/d3-timer-2.0.1.tgz?cache=0&sync_timestamp=1629707133527&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fd3-timer%2Fdownload%2F%40types%2Fd3-timer-2.0.1.tgz", - "integrity": "sha1-/7ZiDSkGJPNyaqNiwMiktEyNcgA=" - }, - "@types/eslint": { - "version": "7.28.2", - "resolved": "https://registry.npmmirror.com/@types/eslint/download/@types/eslint-7.28.2.tgz?cache=0&sync_timestamp=1635092491220&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Feslint%2Fdownload%2F%40types%2Feslint-7.28.2.tgz", - "integrity": "sha1-D/KUfN0wWJfFLVNyKU6MdvNR22g=", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.nlark.com/@types/estree/download/@types/estree-0.0.50.tgz", - "integrity": "sha1-Hgyqk2TT/M0pMcPtlv2+ql1MyoM=" - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/@types/glob/download/@types/glob-7.2.0.tgz", - "integrity": "sha1-vBtb86qS8lvV3TnzXFc2G9zlsus=", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.nlark.com/@types/graceful-fs/download/@types/graceful-fs-4.1.5.tgz?cache=0&sync_timestamp=1629708271019&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fgraceful-fs%2Fdownload%2F%40types%2Fgraceful-fs-4.1.5.tgz", - "integrity": "sha1-If+6DZjaQ1DbZIkfkqnl2zzbThU=", - "requires": { - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://registry.nlark.com/@types/html-minifier-terser/download/@types/html-minifier-terser-5.1.2.tgz?cache=0&sync_timestamp=1631043806613&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.2.tgz", - "integrity": "sha1-aTsxatMj6pfu1rOO0aPMArFnK1c=" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/@types/istanbul-lib-coverage/download/@types/istanbul-lib-coverage-2.0.3.tgz?cache=0&sync_timestamp=1629708193536&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fistanbul-lib-coverage%2Fdownload%2F%40types%2Fistanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha1-S6jdtyAiH0MuRDvV+RF/0iz9R2I=" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/@types/istanbul-lib-report/download/@types/istanbul-lib-report-3.0.0.tgz?cache=0&sync_timestamp=1629708191564&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fistanbul-lib-report%2Fdownload%2F%40types%2Fistanbul-lib-report-3.0.0.tgz", - "integrity": "sha1-wUwk8Y6oGQwRjudWK3/5mjZVJoY=", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/@types/istanbul-reports/download/@types/istanbul-reports-3.0.1.tgz?cache=0&sync_timestamp=1629708071482&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-3.0.1.tgz", - "integrity": "sha1-kVP+mLuivVZaY63ZQ21vDX+EaP8=", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1629708189890&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz", - "integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0=" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.5.tgz?cache=0&sync_timestamp=1629708375365&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.5.tgz", - "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=" - }, - "@types/node": { - "version": "16.11.7", - "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-16.11.7.tgz?cache=0&sync_timestamp=1636407290325&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-16.11.7.tgz", - "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==" - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.nlark.com/@types/normalize-package-data/download/@types/normalize-package-data-2.4.1.tgz?cache=0&sync_timestamp=1629708441689&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.1.tgz", - "integrity": "sha1-0zV0eaD9/dWQf+Z+F+CoXJBuEwE=" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/@types/parse-json/download/@types/parse-json-4.0.0.tgz", - "integrity": "sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=" - }, - "@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/@types/prettier/download/@types/prettier-2.4.2.tgz?cache=0&sync_timestamp=1636770787611&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fprettier%2Fdownload%2F%40types%2Fprettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" - }, - "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.nlark.com/@types/prop-types/download/@types/prop-types-15.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.4.tgz", - "integrity": "sha1-/PcgXCXf95Xuea8eMNosl5CAjxE=", - "peer": true - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.nlark.com/@types/q/download/@types/q-1.5.5.tgz", - "integrity": "sha1-daKo59irSyMEFFBdkjNdHctTpt8=" - }, - "@types/react": { - "version": "16.14.20", - "resolved": "https://registry.npmmirror.com/@types/react/download/@types/react-16.14.20.tgz", - "integrity": "sha1-/26TKtcdksJ1kOSoZnx6U6fQuq0=", - "peer": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.nlark.com/@types/resolve/download/@types/resolve-0.0.8.tgz?cache=0&sync_timestamp=1629709391127&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz", - "integrity": "sha1-8mB00jjgJlnjI84aE9BB7uKA4ZQ=", - "requires": { - "@types/node": "*" - } - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.nlark.com/@types/scheduler/download/@types/scheduler-0.16.2.tgz?cache=0&sync_timestamp=1629709260625&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fscheduler%2Fdownload%2F%40types%2Fscheduler-0.16.2.tgz", - "integrity": "sha1-GmL4lSVyPd4kuhsBsJK/XfitTTk=", - "peer": true - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.nlark.com/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", - "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=" - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/@types/stack-utils/download/@types/stack-utils-2.0.1.tgz?cache=0&sync_timestamp=1629709405935&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fstack-utils%2Fdownload%2F%40types%2Fstack-utils-2.0.1.tgz", - "integrity": "sha1-IPGClPeX8iCbX2XI47XI6CYdEnw=" - }, - "@types/tapable": { - "version": "1.0.8", - "resolved": "https://registry.nlark.com/@types/tapable/download/@types/tapable-1.0.8.tgz?cache=0&sync_timestamp=1629709376833&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.8.tgz", - "integrity": "sha1-uUpDkchWZse3Mpn9OtedT6pDUxA=" - }, - "@types/uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.nlark.com/@types/uglify-js/download/@types/uglify-js-3.13.1.tgz", - "integrity": "sha1-XoienoHpQkXHW2RQYA4cXqKHiuo=", - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "@types/webpack": { - "version": "4.41.31", - "resolved": "https://registry.nlark.com/@types/webpack/download/@types/webpack-4.41.31.tgz?cache=0&sync_timestamp=1631392314345&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.31.tgz", - "integrity": "sha1-w18lKjVZ3fnIXA2LC0IBkCXlgao=", - "requires": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "@types/webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/@types/webpack-sources/download/@types/webpack-sources-3.2.0.tgz?cache=0&sync_timestamp=1629709718286&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-3.2.0.tgz", - "integrity": "sha1-FtdZuglsKJA0smVT0t8b9FJI04s=", - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=" - } - } - }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmmirror.com/@types/yargs/download/@types/yargs-15.0.14.tgz?cache=0&sync_timestamp=1635745526079&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-15.0.14.tgz", - "integrity": "sha1-Jtgh3biecEkhYLZtEKDrbfj2+wY=", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.nlark.com/@types/yargs-parser/download/@types/yargs-parser-20.2.1.tgz?cache=0&sync_timestamp=1629709931030&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fyargs-parser%2Fdownload%2F%40types%2Fyargs-parser-20.2.1.tgz", - "integrity": "sha1-O5ziSJkZ2eT+pDm3aRarw0st8Sk=" - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-4.33.0.tgz?cache=0&sync_timestamp=1636927713971&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Feslint-plugin%2Fdownload%2F%40typescript-eslint%2Feslint-plugin-4.33.0.tgz", - "integrity": "sha1-wk3HyAacdwa8QNmfb6h+3LIAUnY=", - "requires": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.33.0.tgz?cache=0&sync_timestamp=1636927348659&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-4.33.0.tgz", - "integrity": "sha1-byp4akIJ+iIimJ6TgLUzGygQ9/0=", - "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-4.33.0.tgz?cache=0&sync_timestamp=1636927567728&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fparser%2Fdownload%2F%40typescript-eslint%2Fparser-4.33.0.tgz", - "integrity": "sha1-3+eXVw2WlOVgUo0Y7srYbIx0SJk=", - "requires": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.33.0.tgz?cache=0&sync_timestamp=1636927925016&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fscope-manager%2Fdownload%2F%40typescript-eslint%2Fscope-manager-4.33.0.tgz", - "integrity": "sha1-045JKA2YPody4pEhz4xukiHygKM=", - "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" - } - }, - "@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.33.0.tgz?cache=0&sync_timestamp=1636927435113&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypes%2Fdownload%2F%40typescript-eslint%2Ftypes-4.33.0.tgz", - "integrity": "sha1-oeWQNqO1OuhDDO6/KpGdx/mvbXI=" - }, - "@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.33.0.tgz?cache=0&sync_timestamp=1636928494244&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypescript-estree%2Fdownload%2F%40typescript-eslint%2Ftypescript-estree-4.33.0.tgz", - "integrity": "sha1-DftRwpCPaMXAjYKu/q8WahfCRgk=", - "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.33.0.tgz?cache=0&sync_timestamp=1636927358040&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fvisitor-keys%2Fdownload%2F%40typescript-eslint%2Fvisitor-keys-4.33.0.tgz", - "integrity": "sha1-KiL3ekFgQom3oYZYbp7EjKku8d0=", - "requires": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&sync_timestamp=1625473368618&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz", - "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz?cache=0&sync_timestamp=1625473460936&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz", - "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1625473462686&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz", - "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz?cache=0&sync_timestamp=1625473420790&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz", - "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1625473415428&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz", - "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", - "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz", - "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&sync_timestamp=1625473454591&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz", - "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&sync_timestamp=1625473456730&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz", - "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz?cache=0&sync_timestamp=1625473454967&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz", - "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz", - "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz", - "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz", - "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&sync_timestamp=1625473358573&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz", - "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz", - "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", - "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webgpu/glslang": { - "version": "0.0.15", - "resolved": "https://registry.npm.taobao.org/@webgpu/glslang/download/@webgpu/glslang-0.0.15.tgz", - "integrity": "sha1-9cyvYBUkHmF19LkJBrBT+ISD0fI=" - }, - "@webgpu/types": { - "version": "0.0.31", - "resolved": "https://registry.npmmirror.com/@webgpu/types/download/@webgpu/types-0.0.31.tgz", - "integrity": "sha1-wF7G5gAkvxg28xI27NdnepaaKiw=" - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.nlark.com/@xtuc/long/download/@xtuc/long-4.2.2.tgz", - "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=" - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.5.tgz", - "integrity": "sha1-wLZ4+zLWD8EhnHhNaoJv44Wut5o=" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.nlark.com/accepts/download/accepts-1.3.7.tgz", - "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1630916591807&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-6.0.0.tgz", - "integrity": "sha1-Rs3Tnw+P8IqHZhm1X1rIptx3C0U=", - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz?cache=0&sync_timestamp=1625793240297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.3.2.tgz", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", - "requires": {} - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1630916588767&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz", - "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=" - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz", - "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=" - }, - "adjust-sourcemap-loader": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/adjust-sourcemap-loader/download/adjust-sourcemap-loader-3.0.0.tgz", - "integrity": "sha1-WuEvtbexxYXoC7taY+wWOhpF5h4=", - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.nlark.com/agent-base/download/agent-base-6.0.2.tgz", - "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1636828403489&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/ajv-errors/download/ajv-errors-1.0.1.tgz", - "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", - "requires": {} - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882351228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", - "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", - "requires": {} - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz", - "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=" - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.nlark.com/ansi-escapes/download/ansi-escapes-4.3.2.tgz?cache=0&sync_timestamp=1618847144938&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-escapes%2Fdownload%2Fansi-escapes-4.3.2.tgz", - "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.nlark.com/ansi-html/download/ansi-html-0.0.7.tgz?cache=0&sync_timestamp=1618846919541&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - }, - "antd": { - "version": "4.16.13", - "resolved": "https://registry.npmmirror.com/antd/download/antd-4.16.13.tgz", - "integrity": "sha1-6bm0pZDbKHR6rhyrmJgWSaNYgK8=", - "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons": "^4.6.3", - "@ant-design/react-slick": "~0.28.1", - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "classnames": "^2.2.6", - "copy-to-clipboard": "^3.2.0", - "lodash": "^4.17.21", - "moment": "^2.25.3", - "rc-cascader": "~1.4.0", - "rc-checkbox": "~2.3.0", - "rc-collapse": "~3.1.0", - "rc-dialog": "~8.6.0", - "rc-drawer": "~4.3.0", - "rc-dropdown": "~3.2.0", - "rc-field-form": "~1.20.0", - "rc-image": "~5.2.5", - "rc-input-number": "~7.1.0", - "rc-mentions": "~1.6.1", - "rc-menu": "~9.0.12", - "rc-motion": "^2.4.0", - "rc-notification": "~4.5.7", - "rc-pagination": "~3.1.9", - "rc-picker": "~2.5.10", - "rc-progress": "~3.1.0", - "rc-rate": "~2.9.0", - "rc-resize-observer": "^1.0.0", - "rc-select": "~12.1.6", - "rc-slider": "~9.7.1", - "rc-steps": "~4.1.0", - "rc-switch": "~3.2.0", - "rc-table": "~7.15.1", - "rc-tabs": "~11.10.0", - "rc-textarea": "~0.3.0", - "rc-tooltip": "~5.1.1", - "rc-tree": "~4.2.1", - "rc-tree-select": "~4.3.0", - "rc-trigger": "^5.2.10", - "rc-upload": "~4.3.0", - "rc-util": "^5.13.1", - "scroll-into-view-if-needed": "^2.2.25" - }, - "dependencies": { - "@ant-design/react-slick": { - "version": "0.28.4", - "resolved": "https://registry.nlark.com/@ant-design/react-slick/download/@ant-design/react-slick-0.28.4.tgz", - "integrity": "sha1-iylrh618euh38qUnuBt+69ndKak=", - "requires": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", - "json2mq": "^0.2.0", - "lodash": "^4.17.21", - "resize-observer-polyfill": "^1.5.0" - } - }, - "rc-cascader": { - "version": "1.4.3", - "resolved": "https://registry.npmmirror.com/rc-cascader/download/rc-cascader-1.4.3.tgz?cache=0&sync_timestamp=1636631133956&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-cascader%2Fdownload%2Frc-cascader-1.4.3.tgz", - "integrity": "sha1-2RsNz4FXtg6+nsPli02wVNUplGQ=", - "requires": { - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.0.1", - "warning": "^4.0.1" - } - }, - "rc-checkbox": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/rc-checkbox/download/rc-checkbox-2.3.2.tgz", - "integrity": "sha1-+Rs2eMftsrqoEhyUg8Zk+m8K78E=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" - } - }, - "rc-collapse": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/rc-collapse/download/rc-collapse-3.1.2.tgz?cache=0&sync_timestamp=1630552211398&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-collapse%2Fdownload%2Frc-collapse-3.1.2.tgz", - "integrity": "sha1-dgKKgRuEXQPZRgzMQJx+qK0J2xQ=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.3.4", - "rc-util": "^5.2.1", - "shallowequal": "^1.1.0" - } - }, - "rc-dialog": { - "version": "8.6.0", - "resolved": "https://registry.nlark.com/rc-dialog/download/rc-dialog-8.6.0.tgz?cache=0&sync_timestamp=1627271954008&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-dialog%2Fdownload%2Frc-dialog-8.6.0.tgz", - "integrity": "sha1-OyKNrAhd5e7YxiN/MRYhBGh0Quc=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-motion": "^2.3.0", - "rc-util": "^5.6.1" - } - }, - "rc-drawer": { - "version": "4.3.1", - "resolved": "https://registry.nlark.com/rc-drawer/download/rc-drawer-4.3.1.tgz?cache=0&sync_timestamp=1630560057707&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-drawer%2Fdownload%2Frc-drawer-4.3.1.tgz", - "integrity": "sha1-NWMzp68Bt3er1oXJbCzmLvtE8/M=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.7.0" - } - }, - "rc-dropdown": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/rc-dropdown/download/rc-dropdown-3.2.0.tgz", - "integrity": "sha1-2mwq2kA4QrruOp6Qmgsakbo+EJA=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-trigger": "^5.0.4" - } - }, - "rc-field-form": { - "version": "1.20.1", - "resolved": "https://registry.npmmirror.com/rc-field-form/download/rc-field-form-1.20.1.tgz", - "integrity": "sha1-0cUYiBB88HW0JwS3tXW++Ew1kpE=", - "requires": { - "@babel/runtime": "^7.8.4", - "async-validator": "^3.0.3", - "rc-util": "^5.8.0" - } - }, - "rc-image": { - "version": "5.2.5", - "resolved": "https://registry.nlark.com/rc-image/download/rc-image-5.2.5.tgz?cache=0&sync_timestamp=1627889032895&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-image%2Fdownload%2Frc-image-5.2.5.tgz", - "integrity": "sha1-ROb/yEJiaCeWDnq3LhwNbzqM5EA=", - "requires": { - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-dialog": "~8.6.0", - "rc-util": "^5.0.6" - } - }, - "rc-input-number": { - "version": "7.1.4", - "resolved": "https://registry.npmmirror.com/rc-input-number/download/rc-input-number-7.1.4.tgz", - "integrity": "sha1-nXQQyR/43GOE0CM8IN8niYKYn5o=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.9.8" - } - }, - "rc-mentions": { - "version": "1.6.1", - "resolved": "https://registry.nlark.com/rc-mentions/download/rc-mentions-1.6.1.tgz", - "integrity": "sha1-RgNQJ9ZKoz74QLoPvUEYceNGF64=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-menu": "^9.0.0", - "rc-textarea": "^0.3.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.0.1" - } - }, - "rc-menu": { - "version": "9.0.14", - "resolved": "https://registry.npmmirror.com/rc-menu/download/rc-menu-9.0.14.tgz?cache=0&sync_timestamp=1634109365033&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-menu%2Fdownload%2Frc-menu-9.0.14.tgz", - "integrity": "sha1-KJvaSi9sXrsySOLjBdUs8Mc8udU=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.4.3", - "rc-overflow": "^1.2.0", - "rc-trigger": "^5.1.2", - "rc-util": "^5.12.0", - "shallowequal": "^1.1.0" - }, - "dependencies": { - "rc-overflow": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/rc-overflow/download/rc-overflow-1.2.2.tgz?cache=0&sync_timestamp=1622805758606&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-overflow%2Fdownload%2Frc-overflow-1.2.2.tgz", - "integrity": "sha1-lbAiIBbAzb3A24X1acJi53BqXyI=", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.1" - } - } - } - }, - "rc-motion": { - "version": "2.4.4", - "resolved": "https://registry.nlark.com/rc-motion/download/rc-motion-2.4.4.tgz", - "integrity": "sha1-6ZXV+iT8kwZcJPcUhXzyZ31lW7A=", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.2.1" - } - }, - "rc-notification": { - "version": "4.5.7", - "resolved": "https://registry.nlark.com/rc-notification/download/rc-notification-4.5.7.tgz?cache=0&sync_timestamp=1622341102130&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-notification%2Fdownload%2Frc-notification-4.5.7.tgz", - "integrity": "sha1-Jl5uagwaD6xj1qvU2DLrj/MVIvE=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.2.0", - "rc-util": "^5.0.1" - } - }, - "rc-pagination": { - "version": "3.1.11", - "resolved": "https://registry.npmmirror.com/rc-pagination/download/rc-pagination-3.1.11.tgz?cache=0&sync_timestamp=1636949339640&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-pagination%2Fdownload%2Frc-pagination-3.1.11.tgz", - "integrity": "sha512-i0pUAVnhkpkvi2gunvHzSa97gj3m/m/pEC8K0mq9RqXnd3LrPipgViaca0WZtetfsew6lpV9ndnD4JGU208U1w==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" - } - }, - "rc-picker": { - "version": "2.5.19", - "resolved": "https://registry.npmmirror.com/rc-picker/download/rc-picker-2.5.19.tgz", - "integrity": "sha1-c9B1RvrDmS8L+r8niWVKyto55G8=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "date-fns": "2.x", - "dayjs": "1.x", - "moment": "^2.24.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.4.0", - "shallowequal": "^1.1.0" - } - }, - "rc-progress": { - "version": "3.1.4", - "resolved": "https://registry.nlark.com/rc-progress/download/rc-progress-3.1.4.tgz", - "integrity": "sha1-ZgQND659jO0rOFiDeOzLKGS61hU=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6" - } - }, - "rc-rate": { - "version": "2.9.1", - "resolved": "https://registry.npm.taobao.org/rc-rate/download/rc-rate-2.9.1.tgz", - "integrity": "sha1-5Dy5XE65CiweCxbsZhTYxDUwpzE=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.0.1" - } - }, - "rc-resize-observer": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/rc-resize-observer/download/rc-resize-observer-1.0.1.tgz", - "integrity": "sha1-zNCYZUP/G/SfilgeisS7cU7STc0=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-util": "^5.0.0", - "resize-observer-polyfill": "^1.5.1" - } - }, - "rc-select": { - "version": "12.1.13", - "resolved": "https://registry.npmmirror.com/rc-select/download/rc-select-12.1.13.tgz", - "integrity": "sha1-wzVgzLkznTBpW1JFj1Xvw1rzUnM=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.0.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.9.8", - "rc-virtual-list": "^3.2.0" - }, - "dependencies": { - "rc-overflow": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/rc-overflow/download/rc-overflow-1.2.2.tgz?cache=0&sync_timestamp=1622805758606&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-overflow%2Fdownload%2Frc-overflow-1.2.2.tgz", - "integrity": "sha1-lbAiIBbAzb3A24X1acJi53BqXyI=", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.1" - } - }, - "rc-virtual-list": { - "version": "3.4.2", - "resolved": "https://registry.npmmirror.com/rc-virtual-list/download/rc-virtual-list-3.4.2.tgz", - "integrity": "sha1-EHgyeqcjC15FbWee0s6Z88A269E=", - "requires": { - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.0.7" - } - } - } - }, - "rc-slider": { - "version": "9.7.4", - "resolved": "https://registry.npmmirror.com/rc-slider/download/rc-slider-9.7.4.tgz", - "integrity": "sha1-QwyGByO/ZEXr9TUXtVBBei8l7tE=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-tooltip": "^5.0.1", - "rc-util": "^5.0.0", - "shallowequal": "^1.1.0" - } - }, - "rc-steps": { - "version": "4.1.4", - "resolved": "https://registry.npmmirror.com/rc-steps/download/rc-steps-4.1.4.tgz", - "integrity": "sha1-C6gtsgLVnKUtBpPcmIDdFFsZ3CM=", - "requires": { - "@babel/runtime": "^7.10.2", - "classnames": "^2.2.3", - "rc-util": "^5.0.1" - } - }, - "rc-switch": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/rc-switch/download/rc-switch-3.2.2.tgz", - "integrity": "sha1-0AH3fxJmTVJZW09vtCXdnmb7qOg=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-util": "^5.0.1" - } - }, - "rc-table": { - "version": "7.15.2", - "resolved": "https://registry.npmmirror.com/rc-table/download/rc-table-7.15.2.tgz?cache=0&sync_timestamp=1636025076556&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-table%2Fdownload%2Frc-table-7.15.2.tgz", - "integrity": "sha1-9qtzss+xx288+WgshVVhQjxrWyI=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.13.0", - "shallowequal": "^1.1.0" - } - }, - "rc-tabs": { - "version": "11.10.3", - "resolved": "https://registry.npmmirror.com/rc-tabs/download/rc-tabs-11.10.3.tgz?cache=0&sync_timestamp=1636604064520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-tabs%2Fdownload%2Frc-tabs-11.10.3.tgz", - "integrity": "sha512-rPxsci+76/nnJowNOBO3LTi4eL6trG49cR9yPc4XbuyHXhCHUujN5F4+jFl7trISy+yVN6gCZ/wiTtVnkcR/UA==", - "requires": { - "@babel/runtime": "^7.11.2", - "classnames": "2.x", - "rc-dropdown": "^3.2.0", - "rc-menu": "^9.0.0", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.0" - } - }, - "rc-textarea": { - "version": "0.3.5", - "resolved": "https://registry.nlark.com/rc-textarea/download/rc-textarea-0.3.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-textarea%2Fdownload%2Frc-textarea-0.3.5.tgz", - "integrity": "sha1-B+1EXd25TlrmdkZ2kjpJvdrZsuw=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.7.0" - } - }, - "rc-tooltip": { - "version": "5.1.1", - "resolved": "https://registry.nlark.com/rc-tooltip/download/rc-tooltip-5.1.1.tgz?cache=0&sync_timestamp=1620377593371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-tooltip%2Fdownload%2Frc-tooltip-5.1.1.tgz", - "integrity": "sha1-lBeO0WLQJSvEmTtyX13CrA/M8VQ=", - "requires": { - "@babel/runtime": "^7.11.2", - "rc-trigger": "^5.0.0" - } - }, - "rc-tree": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/rc-tree/download/rc-tree-4.2.2.tgz?cache=0&sync_timestamp=1635165380239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-tree%2Fdownload%2Frc-tree-4.2.2.tgz", - "integrity": "sha1-RCkYfLv77L6YlxSmB+Peizq3dj8=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.0.0", - "rc-virtual-list": "^3.0.1" - }, - "dependencies": { - "rc-virtual-list": { - "version": "3.4.2", - "resolved": "https://registry.npmmirror.com/rc-virtual-list/download/rc-virtual-list-3.4.2.tgz", - "integrity": "sha1-EHgyeqcjC15FbWee0s6Z88A269E=", - "requires": { - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.0.7" - } - } - } - }, - "rc-tree-select": { - "version": "4.3.3", - "resolved": "https://registry.npmmirror.com/rc-tree-select/download/rc-tree-select-4.3.3.tgz", - "integrity": "sha1-KOuk2KjcjA+bYdg85GWEKmkV7KQ=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-select": "^12.0.0", - "rc-tree": "^4.0.0", - "rc-util": "^5.0.5" - } - }, - "rc-trigger": { - "version": "5.2.10", - "resolved": "https://registry.nlark.com/rc-trigger/download/rc-trigger-5.2.10.tgz", - "integrity": "sha1-igBXqUCxuQJ+qjO+7IpuzYXM4rE=", - "requires": { - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-align": "^4.0.0", - "rc-motion": "^2.0.0", - "rc-util": "^5.5.0" - }, - "dependencies": { - "rc-align": { - "version": "4.0.11", - "resolved": "https://registry.nlark.com/rc-align/download/rc-align-4.0.11.tgz?cache=0&sync_timestamp=1628678366435&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-align%2Fdownload%2Frc-align-4.0.11.tgz", - "integrity": "sha1-gZjGLbJmvBuO8F5WwTJ1v3Jiil4=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "dom-align": "^1.7.0", - "lodash": "^4.17.21", - "rc-util": "^5.3.0", - "resize-observer-polyfill": "^1.5.1" - } - } - } - }, - "rc-upload": { - "version": "4.3.2", - "resolved": "https://registry.npmmirror.com/rc-upload/download/rc-upload-4.3.2.tgz?cache=0&sync_timestamp=1634707242092&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frc-upload%2Fdownload%2Frc-upload-4.3.2.tgz", - "integrity": "sha1-O1bIvfeyXqs1fmVFPgMrexDG88w=", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.2.0" - } - }, - "rc-util": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/rc-util/download/rc-util-5.15.0.tgz", - "integrity": "sha512-8RI8sjOCXD3FhD3dzQNBQetpGol6BBd3sHQ/8jSGk9NPT0CH3JGtBfPODnASyE7AdDpCFQMOmgcp9CBs3S/1hg==", - "requires": { - "@babel/runtime": "^7.12.5", - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" - } - } - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.nlark.com/argparse/download/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/aria-query/download/aria-query-4.2.2.tgz?cache=0&sync_timestamp=1633308188641&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faria-query%2Fdownload%2Faria-query-4.2.2.tgz", - "integrity": "sha1-DSymyazrVriXfp/tau1+FbvS+Ds=", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "arity-n": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/arity-n/download/arity-n-1.0.4.tgz", - "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/arr-flatten/download/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/arr-union/download/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.nlark.com/array-flatten/download/array-flatten-2.1.2.tgz", - "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=" - }, - "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/array-includes/download/array-includes-3.1.4.tgz?cache=0&sync_timestamp=1633411556939&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Farray-includes%2Fdownload%2Farray-includes-3.1.4.tgz", - "integrity": "sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz", - "integrity": "sha1-hzrAD+yDdJ8lWsjdCDgUtPYykZA=" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/array-union/download/array-union-2.1.0.tgz", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=" - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.nlark.com/array-unique/download/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/array.prototype.flat/download/array.prototype.flat-1.2.5.tgz", - "integrity": "sha1-B+CXXYS7x8SM0YedYJ5oJZjTPhM=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/download/array.prototype.flatmap-1.2.5.tgz?cache=0&sync_timestamp=1633120737303&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.5.tgz", - "integrity": "sha1-kI3ILYpAaTD984WY1R50EdGNREY=", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/arrify/download/arrify-2.0.1.tgz?cache=0&sync_timestamp=1619599497996&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farrify%2Fdownload%2Farrify-2.0.1.tgz", - "integrity": "sha1-yWVekzHgq81YjSp8rX6ZVvZnAfo=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.nlark.com/asap/download/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", - "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", - "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1622213272480&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/ast-types-flow/download/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/astral-regex/download/astral-regex-2.0.0.tgz", - "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=" - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", - "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/async-limiter/download/async-limiter-1.0.1.tgz", - "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=" - }, - "async-validator": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-3.5.2.tgz?cache=0&sync_timestamp=1634529532378&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-3.5.2.tgz", - "integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz", - "integrity": "sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.nlark.com/atob/download/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" - }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmmirror.com/autoprefixer/download/autoprefixer-9.8.8.tgz?cache=0&sync_timestamp=1635421245353&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.8.tgz", - "integrity": "sha1-/UvUWVOF+m8GWZ3nSaTV96R0lXo=", - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz", - "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=" - } - } - }, - "axe-core": { - "version": "4.3.5", - "resolved": "https://registry.npmmirror.com/axe-core/download/axe-core-4.3.5.tgz?cache=0&sync_timestamp=1636734431667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxe-core%2Fdownload%2Faxe-core-4.3.5.tgz", - "integrity": "sha1-eNaRG6MXqCYr/uKSrq/MHgS0nMU=" - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmmirror.com/axios/download/axios-0.21.4.tgz", - "integrity": "sha1-xnuQ3AVo5cHPKwuFjEO6KOLtpXU=", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/axobject-query/download/axobject-query-2.2.0.tgz?cache=0&sync_timestamp=1633307441530&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxobject-query%2Fdownload%2Faxobject-query-2.2.0.tgz", - "integrity": "sha1-lD1H4QwLcEqkInXiDt83ImSJib4=" - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/babel-eslint/download/babel-eslint-10.1.0.tgz", - "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=" - } - } - }, - "babel-extract-comments": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/babel-extract-comments/download/babel-extract-comments-1.0.0.tgz", - "integrity": "sha1-Cirt+BQX7TkbheGLRhTmk6A1GiE=", - "requires": { - "babylon": "^6.18.0" - } - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/babel-jest/download/babel-jest-26.6.3.tgz?cache=0&sync_timestamp=1634626745680&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-jest%2Fdownload%2Fbabel-jest-26.6.3.tgz", - "integrity": "sha1-2H0lywA3V3oMifguV1XF0pPAEFY=", - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/babel-loader/download/babel-loader-8.1.0.tgz?cache=0&sync_timestamp=1634769717079&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz", - "integrity": "sha1-xhHVESvVIJq+i5+oTD5NolJ18cM=", - "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.nlark.com/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1618847141951&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/download/babel-plugin-istanbul-6.1.1.tgz?cache=0&sync_timestamp=1634418060011&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-istanbul%2Fdownload%2Fbabel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha1-+ojsWSMv2bTjbbvFQKjsmptH2nM=", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-26.6.2.tgz?cache=0&sync_timestamp=1631520418164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-jest-hoist%2Fdownload%2Fbabel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha1-gYW9AwNI0lTG192XQ1Xmoosh5i0=", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.nlark.com/babel-plugin-macros/download/babel-plugin-macros-2.8.0.tgz?cache=0&sync_timestamp=1620238165179&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-macros%2Fdownload%2Fbabel-plugin-macros-2.8.0.tgz", - "integrity": "sha1-D5WKfMZVax5lNERl2ZERoeXhATg=", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-6.0.0.tgz", - "integrity": "sha1-2k/uhTxS9rHmk19BwaL8UL1KmYI=", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - } - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.7", - "resolved": "https://registry.npmmirror.com/babel-plugin-named-asset-import/download/babel-plugin-named-asset-import-0.3.7.tgz", - "integrity": "sha1-FWzVXT8SKKV2V3Q0CTevyDmAZ90=", - "requires": {} - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.2.3", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.3.tgz?cache=0&sync_timestamp=1636799838015&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.3.tgz", - "integrity": "sha1-btjjCYGwYvj+asqIc6N+vMjMHA8=", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.4", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.3.0.tgz?cache=0&sync_timestamp=1636799836766&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-corejs3%2Fdownload%2Fbabel-plugin-polyfill-corejs3-0.3.0.tgz", - "integrity": "sha1-+nyj0e6d3GGTYA/7YyyXhdVJGK8=", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.4", - "core-js-compat": "^3.18.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.2.3", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.2.3.tgz?cache=0&sync_timestamp=1636799764770&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.2.3.tgz", - "integrity": "sha1-LpgI9QJ8QzbJlJkrSKQmJYDLjW0=", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.4" - } - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-react-remove-prop-types/download/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha1-8u2vm0xqX75cHWeL+1MQeMFVXzo=" - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/babel-preset-current-node-syntax/download/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha1-tDmSObibKgEfndvj5PQB/EDP9zs=", - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/babel-preset-jest/download/babel-preset-jest-26.6.2.tgz?cache=0&sync_timestamp=1631520438953&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-preset-jest%2Fdownload%2Fbabel-preset-jest-26.6.2.tgz", - "integrity": "sha1-dHhysRcd8DIlJCZYaIHWLTF5j+4=", - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-preset-react-app": { - "version": "10.0.0", - "resolved": "https://registry.npmmirror.com/babel-preset-react-app/download/babel-preset-react-app-10.0.0.tgz", - "integrity": "sha1-aJtg7ccF+KcM6H9Hqw5WCjF9cEU=", - "requires": { - "@babel/core": "7.12.3", - "@babel/plugin-proposal-class-properties": "7.12.1", - "@babel/plugin-proposal-decorators": "7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1", - "@babel/plugin-proposal-numeric-separator": "7.12.1", - "@babel/plugin-proposal-optional-chaining": "7.12.1", - "@babel/plugin-transform-flow-strip-types": "7.12.1", - "@babel/plugin-transform-react-display-name": "7.12.1", - "@babel/plugin-transform-runtime": "7.12.1", - "@babel/preset-env": "7.12.1", - "@babel/preset-react": "7.12.1", - "@babel/preset-typescript": "7.12.1", - "@babel/runtime": "7.12.1", - "babel-plugin-macros": "2.8.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmmirror.com/@babel/core/download/@babel/core-7.12.3.tgz?cache=0&sync_timestamp=1635560662864&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.3.tgz", - "integrity": "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.1.tgz", - "integrity": "sha1-DixndMTOSL5BIRm01pOsd392haY=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.1.tgz", - "integrity": "sha1-zOEiID/IoyeUKW/Dd8be2vQ2N5c=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-display-name%2Fdownload%2F%40babel%2Fplugin-transform-react-display-name-7.12.1.tgz", - "integrity": "sha1-HLzQw7HWZIxVN0oi/JtrflNBwA0=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/download/@babel/preset-env-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.1.tgz", - "integrity": "sha1-nH5cqCoZ78hlOEu0mJFI0u5desI=", - "requires": { - "@babel/compat-data": "^7.12.1", - "@babel/helper-compilation-targets": "^7.12.1", - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.1", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.1", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.1", - "core-js-compat": "^3.6.2", - "semver": "^5.5.0" - } - }, - "@babel/preset-react": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/preset-react/download/@babel/preset-react-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fpreset-react%2Fdownload%2F%40babel%2Fpreset-react-7.12.1.tgz", - "integrity": "sha1-fwIrE/VbbdgvAPFtHFma5imFNYw=", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.12.1", - "@babel/plugin-transform-react-jsx": "^7.12.1", - "@babel/plugin-transform-react-jsx-development": "^7.12.1", - "@babel/plugin-transform-react-jsx-self": "^7.12.1", - "@babel/plugin-transform-react-jsx-source": "^7.12.1", - "@babel/plugin-transform-react-pure-annotations": "^7.12.1" - }, - "dependencies": { - "@babel/plugin-transform-react-jsx-self": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/download/@babel/plugin-transform-react-jsx-self-7.16.0.tgz?cache=0&sync_timestamp=1635891993050&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-react-jsx-self%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-self-7.16.0.tgz", - "integrity": "sha1-CSAhWKu8cWoIMw85K/uY1rms+gw=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.16.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/download/@babel/plugin-transform-react-jsx-source-7.16.0.tgz", - "integrity": "sha1-1AyVnXgDquOCJFlFhXSGk+hMCiI=", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - } - } - }, - "@babel/runtime": { - "version": "7.12.1", - "resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.12.1.tgz?cache=0&sync_timestamp=1636495059115&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.1.tgz", - "integrity": "sha1-tBFqa2cR0BCy2tO3tuQ78bmVR0A=", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmmirror.com/core-js/download/core-js-2.6.12.tgz", - "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1626992969133&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz", - "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bfj": { - "version": "7.0.2", - "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-7.0.2.tgz", - "integrity": "sha1-GYjOdvOt2awpE/2LpHqtnmUb+7I=", - "requires": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", - "optional": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", - "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz?cache=0&sync_timestamp=1602657218976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.7.2.tgz", - "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=" - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz", - "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz?cache=0&sync_timestamp=1615817950402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz", - "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/bytes/download/bytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.nlark.com/qs/download/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.nlark.com/bonjour/download/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/boolbase/download/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/brorand/download/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/browserify-cipher/download/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", - "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz?cache=0&sync_timestamp=1605194257215&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-rsa%2Fdownload%2Fbrowserify-rsa-4.1.0.tgz", - "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.nlark.com/browserify-sign/download/browserify-sign-4.2.1.tgz", - "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/browserify-zlib/download/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.17.6", - "resolved": "https://registry.npmmirror.com/browserslist/download/browserslist-4.17.6.tgz", - "integrity": "sha1-x2vjPneGtJf2bK0lpzdWyLk4mF0=", - "requires": { - "caniuse-lite": "^1.0.30001274", - "electron-to-chromium": "^1.3.886", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/bser/download/bser-2.1.1.tgz", - "integrity": "sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU=", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.nlark.com/buffer/download/buffer-4.9.2.tgz", - "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/buffer-from/download/buffer-from-1.1.2.tgz", - "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", - "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/builtin-modules/download/builtin-modules-3.2.0.tgz", - "integrity": "sha1-RdXbmefuXmvE82LgCL+RerUEmIc=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/bytes/download/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.nlark.com/cacache/download/cacache-15.3.0.tgz", - "integrity": "sha1-3IU4D7L1Vv492kxxm/oOyHWn8es=", - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/cache-base/download/cache-base-1.0.1.tgz?cache=0&sync_timestamp=1636237452423&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz", - "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/caller-callsite/download/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/callsites/download/callsites-2.0.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - } - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1633674116889&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=" - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-4.1.2.tgz?cache=0&sync_timestamp=1606867311564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.2.tgz", - "integrity": "sha1-lygHKpVPgFIoIlpt7qazhGHhvVo=", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-6.2.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", - "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001280", - "resolved": "https://registry.npmmirror.com/caniuse-lite/download/caniuse-lite-1.0.30001280.tgz?cache=0&sync_timestamp=1636700079633&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001280.tgz", - "integrity": "sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA==" - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz", - "integrity": "sha1-+5U7+uvreB9iiYI52rtCbQilCaQ=", - "requires": { - "rsvp": "^4.8.4" - } - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz?cache=0&sync_timestamp=1614018570698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.3.0.tgz", - "integrity": "sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc=" - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/char-regex/download/char-regex-1.0.2.tgz", - "integrity": "sha1-10Q1giYhf5ge1Y9Hmx1rzClUXc8=" - }, - "check-types": { - "version": "11.1.2", - "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-11.1.2.tgz", - "integrity": "sha1-hqfBK/VTn2Mk6w5wyoiWwOOPPi8=" - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-3.5.2.tgz", - "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", - "optional": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz", - "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=" - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/ci-info/download/ci-info-2.0.0.tgz", - "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=" - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.nlark.com/cjs-module-lexer/download/cjs-module-lexer-0.6.0.tgz?cache=0&sync_timestamp=1626379164639&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcjs-module-lexer%2Fdownload%2Fcjs-module-lexer-0.6.0.tgz", - "integrity": "sha1-QYb8yg6uF1lwruhwuf4tbPjVZV8=" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - } - } - }, - "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/classnames/download/classnames-2.3.1.tgz", - "integrity": "sha1-38+jiR4wbsHa0QXQ6I9EF7hTXo4=" - }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmmirror.com/clean-css/download/clean-css-4.2.4.tgz?cache=0&sync_timestamp=1634992314911&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fclean-css%2Fdownload%2Fclean-css-4.2.4.tgz", - "integrity": "sha1-czv0brpOYHxokepXwkqYk1aDEXg=", - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1621915066376&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/clsx/download/clsx-1.1.1.tgz", - "integrity": "sha1-mLMTT5q73yOyZjSRrOE8XAOnMYg=" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/coa/download/coa-2.0.2.tgz", - "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/collect-v8-coverage/download/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha1-zCyOlPwYu9/+ZNZTRXDIpnOyf1k=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/collection-visit/download/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/color/download/color-3.2.1.tgz?cache=0&sync_timestamp=1628104117021&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolor%2Fdownload%2Fcolor-3.2.1.tgz", - "integrity": "sha1-NUTcGYyvRJDD7MmnkLVP6f9F4WQ=", - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.6.0", - "resolved": "https://registry.nlark.com/color-string/download/color-string-1.6.0.tgz", - "integrity": "sha1-w5FfYf4mdnLLfh4GTJ1pIhn2wxI=", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/commander/download/commander-4.1.1.tgz", - "integrity": "sha1-n9YCvZNilOnp70aj9NaWQESxgGg=" - }, - "common-tags": { - "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/common-tags/download/common-tags-1.8.1.tgz?cache=0&sync_timestamp=1636657225472&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.1.tgz", - "integrity": "sha512-uOZd85rJqrdEIE/JjhW5YAeatX8iqjjvVzIyfx7JL7G5r9Tep6YpYT9gEJWhWpVyDQEyzukWd6p2qULpJ8tmBw==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" - }, - "compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/compose-function/download/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "requires": { - "arity-n": "^1.0.4" - } - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz", - "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz", - "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npm.taobao.org/compute-scroll-into-view/download/compute-scroll-into-view-1.0.17.tgz?cache=0&sync_timestamp=1614042349490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompute-scroll-into-view%2Fdownload%2Fcompute-scroll-into-view-1.0.17.tgz", - "integrity": "sha1-aojxis2dQunPS6pr7H4FImB6t6s=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/confusing-browser-globals/download/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha1-MNHn89G4grJexJM9HRraw1PSClk=" - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/console-browserify/download/console-browserify-1.2.0.tgz", - "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/constants-browserify/download/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz", - "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" - }, - "contour_plot": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/contour_plot/download/contour_plot-0.0.1.tgz", - "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.8.0.tgz?cache=0&sync_timestamp=1624045508580&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.8.0.tgz", - "integrity": "sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", - "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.nlark.com/cookie-signature/download/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/copy-descriptor/download/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/copy-to-clipboard/download/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha1-EVqhqZmP+rYZb5MHatbaO5E2Yq4=", - "requires": { - "toggle-selection": "^1.0.6" - } - }, - "core-js": { - "version": "3.19.1", - "resolved": "https://registry.npmmirror.com/core-js/download/core-js-3.19.1.tgz", - "integrity": "sha1-9vFzyuI+c6fYj6I7bp2jKSdsZkE=" - }, - "core-js-compat": { - "version": "3.19.1", - "resolved": "https://registry.npmmirror.com/core-js-compat/download/core-js-compat-3.19.1.tgz?cache=0&sync_timestamp=1635883123462&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.19.1.tgz", - "integrity": "sha1-/lmPGpvzcxDXfDgTlo6ffHu5lHY=", - "requires": { - "browserslist": "^4.17.6", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", - "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=" - } - } - }, - "core-js-pure": { - "version": "3.19.1", - "resolved": "https://registry.npmmirror.com/core-js-pure/download/core-js-pure-3.19.1.tgz", - "integrity": "sha1-7f/B/HY0AApVugXpWz8P6Vh6WqQ=" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.3.tgz", - "integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=" - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-7.0.1.tgz", - "integrity": "sha1-cU11ZSLKzoZ4Z8y0R0xdAbuuXW0=", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", - "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-1.0.0.tgz?cache=0&sync_timestamp=1617610491419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz", - "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=", - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "css-blank-pseudo": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/css-blank-pseudo/download/css-blank-pseudo-0.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz", - "integrity": "sha1-3979MlS/ioICeZNnTM81SDv8s8U=", - "requires": { - "postcss": "^7.0.5" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-has-pseudo": { - "version": "0.10.0", - "resolved": "https://registry.nlark.com/css-has-pseudo/download/css-has-pseudo-0.10.0.tgz?cache=0&sync_timestamp=1631805424332&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz", - "integrity": "sha1-PGQqs0yiQsWcQaEl35EFhB9pZu4=", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "css-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/css-loader/download/css-loader-4.3.0.tgz?cache=0&sync_timestamp=1635967924209&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcss-loader%2Fdownload%2Fcss-loader-4.3.0.tgz", - "integrity": "sha1-yIivZLKlsuhUYscsD0qFx+Lggh4=", - "requires": { - "camelcase": "^6.0.0", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^2.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.3", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.1", - "semver": "^7.3.2" - } - }, - "css-prefers-color-scheme": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/css-prefers-color-scheme/download/css-prefers-color-scheme-3.1.1.tgz?cache=0&sync_timestamp=1631886309650&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha1-b4MKJxQZnU8NDQu4onkW7WXP8fQ=", - "requires": { - "postcss": "^7.0.5" - } - }, - "css-select": { - "version": "4.1.3", - "resolved": "https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-4.1.3.tgz", - "integrity": "sha1-pwRA9wMX8maRGK10/xBeZYSccGc=", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1617191696722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", - "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/css-what/download/css-what-5.1.0.tgz", - "integrity": "sha1-P3tweq32M7r2LCzrhXm1RbtA9/4=" - }, - "cssdb": { - "version": "4.4.0", - "resolved": "https://registry.npm.taobao.org/cssdb/download/cssdb-4.4.0.tgz", - "integrity": "sha1-O/LypowQ9cagir2SN4Mx7oA83bA=" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-3.0.0.tgz", - "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=" - }, - "cssnano": { - "version": "4.1.11", - "resolved": "https://registry.npmmirror.com/cssnano/download/cssnano-4.1.11.tgz", - "integrity": "sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk=", - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-5.2.1.tgz", - "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1636944618780&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz?cache=0&sync_timestamp=1636226947365&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.8.tgz", - "integrity": "sha1-kgYisfwelaNOiDggPxOXpQTy0/8=", - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=" - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz", - "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=", - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.3.tgz?cache=0&sync_timestamp=1617191696722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.1.3.tgz", - "integrity": "sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz?cache=0&sync_timestamp=1631835926316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.14.tgz", - "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.nlark.com/cssom/download/cssom-0.4.4.tgz", - "integrity": "sha1-WmbPk9LQtmHYC/akT7ZfXC5OChA=" - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/cssstyle/download/cssstyle-2.3.0.tgz", - "integrity": "sha1-/2ZaDdvcMYZLCWR/NBY0Q9kLCFI=", - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.nlark.com/cssom/download/cssom-0.3.8.tgz", - "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=" - } - } - }, - "csstype": { - "version": "3.0.9", - "resolved": "https://registry.nlark.com/csstype/download/csstype-3.0.9.tgz?cache=0&sync_timestamp=1631540782346&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcsstype%2Fdownload%2Fcsstype-3.0.9.tgz", - "integrity": "sha1-ZBCvMbJr0FIJM9AsvGT86c4/vws=" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/d/download/d-1.0.1.tgz", - "integrity": "sha1-hpgJU3LVjb7jRv/Qxwk/mfj561o=", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.nlark.com/d3-color/download/d3-color-1.4.1.tgz?cache=0&sync_timestamp=1622917792948&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-color%2Fdownload%2Fd3-color-1.4.1.tgz", - "integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo=" - }, - "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/d3-dispatch/download/d3-dispatch-2.0.0.tgz", - "integrity": "sha1-ihjhb3bdP8rvQhY8l7kmqptV588=" - }, - "d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/d3-ease/download/d3-ease-1.0.7.tgz", - "integrity": "sha1-moNIkO+LiujFWLL+Vb1X9Zk7heI=" - }, - "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/d3-force/download/d3-force-2.1.1.tgz?cache=0&sync_timestamp=1622921037410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-force%2Fdownload%2Fd3-force-2.1.1.tgz", - "integrity": "sha1-8gzL8ebJ6ArdGSbwm1H2hqi8CTc=", - "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" - } - }, - "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/d3-hierarchy/download/d3-hierarchy-2.0.0.tgz?cache=0&sync_timestamp=1622918433189&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-hierarchy%2Fdownload%2Fd3-hierarchy-2.0.0.tgz", - "integrity": "sha1-2riKWMo+ehvGyrOQ6JZn/MbSAhg=" - }, - "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.nlark.com/d3-interpolate/download/d3-interpolate-1.4.0.tgz?cache=0&sync_timestamp=1622918433472&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-interpolate%2Fdownload%2Fd3-interpolate-1.4.0.tgz", - "integrity": "sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=", - "requires": { - "d3-color": "1" - } - }, - "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/d3-quadtree/download/d3-quadtree-2.0.0.tgz", - "integrity": "sha1-7brQRc74hwH2/uOu6Ok/szLTD50=" - }, - "d3-regression": { - "version": "1.3.9", - "resolved": "https://registry.nlark.com/d3-regression/download/d3-regression-1.3.9.tgz?cache=0&sync_timestamp=1619194224119&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-regression%2Fdownload%2Fd3-regression-1.3.9.tgz", - "integrity": "sha1-YcNKy5trvZFy7eifBdC3+9V8zcA=" - }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.nlark.com/d3-timer/download/d3-timer-1.0.10.tgz", - "integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU=" - }, - "dagre": { - "version": "0.8.5", - "resolved": "https://registry.npm.taobao.org/dagre/download/dagre-0.8.5.tgz", - "integrity": "sha1-ujCwBV2sErbB/MJHgXRCd30Gr+4=", - "requires": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "damerau-levenshtein": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/damerau-levenshtein/download/damerau-levenshtein-1.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdamerau-levenshtein%2Fdownload%2Fdamerau-levenshtein-1.0.7.tgz", - "integrity": "sha1-ZDaAA1EqGmmSWTdBoJqdMag29V0=" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/data-urls/download/data-urls-2.0.0.tgz", - "integrity": "sha1-FWSFpyljqXD11YIar2Qr7yvy25s=", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "date-fns": { - "version": "2.25.0", - "resolved": "https://registry.npmmirror.com/date-fns/download/date-fns-2.25.0.tgz", - "integrity": "sha1-jFyPHZWL44CamgP0t0LrqJT8VoA=" - }, - "dayjs": { - "version": "1.10.7", - "resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.7.tgz", - "integrity": "sha1-LPX5Gt0oEWdIRAhmoKHSbzps5Gg=" - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmmirror.com/debug/download/debug-4.3.2.tgz", - "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1633055756574&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.nlark.com/decimal.js/download/decimal.js-10.3.1.tgz", - "integrity": "sha1-2MOkRKnGd0umDKatcmHDqU/V54M=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/decode-uri-component/download/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz?cache=0&sync_timestamp=1608580825991&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdedent%2Fdownload%2Fdedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/deep-equal/download/deep-equal-1.1.1.tgz", - "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.nlark.com/deepmerge/download/deepmerge-4.2.2.tgz", - "integrity": "sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=" - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/default-gateway/download/default-gateway-4.2.0.tgz", - "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/execa/download/execa-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-1.1.0.tgz?cache=0&sync_timestamp=1628592856164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&sync_timestamp=1633420566316&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-1.0.0.tgz?cache=0&sync_timestamp=1628896304371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/define-property/download/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", - "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/array-union/download/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1629801109090&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/p-map/download/p-map-2.1.0.tgz?cache=0&sync_timestamp=1635931861684&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz", - "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", - "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-browser": { - "version": "5.2.1", - "resolved": "https://registry.nlark.com/detect-browser/download/detect-browser-5.2.1.tgz", - "integrity": "sha1-uIT42E6PM7uHT/7RC0vuomEz/NE=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/detect-newline/download/detect-newline-3.1.0.tgz", - "integrity": "sha1-V29d/GOuGhkv8ZLYrTr2MImRtlE=" - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/detect-node/download/detect-node-2.1.0.tgz", - "integrity": "sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=" - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/detect-port-alt/download/detect-port-alt-1.1.6.tgz", - "integrity": "sha1-JHB96r6TLUo89iEwICfCsmZWgnU=", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/diff-sequences/download/diff-sequences-26.6.2.tgz", - "integrity": "sha1-SLqZFX3hkjQS7tQdtrbUqpynwLE=" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz", - "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", - "requires": { - "path-type": "^4.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.nlark.com/dns-packet/download/dns-packet-1.3.4.tgz", - "integrity": "sha1-40VQZYJKJQe6iGxVqJljuxB97G8=", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-align": { - "version": "1.12.2", - "resolved": "https://registry.nlark.com/dom-align/download/dom-align-1.12.2.tgz?cache=0&sync_timestamp=1621853133882&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-align%2Fdownload%2Fdom-align-1.12.2.tgz", - "integrity": "sha1-D4Fk69DJwhsMeQMQSTzYVYkqzUs=" - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/dom-converter/download/dom-converter-0.2.0.tgz", - "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256858583&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz", - "integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1627591557212&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=" - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/domexception/download/domexception-2.0.1.tgz?cache=0&sync_timestamp=1633538737274&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdomexception%2Fdownload%2Fdomexception-2.0.1.tgz", - "integrity": "sha1-+0Su+6eT4VdLCvau0oAdBXUp8wQ=", - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/webidl-conversions/download/webidl-conversions-5.0.0.tgz", - "integrity": "sha1-rlnIoAsSFUOirMZcBDT1ew/BGv8=" - } - } - }, - "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.2.tgz?cache=0&sync_timestamp=1630246778110&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomhandler%2Fdownload%2Fdomhandler-4.2.2.tgz", - "integrity": "sha1-6CXXIdGahrjCAaNSZOImxnjudV8=", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-2.8.0.tgz", - "integrity": "sha1-RDfe9dtuLR9dbuhZvZXKfQIEgTU=", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/dot-case/download/dot-case-3.0.4.tgz?cache=0&sync_timestamp=1606867255091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.4.tgz", - "integrity": "sha1-mytnDQCkMWZ6inW6Kc0bmICc51E=", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.nlark.com/dot-prop/download/dot-prop-5.3.0.tgz", - "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", - "requires": { - "is-obj": "^2.0.0" - }, - "dependencies": { - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=" - } - } - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.nlark.com/dotenv/download/dotenv-8.2.0.tgz?cache=0&sync_timestamp=1621628681571&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdotenv%2Fdownload%2Fdotenv-8.2.0.tgz", - "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=" - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", - "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=" - }, - "dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/dotignore/download/dotignore-0.1.2.tgz", - "integrity": "sha1-+ULyIA0ow6dvvdbw7p8yV8ii6QU=", - "requires": { - "minimatch": "^3.0.4" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", - "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.nlark.com/duplexify/download/duplexify-3.7.1.tgz?cache=0&sync_timestamp=1626860849590&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fduplexify%2Fdownload%2Fduplexify-3.7.1.tgz", - "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmmirror.com/ejs/download/ejs-2.7.4.tgz", - "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=" - }, - "electron-to-chromium": { - "version": "1.3.895", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.3.895.tgz?cache=0&sync_timestamp=1636687258172&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.895.tgz", - "integrity": "sha512-9Ww3fB8CWctjqHwkOt7DQbMZMpal2x2reod+/lU4b9axO1XJEDUpPMBxs7YnjLhhqpKXIIB5SRYN/B4K0QpvyQ==" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.nlark.com/elliptic/download/elliptic-6.5.4.tgz", - "integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - } - } - }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.nlark.com/emittery/download/emittery-0.7.2.tgz?cache=0&sync_timestamp=1631379607714&other_urls=https%3A%2F%2Fregistry.nlark.com%2Femittery%2Fdownload%2Femittery-0.7.2.tgz", - "integrity": "sha1-JVlZCOE68PVnSrQZOW4vs5TN+oI=" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-9.2.2.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-9.2.2.tgz", - "integrity": "sha1-hAyIA7DYBH9P8M+WMXazLU7z7XI=" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz", - "integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", - "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npm.taobao.org/enquirer/download/enquirer-2.3.6.tgz", - "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/entities/download/entities-2.2.0.tgz", - "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=" - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.nlark.com/errno/download/errno-0.1.8.tgz", - "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.nlark.com/error-stack-parser/download/error-stack-parser-2.0.6.tgz", - "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmmirror.com/es-abstract/download/es-abstract-1.19.1.tgz?cache=0&sync_timestamp=1633234313248&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.19.1.tgz", - "integrity": "sha1-1IhXlodpFpWd547aoN9FZicRXsM=", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.nlark.com/es-to-primitive/download/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz", - "integrity": "sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE=", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.3.tgz", - "integrity": "sha1-utXTwbzawoJp9MszHkMceKxwXRg=", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567261690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-2.0.0.tgz", - "integrity": "sha1-XjKxKDPoqo+jXhvwvvqJOASEx90=", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", - "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmmirror.com/eslint/download/eslint-7.32.0.tgz?cache=0&sync_timestamp=1636156084258&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint%2Fdownload%2Feslint-7.32.0.tgz", - "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=" - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz", - "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=" - } - } - }, - "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz", - "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=", - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=" - } - } - }, - "eslint-config-react-app": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/eslint-config-react-app/download/eslint-config-react-app-6.0.0.tgz", - "integrity": "sha1-zP+fyONrMikChEy9eRl5gr41Wg4=", - "requires": { - "confusing-browser-globals": "^1.0.10" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.nlark.com/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.6.tgz?cache=0&sync_timestamp=1629046642917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-import-resolver-node%2Fdownload%2Feslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "requires": { - "ms": "^2.1.1" - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/eslint-module-utils/download/eslint-module-utils-2.7.1.tgz?cache=0&sync_timestamp=1634152102578&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.7.1.tgz", - "integrity": "sha1-tDUAHJ+N1Kt/bQ78rkuWltTCS3w=", - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364600466&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-flowtype/download/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha1-d2TMY5QPIVvz8L0tmhKTsrmytLs=", - "requires": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmmirror.com/eslint-plugin-import/download/eslint-plugin-import-2.25.3.tgz?cache=0&sync_timestamp=1636529205526&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-jest": { - "version": "24.7.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-jest/download/eslint-plugin-jest-24.7.0.tgz?cache=0&sync_timestamp=1636362329546&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-jest%2Fdownload%2Feslint-plugin-jest-24.7.0.tgz", - "integrity": "sha1-IGrAgzhB5Z43UXCxX40JVSGcSIk=", - "requires": { - "@typescript-eslint/experimental-utils": "^4.0.1" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmmirror.com/eslint-plugin-jsx-a11y/download/eslint-plugin-jsx-a11y-6.5.1.tgz?cache=0&sync_timestamp=1636698418809&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-jsx-a11y%2Fdownload%2Feslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", - "requires": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - } - }, - "eslint-plugin-react": { - "version": "7.27.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-react/download/eslint-plugin-react-7.27.0.tgz?cache=0&sync_timestamp=1636528437026&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-react%2Fdownload%2Feslint-plugin-react-7.27.0.tgz", - "integrity": "sha512-0Ut+CkzpppgFtoIhdzi2LpdpxxBvgFf99eFqWxJnUrO7mMe0eOiNpou6rvNYeVVV6lWZvTah0BFne7k5xHjARg==", - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-2.0.0-next.3.tgz", - "integrity": "sha1-1BAWKT1KhYajnKXZtfFcvqH1XkY=", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-react-hooks/download/eslint-plugin-react-hooks-4.3.0.tgz?cache=0&sync_timestamp=1636733842218&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-react-hooks%2Fdownload%2Feslint-plugin-react-hooks-4.3.0.tgz", - "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", - "requires": {} - }, - "eslint-plugin-testing-library": { - "version": "3.10.2", - "resolved": "https://registry.npmmirror.com/eslint-plugin-testing-library/download/eslint-plugin-testing-library-3.10.2.tgz?cache=0&sync_timestamp=1635405268464&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-testing-library%2Fdownload%2Feslint-plugin-testing-library-3.10.2.tgz", - "integrity": "sha1-YJ7CsDadp88ubZ7f9doVPMMdh70=", - "requires": { - "@typescript-eslint/experimental-utils": "^3.10.1" - }, - "dependencies": { - "@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-3.10.1.tgz?cache=0&sync_timestamp=1636927348659&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-3.10.1.tgz", - "integrity": "sha1-4Xn/yBqA68ri6gTgMy+LJRNFpoY=", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/types": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-3.10.1.tgz?cache=0&sync_timestamp=1636927435113&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypes%2Fdownload%2F%40typescript-eslint%2Ftypes-3.10.1.tgz", - "integrity": "sha1-HXRj+nwy2KI6tQioA8ov4m51hyc=" - }, - "@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-3.10.1.tgz?cache=0&sync_timestamp=1636928494244&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypescript-estree%2Fdownload%2F%40typescript-eslint%2Ftypescript-estree-3.10.1.tgz", - "integrity": "sha1-/QBhzDit1PrUUTbWVECFafNluFM=", - "requires": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-3.10.1.tgz?cache=0&sync_timestamp=1636927358040&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fvisitor-keys%2Fdownload%2F%40typescript-eslint%2Fvisitor-keys-3.10.1.tgz", - "integrity": "sha1-zUJ0dz4+tjsuhwrGAidEh+zR6TE=", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz", - "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=" - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.nlark.com/eslint-scope/download/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=" - } - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-3.0.0.tgz", - "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=", - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz", - "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=" - }, - "eslint-webpack-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/eslint-webpack-plugin/download/eslint-webpack-plugin-2.6.0.tgz", - "integrity": "sha512-V+LPY/T3kur5QO3u+1s34VDTcRxjXWPUGM4hlmTb5DwVD0OQz631yGTxJZf4SpAqAjdbBVe978S8BJeHpAdOhQ==", - "requires": { - "@types/eslint": "^7.28.2", - "arrify": "^2.0.1", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.nlark.com/espree/download/espree-7.3.1.tgz?cache=0&sync_timestamp=1631307207311&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fespree%2Fdownload%2Fespree-7.3.1.tgz", - "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378433512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=" - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz", - "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=" - }, - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-0.6.1.tgz", - "integrity": "sha1-UwSRQ/QMbrkYsjZx0f4yGfOhs2I=" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.nlark.com/etag/download/etag-1.8.1.tgz?cache=0&sync_timestamp=1618847044821&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fetag%2Fdownload%2Fetag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz", - "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/events/download/events-3.3.0.tgz", - "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=" - }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/eventsource/download/eventsource-1.1.0.tgz", - "integrity": "sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68=", - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.6.tgz?cache=0&sync_timestamp=1616789108646&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexec-sh%2Fdownload%2Fexec-sh-0.3.6.tgz", - "integrity": "sha1-/yZPnjJVGaYMteJzaSlDSDzKY7w=" - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/execa/download/execa-4.1.0.tgz", - "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz", - "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/array-flatten/download/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.nlark.com/qs/download/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" - } - } - }, - "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/ext/download/ext-1.6.0.tgz", - "integrity": "sha1-OHHVBkHodMwXLitT+RmELRnbTFI=", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/type/download/type-2.5.0.tgz", - "integrity": "sha1-Ci54wud5B7JSq+XymMGwHGPw2z0=" - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/extglob/download/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz?cache=0&sync_timestamp=1625773305786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.7.tgz", - "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz", - "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.nlark.com/faye-websocket/download/faye-websocket-0.11.4.tgz", - "integrity": "sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.1.tgz", - "integrity": "sha1-/IT7OdJwnPP/bXQ3BhV7tXCKioU=", - "requires": { - "bser": "2.1.1" - } - }, - "fecha": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/fecha/download/fecha-4.2.1.tgz?cache=0&sync_timestamp=1617639941867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffecha%2Fdownload%2Ffecha-4.2.1.tgz", - "integrity": "sha1-CoOtj4bvYqCR4iu1oDnNA9I+7M4=" - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", - "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=" - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.1.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-6.0.1.tgz", - "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-loader": { - "version": "6.1.1", - "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-6.1.1.tgz", - "integrity": "sha1-pvKd+z9ZM6HDULLbqiCsW+BTm6o=", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", - "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", - "optional": true - }, - "filesize": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/filesize/download/filesize-6.1.0.tgz?cache=0&sync_timestamp=1635763993879&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffilesize%2Fdownload%2Ffilesize-6.1.0.tgz", - "integrity": "sha1-6Bvap4DiRR1xTXHA16TzI403rQA=" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", - "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-3.0.4.tgz", - "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz?cache=0&sync_timestamp=1636473868538&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fflatted%2Fdownload%2Fflatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==" - }, - "flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/flatten/download/flatten-1.0.3.tgz", - "integrity": "sha1-wSg6yfJ7Noq8HjbR/3sEUBowNWs=" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", - "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "fmin": { - "version": "0.0.2", - "resolved": "https://registry.npm.taobao.org/fmin/download/fmin-0.0.2.tgz", - "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", - "requires": { - "contour_plot": "^0.0.1", - "json2module": "^0.0.3", - "rollup": "^0.25.8", - "tape": "^4.5.1", - "uglify-js": "^2.6.2" - } - }, - "follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmmirror.com/follow-redirects/download/follow-redirects-1.14.5.tgz?cache=0&sync_timestamp=1635857764332&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.14.5.tgz", - "integrity": "sha1-8JpYSJgdPHcrU5Iwl3hSP42Fw4E=" - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.nlark.com/for-each/download/for-each-0.3.3.tgz", - "integrity": "sha1-abRH6IoKXTLD5whPPxcQA0shN24=", - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/for-in/download/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-4.1.6.tgz?cache=0&sync_timestamp=1635536116565&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffork-ts-checker-webpack-plugin%2Fdownload%2Ffork-ts-checker-webpack-plugin-4.1.6.tgz", - "integrity": "sha1-UFXHA/6883+gZAXUAMEiuQUWf8U=", - "requires": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/form-data/download/form-data-3.0.1.tgz", - "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz?cache=0&sync_timestamp=1622503499867&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fforwarded%2Fdownload%2Fforwarded-0.2.0.tgz", - "integrity": "sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.nlark.com/fresh/download/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/from2/download/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-9.1.0.tgz", - "integrity": "sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz", - "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.nlark.com/get-caller-file/download/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/get-intrinsic/download/get-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/get-package-type/download/get-package-type-0.1.0.tgz", - "integrity": "sha1-jeLYA8/0TfO8bEVuZmizbDkm4Ro=" - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/get-stream/download/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/get-symbol-description/download/get-symbol-description-1.0.0.tgz", - "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/gl-matrix/download/gl-matrix-3.4.3.tgz", - "integrity": "sha1-/BGR6DIACf1NIOkzlZXGBB3cIsk=" - }, - "gl-vec2": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/gl-vec2/download/gl-vec2-1.3.0.tgz", - "integrity": "sha1-g9Ry7UYDTejgnLyFcSP7bIHFEZk=" - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz", - "integrity": "sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/global-modules/download/global-modules-2.0.0.tgz", - "integrity": "sha1-mXYFrSNF8n9RU5vqJldEISFcd4A=", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/global-prefix/download/global-prefix-3.0.0.tgz", - "integrity": "sha1-/IX3MGTfafUEIfR/iD/luRO6m5c=", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmmirror.com/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=" - }, - "globby": { - "version": "11.0.4", - "resolved": "https://registry.nlark.com/globby/download/globby-11.0.4.tgz?cache=0&sync_timestamp=1629801109090&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-11.0.4.tgz", - "integrity": "sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz", - "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=" - }, - "graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/graphlib/download/graphlib-2.1.8.tgz", - "integrity": "sha1-V2HUFHN4cAhMkux7XbywWSydNdo=", - "requires": { - "lodash": "^4.17.15" - } - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "optional": true - }, - "guacamole-common-js": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/guacamole-common-js/download/guacamole-common-js-1.3.1.tgz", - "integrity": "sha1-SOwK0gLdplgndDrtSddXS4WvyZg=" - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", - "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - } - }, - "hammerjs": { - "version": "2.0.8", - "resolved": "https://registry.npm.taobao.org/hammerjs/download/hammerjs-2.0.8.tgz", - "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", - "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=" - }, - "harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npm.taobao.org/harmony-reflect/download/harmony-reflect-1.6.2.tgz", - "integrity": "sha1-Mey9MuZIo00DDYattn1NR1R/5xA=" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz?cache=0&sync_timestamp=1631556960487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz", - "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443577352&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz", - "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz?cache=0&sync_timestamp=1628197490246&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-tostringtag%2Fdownload%2Fhas-tostringtag-1.0.0.tgz", - "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/has-values/download/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", - "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", - "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=" - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", - "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=" - }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmmirror.com/history/download/history-4.10.1.tgz", - "integrity": "sha1-MzcaZeOoOyZ0NOKz87G0xYqtTPM=", - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha1-7OCsr3HWLClpwuxZ/v9CpLGoW0U=", - "requires": { - "react-is": "^16.7.0" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/hoopy/download/hoopy-0.1.4.tgz", - "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=" - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.9.tgz?cache=0&sync_timestamp=1617826545071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/html-encoding-sniffer/download/html-encoding-sniffer-2.0.1.tgz?cache=0&sync_timestamp=1632005670807&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhtml-encoding-sniffer%2Fdownload%2Fhtml-encoding-sniffer-2.0.1.tgz", - "integrity": "sha1-QqbcT9M/ACgRduiyN1nKTk+hhfM=", - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.4.0.tgz?cache=0&sync_timestamp=1617031468383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.4.0.tgz", - "integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/html-escaper/download/html-escaper-2.0.2.tgz", - "integrity": "sha1-39YAJ9o2o238viNiYsAKWCJoFFM=" - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.nlark.com/html-minifier-terser/download/html-minifier-terser-5.1.1.tgz", - "integrity": "sha1-ki6W8fO7YIMsJjS3mIQJY4mx8FQ=", - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - } - }, - "html-webpack-plugin": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/html-webpack-plugin/download/html-webpack-plugin-4.5.0.tgz", - "integrity": "sha1-YlCXZQiGuX6l2uMxwyDjI49sEhw=", - "requires": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/htmlparser2/download/htmlparser2-6.1.0.tgz?cache=0&sync_timestamp=1636640853072&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-6.1.0.tgz", - "integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmmirror.com/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1636932182141&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz?cache=0&sync_timestamp=1609540073700&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.5.3.tgz", - "integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz", - "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/http-proxy-agent/download/http-proxy-agent-4.0.1.tgz", - "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-5.0.0.tgz?cache=0&sync_timestamp=1614740547969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttps-proxy-agent%2Fdownload%2Fhttps-proxy-agent-5.0.0.tgz", - "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/human-signals/download/human-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz", - "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", - "requires": { - "postcss": "^7.0.14" - } - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/identity-obj-proxy/download/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.nlark.com/ieee754/download/ieee754-1.2.1.tgz", - "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.nlark.com/iferr/download/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.9.tgz", - "integrity": "sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs=" - }, - "immer": { - "version": "8.0.1", - "resolved": "https://registry.nlark.com/immer/download/immer-8.0.1.tgz?cache=0&sync_timestamp=1630436525123&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fimmer%2Fdownload%2Fimmer-8.0.1.tgz", - "integrity": "sha1-nHPbaD4rOXXEJPsFcq9YiYd65lY=" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/import-cwd/download/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=" - } - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/import-from/download/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/import-local/download/import-local-3.0.3.tgz", - "integrity": "sha1-TVHCxJXKk5PaJZ7Ga2LgIpICEeA=", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz?cache=0&sync_timestamp=1618679442183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.8.tgz?cache=0&sync_timestamp=1607907810942&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fini%2Fdownload%2Fini-1.3.8.tgz", - "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=" - }, - "insert-css": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/insert-css/download/insert-css-2.0.0.tgz", - "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ=" - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/internal-ip/download/internal-ip-4.3.0.tgz", - "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz", - "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "inversify": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/inversify/download/inversify-5.1.1.tgz?cache=0&sync_timestamp=1636450911253&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Finversify%2Fdownload%2Finversify-5.1.1.tgz", - "integrity": "sha1-b71mjFkTN0BOAFoZRr/g2ALAhzA=" - }, - "inversify-inject-decorators": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/inversify-inject-decorators/download/inversify-inject-decorators-3.1.0.tgz", - "integrity": "sha1-2ZQQgLrXfOyKZe4p2QXk1dc+HpU=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.nlark.com/ip/download/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/ip-regex/download/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.nlark.com/ipaddr.js/download/ipaddr.js-1.9.1.tgz", - "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=" - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-absolute-url/download/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-any-array": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-any-array/download/is-any-array-1.0.1.tgz?cache=0&sync_timestamp=1635886325334&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-any-array%2Fdownload%2Fis-any-array-1.0.1.tgz", - "integrity": "sha1-Bf7ewaTc7RhUvSebLsXfQx5b6p4=" - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/is-arguments/download/is-arguments-1.1.1.tgz?cache=0&sync_timestamp=1628202102318&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.1.tgz", - "integrity": "sha1-FbP4j9oB8ql/7ITKdhpWDxI++ps=", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.4.tgz?cache=0&sync_timestamp=1628747504782&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-bigint%2Fdownload%2Fis-bigint-1.0.4.tgz", - "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz?cache=0&sync_timestamp=1628207133571&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-boolean-object%2Fdownload%2Fis-boolean-object-1.1.2.tgz", - "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz?cache=0&sync_timestamp=1628259683451&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-callable%2Fdownload%2Fis-callable-1.2.4.tgz", - "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/is-ci/download/is-ci-2.0.0.tgz?cache=0&sync_timestamp=1635261061017&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-ci%2Fdownload%2Fis-ci-2.0.0.tgz", - "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.0.tgz?cache=0&sync_timestamp=1634237061095&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-core-module%2Fdownload%2Fis-core-module-2.8.0.tgz", - "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz", - "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/is-docker/download/is-docker-2.2.1.tgz?cache=0&sync_timestamp=1630451108035&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-docker%2Fdownload%2Fis-docker-2.2.1.tgz", - "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=" - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-generator-fn/download/is-generator-fn-2.1.0.tgz?cache=0&sync_timestamp=1628686122487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-generator-fn%2Fdownload%2Fis-generator-fn-2.1.0.tgz", - "integrity": "sha1-fRQK3DiarzARqPKipM+m+q3/sRg=" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-module/download/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607123314998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz", - "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=" - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.6.tgz", - "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/is-path-cwd/download/is-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=" - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1620047389319&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz", - "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz", - "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz?cache=0&sync_timestamp=1618601044820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1618846974259&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-potential-custom-element-name/download/is-potential-custom-element-name-1.0.1.tgz?cache=0&sync_timestamp=1617781844353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-potential-custom-element-name%2Fdownload%2Fis-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha1-Fx7W8Z46xVQ5Tt94yqBXhKRb67U=" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz", - "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz?cache=0&sync_timestamp=1617816642607&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-root/download/is-root-2.1.0.tgz?cache=0&sync_timestamp=1617783413343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-root%2Fdownload%2Fis-root-2.1.0.tgz", - "integrity": "sha1-gJ4YEpzxEpZEMCpPhUQDXVGYSpw=" - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/download/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha1-l7DIX72stZycRG/mU7gs8rW3z+Y=" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz?cache=0&sync_timestamp=1628592856164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-stream%2Fdownload%2Fis-stream-2.0.1.tgz", - "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/is-string/download/is-string-1.0.7.tgz", - "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501308896&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz", - "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/is-weakref/download/is-weakref-1.0.1.tgz", - "integrity": "sha1-hC26TsF/qayYUN8tbvvBc3J08qI=", - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/is-wsl/download/is-wsl-2.2.0.tgz", - "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/download/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha1-GJ55CdCjn6Wj361bA/cZR3cBkdM=" - }, - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/download/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha1-e0kZi2V7J6cwuOnLYB8eG/8kxZo=", - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha1-dRj+UupE3jcvRgp2tezan/tz2KY=", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/download/istanbul-lib-source-maps-4.0.1.tgz?cache=0&sync_timestamp=1634004194474&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fistanbul-lib-source-maps%2Fdownload%2Fistanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha1-iV86cJ/PujTG3lpCk5Ai8+Q1hVE=", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmmirror.com/istanbul-reports/download/istanbul-reports-3.0.5.tgz?cache=0&sync_timestamp=1634144740267&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fistanbul-reports%2Fdownload%2Fistanbul-reports-3.0.5.tgz", - "integrity": "sha1-olgBB+cSeeptZh3e3pKf/G1pM4Q=", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "26.6.0", - "resolved": "https://registry.npmmirror.com/jest/download/jest-26.6.0.tgz?cache=0&sync_timestamp=1634626718300&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest%2Fdownload%2Fjest-26.6.0.tgz", - "integrity": "sha1-VGslodjIiFadu+k8rhMXSAhqSiU=", - "requires": { - "@jest/core": "^26.6.0", - "import-local": "^3.0.2", - "jest-cli": "^26.6.0" - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-changed-files/download/jest-changed-files-26.6.2.tgz", - "integrity": "sha1-9hmEeeHMZvIvmuHiKsqgtCnAQtA=", - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - } - }, - "jest-circus": { - "version": "26.6.0", - "resolved": "https://registry.npmmirror.com/jest-circus/download/jest-circus-26.6.0.tgz?cache=0&sync_timestamp=1634626756472&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-circus%2Fdownload%2Fjest-circus-26.6.0.tgz", - "integrity": "sha1-fZZHsuf5IRgYafquH5CiYp/XBwU=", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.0", - "@jest/test-result": "^26.6.0", - "@jest/types": "^26.6.0", - "@types/babel__traverse": "^7.0.4", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^26.6.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.0", - "jest-matcher-utils": "^26.6.0", - "jest-message-util": "^26.6.0", - "jest-runner": "^26.6.0", - "jest-runtime": "^26.6.0", - "jest-snapshot": "^26.6.0", - "jest-util": "^26.6.0", - "pretty-format": "^26.6.0", - "stack-utils": "^2.0.2", - "throat": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/expect/download/expect-26.6.2.tgz?cache=0&sync_timestamp=1634626714215&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexpect%2Fdownload%2Fexpect-26.6.2.tgz", - "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-cli/download/jest-cli-26.6.3.tgz?cache=0&sync_timestamp=1634626719019&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-cli%2Fdownload%2Fjest-cli-26.6.3.tgz", - "integrity": "sha1-QxF8/vJLxM1pGhdKh5alMuE16So=", - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-config/download/jest-config-26.6.3.tgz", - "integrity": "sha1-ZPQURO756wPcUdXFO3XIxx9kU0k=", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-diff/download/jest-diff-26.6.2.tgz", - "integrity": "sha1-GqdGi1LDpo19XF/c381eSb0WQ5Q=", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.nlark.com/jest-docblock/download/jest-docblock-26.0.0.tgz", - "integrity": "sha1-Pi+iCJn8koyxO9D/aL03EaNoibU=", - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-each/download/jest-each-26.6.2.tgz", - "integrity": "sha1-AlJkOKd6Z0AcimOC3+WZmVLBZ8s=", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/download/jest-environment-jsdom-26.6.2.tgz?cache=0&sync_timestamp=1634626747973&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-environment-jsdom%2Fdownload%2Fjest-environment-jsdom-26.6.2.tgz", - "integrity": "sha1-eNCf6c8BmjVwCbm34fEB0jvR2j4=", - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-environment-node/download/jest-environment-node-26.6.2.tgz?cache=0&sync_timestamp=1634626741234&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-environment-node%2Fdownload%2Fjest-environment-node-26.6.2.tgz", - "integrity": "sha1-gk5Mf7SURkY1bxGsdbIpsANfKww=", - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmmirror.com/jest-get-type/download/jest-get-type-26.3.0.tgz", - "integrity": "sha1-6X3Dw/U8K0Bsp6+u1Ek7HQmRmeA=" - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-haste-map/download/jest-haste-map-26.6.2.tgz?cache=0&sync_timestamp=1634626734781&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-26.6.2.tgz", - "integrity": "sha1-3X5g/n3A6fkRoj15xf9/tcLK/qo=", - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", - "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-jasmine2/download/jest-jasmine2-26.6.3.tgz", - "integrity": "sha1-rcPPkV3qy1ISyTufNUfNEpWPLt0=", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/expect/download/expect-26.6.2.tgz?cache=0&sync_timestamp=1634626714215&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexpect%2Fdownload%2Fexpect-26.6.2.tgz", - "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-leak-detector/download/jest-leak-detector-26.6.2.tgz", - "integrity": "sha1-dxfPEYuSI48uumUFTIoMnGU6ka8=", - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-matcher-utils/download/jest-matcher-utils-26.6.2.tgz?cache=0&sync_timestamp=1634626711399&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-matcher-utils%2Fdownload%2Fjest-matcher-utils-26.6.2.tgz", - "integrity": "sha1-jm/W6GPIstMaxkcu6yN7xZXlPno=", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-message-util/download/jest-message-util-26.6.2.tgz", - "integrity": "sha1-WBc3RK1vwFBrXSEVC5vlbvABygc=", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-mock/download/jest-mock-26.6.2.tgz?cache=0&sync_timestamp=1634496332606&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-mock%2Fdownload%2Fjest-mock-26.6.2.tgz", - "integrity": "sha1-1stxKwQe1H/g2bb8NHS8ZUP+swI=", - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/download/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha1-twSsCuAoqJEIpNBAs/kZ393I4zw=", - "requires": {} - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.nlark.com/jest-regex-util/download/jest-regex-util-26.0.0.tgz", - "integrity": "sha1-0l5xhLNuOf1GbDvEG+CXHoIf7ig=" - }, - "jest-resolve": { - "version": "26.6.0", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.0.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.0.tgz", - "integrity": "sha1-Bw/nFZr4ewPlD1LqXhfulbvuQOE=", - "requires": { - "@jest/types": "^26.6.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.0", - "read-pkg-up": "^7.0.1", - "resolve": "^1.17.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/download/jest-resolve-dependencies-26.6.3.tgz?cache=0&sync_timestamp=1634626757739&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve-dependencies%2Fdownload%2Fjest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha1-ZoCFnuXSLuXc2WH+SHH1n0x4T7Y=", - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-runner/download/jest-runner-26.6.3.tgz", - "integrity": "sha1-LR/tPUbhDyM/0dvTv6o/6JJL4Vk=", - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", - "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/jest-runtime/download/jest-runtime-26.6.3.tgz?cache=0&sync_timestamp=1634626757108&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-runtime%2Fdownload%2Fjest-runtime-26.6.3.tgz", - "integrity": "sha1-T2TvvPrDmDMbdLSzyC0n1AG4+is=", - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.nlark.com/jest-serializer/download/jest-serializer-26.6.2.tgz", - "integrity": "sha1-0Tmq/UaVfTpEjzps2r4pGboHQtE=", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-snapshot/download/jest-snapshot-26.6.2.tgz?cache=0&sync_timestamp=1634626720436&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-snapshot%2Fdownload%2Fjest-snapshot-26.6.2.tgz", - "integrity": "sha1-87CvGssiMxaFC9FOG+6pg3+znIQ=", - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/expect/download/expect-26.6.2.tgz?cache=0&sync_timestamp=1634626714215&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexpect%2Fdownload%2Fexpect-26.6.2.tgz", - "integrity": "sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=", - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-resolve/download/jest-resolve-26.6.2.tgz?cache=0&sync_timestamp=1634626750207&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-resolve%2Fdownload%2Fjest-resolve-26.6.2.tgz", - "integrity": "sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-util/download/jest-util-26.6.2.tgz?cache=0&sync_timestamp=1634626703989&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-util%2Fdownload%2Fjest-util-26.6.2.tgz", - "integrity": "sha1-kHU12+TVpstMR6ybkm9q8pV2y8E=", - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-validate/download/jest-validate-26.6.2.tgz", - "integrity": "sha1-I9OAlxWHFQRnNCkRw9e0rFerIOw=", - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watch-typeahead": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/jest-watch-typeahead/download/jest-watch-typeahead-0.6.1.tgz?cache=0&sync_timestamp=1632899984169&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-watch-typeahead%2Fdownload%2Fjest-watch-typeahead-0.6.1.tgz", - "integrity": "sha1-RSIbhrtnELfpe6qhZAriSgd4XmM=", - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^26.0.0", - "jest-watcher": "^26.3.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-watcher/download/jest-watcher-26.6.2.tgz", - "integrity": "sha1-pbaDuPnWjbyx19rjIXLSzKBZKXU=", - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-27.3.1.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-27.3.1.tgz", - "integrity": "sha1-De9/6uW4BCvjhHl5mut7X6ysJLI=", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-8.1.1.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-8.1.1.tgz", - "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-base64": { - "version": "3.7.2", - "resolved": "https://registry.npmmirror.com/js-base64/download/js-base64-3.7.2.tgz", - "integrity": "sha1-gW0R2BqK/yQWA9Gc5XYeE+Qdd0U=" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618434911653&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmmirror.com/jsdom/download/jsdom-16.7.0.tgz?cache=0&sync_timestamp=1636758139682&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjsdom%2Fdownload%2Fjsdom-16.7.0.tgz", - "integrity": "sha1-kYrnGWVCSxl8gZ+Bg6dU4Yl3txA=", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.5.0", - "resolved": "https://registry.nlark.com/acorn/download/acorn-8.5.0.tgz?cache=0&sync_timestamp=1630916591807&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-8.5.0.tgz", - "integrity": "sha1-RRLMuZs2mMdSWR6btEcuOK1DzuI=" - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.nlark.com/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.nlark.com/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json2module": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/json2module/download/json2module-0.0.3.tgz", - "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", - "requires": { - "rw": "^1.3.2" - } - }, - "json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/json2mq/download/json2mq-0.2.0.tgz", - "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", - "requires": { - "string-convert": "^0.2.0" - } - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/json3/download/json3-3.3.3.tgz", - "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=" - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz", - "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604161912962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz", - "integrity": "sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/jsx-ast-utils/download/jsx-ast-utils-3.2.1.tgz?cache=0&sync_timestamp=1631856184359&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjsx-ast-utils%2Fdownload%2Fjsx-ast-utils-3.2.1.tgz", - "integrity": "sha1-cguXv+fZAbkn2Hw3c2N66OpIeBs=", - "requires": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/killable/download/killable-1.0.1.tgz", - "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/kleur/download/kleur-3.0.3.tgz", - "integrity": "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=" - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/klona/download/klona-2.0.5.tgz?cache=0&sync_timestamp=1635385383825&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fklona%2Fdownload%2Fklona-2.0.5.tgz", - "integrity": "sha1-0WZXTZAHY5XZljqnqSj6u412r7w=" - }, - "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.nlark.com/language-subtag-registry/download/language-subtag-registry-0.3.21.tgz", - "integrity": "sha1-BKwhi+pG8EywOQhGAsbanniN1Fo=" - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/language-tags/download/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha1-l0LfDhDjz0blwDgcLekNOnotdVU=", - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/leven/download/leven-3.1.0.tgz?cache=0&sync_timestamp=1628598084975&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fleven%2Fdownload%2Fleven-3.1.0.tgz", - "integrity": "sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=" - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.nlark.com/lines-and-columns/download/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1610027943366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", - "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=" - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-2.0.2.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-2.0.2.tgz", - "integrity": "sha1-1uO0+4GHByGuTghoqxHdY4NowSk=", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-5.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz", - "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz", - "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=" - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/lodash.template/download/lodash.template-4.5.0.tgz", - "integrity": "sha1-+XYZXPPzR9DV9SSDVp/oAxzM6Ks=", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha1-5IExDwSdPPbUfpEq0JMTsVTw+zM=", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npm.taobao.org/lodash.truncate/download/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.nlark.com/loglevel/download/loglevel-1.7.1.tgz", - "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/lower-case/download/lower-case-2.0.2.tgz", - "integrity": "sha1-b6I3xj29xKgsoP2ILkci3F5jTig=", - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz", - "integrity": "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=", - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmmirror.com/makeerror/download/makeerror-1.0.12.tgz", - "integrity": "sha1-Pl3SB5qC6BLpg8xmEMSiyw6qgBo=", - "requires": { - "tmpl": "1.0.5" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.nlark.com/map-cache/download/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", - "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1631835926316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz", - "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.nlark.com/media-typer/download/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/merge-descriptors/download/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/merge-stream/download/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", - "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/microevent.ts/download/microevent.ts-0.1.1.tgz", - "integrity": "sha1-cLCbg/Q99RctAgWmMCW84Pc1f6A=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz", - "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/mime/download/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmmirror.com/mime-db/download/mime-db-1.51.0.tgz?cache=0&sync_timestamp=1636425960296&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-db%2Fdownload%2Fmime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmmirror.com/mime-types/download/mime-types-2.1.34.tgz?cache=0&sync_timestamp=1636432302620&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" - }, - "mini-css-extract-plugin": { - "version": "0.11.3", - "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/download/mini-css-extract-plugin-0.11.3.tgz?cache=0&sync_timestamp=1636028520003&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.11.3.tgz", - "integrity": "sha1-FbCRCn8y5i/95KdDDP771wByTqY=", - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", - "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&sync_timestamp=1602337228360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" - }, - "minipass": { - "version": "3.1.5", - "resolved": "https://registry.nlark.com/minipass/download/minipass-3.1.5.tgz?cache=0&sync_timestamp=1631656107998&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fminipass%2Fdownload%2Fminipass-3.1.5.tgz", - "integrity": "sha1-cfYlGwozpJwBs8+X/3ftoDDf9zI=", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/minipass-collect/download/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.nlark.com/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz", - "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz", - "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "requires": { - "minimist": "^1.2.5" - } - }, - "ml-array-max": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/ml-array-max/download/ml-array-max-1.2.3.tgz?cache=0&sync_timestamp=1616593177293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fml-array-max%2Fdownload%2Fml-array-max-1.2.3.tgz", - "integrity": "sha1-ktH/72Z0MtFFHTWBenJ2xShjXmQ=", - "requires": { - "is-any-array": "^1.0.0" - } - }, - "ml-array-min": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/ml-array-min/download/ml-array-min-1.2.2.tgz", - "integrity": "sha1-q9aFEqV/6EmVE+byJlUzgH4rvms=", - "requires": { - "is-any-array": "^1.0.0" - } - }, - "ml-array-rescale": { - "version": "1.3.6", - "resolved": "https://registry.nlark.com/ml-array-rescale/download/ml-array-rescale-1.3.6.tgz", - "integrity": "sha1-Bg0cY2+7X4dyZfT8xODhV1IdYVo=", - "requires": { - "is-any-array": "^1.0.0", - "ml-array-max": "^1.2.3", - "ml-array-min": "^1.2.2" - } - }, - "ml-matrix": { - "version": "6.8.2", - "resolved": "https://registry.npmmirror.com/ml-matrix/download/ml-matrix-6.8.2.tgz?cache=0&sync_timestamp=1636729809006&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fml-matrix%2Fdownload%2Fml-matrix-6.8.2.tgz", - "integrity": "sha512-5o2gVLFyieDSgsStEU5mqty4MZqfeytYA/gJqBSw5/Xuob0X2UrFX/k7FDh+YAwjzG/1l8nYa0oDaJ0sGs/RlA==", - "requires": { - "ml-array-rescale": "^1.3.6" - } - }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz", - "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" - }, - "monaco-editor": { - "version": "0.30.1", - "resolved": "https://registry.npmmirror.com/monaco-editor/download/monaco-editor-0.30.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmonaco-editor%2Fdownload%2Fmonaco-editor-0.30.1.tgz", - "integrity": "sha512-B/y4+b2O5G2gjuxIFtCE2EkM17R2NM7/3F8x0qcPsqy4V83bitJTIO4TIeZpYlzu/xy6INiY/+84BEm6+7Cmzg==" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmmirror.com/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1633354821467&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", - "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.nlark.com/nan/download/nan-2.15.0.tgz?cache=0&sync_timestamp=1628093719696&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnan%2Fdownload%2Fnan-2.15.0.tgz", - "integrity": "sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4=", - "optional": true - }, - "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz?cache=0&sync_timestamp=1634166241996&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.30.tgz", - "integrity": "sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I=" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.nlark.com/nanomatch/download/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "requires": { - "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.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "native-url": { - "version": "0.2.6", - "resolved": "https://registry.npm.taobao.org/native-url/download/native-url-0.2.6.tgz", - "integrity": "sha1-yhJY9azhaccW/0Tsy922dOEDma4=", - "requires": { - "querystring": "^0.2.0" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.nlark.com/no-case/download/no-case-3.0.4.tgz", - "integrity": "sha1-02H9XJgA9VhVGoNp/A3NRmK2Ek0=", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz", - "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", - "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" - }, - "node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.nlark.com/node-notifier/download/node-notifier-8.0.2.tgz?cache=0&sync_timestamp=1621962325593&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-notifier%2Fdownload%2Fnode-notifier-8.0.2.tgz", - "integrity": "sha1-8xZ6OO8NLIqGaoPjGMG6Dv63AsU=", - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/node-releases/download/node-releases-2.0.1.tgz?cache=0&sync_timestamp=1634806914912&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnode-releases%2Fdownload%2Fnode-releases-2.0.1.tgz", - "integrity": "sha1-PR05XyBPHy8ppUNYuftnh2WtL8U=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.nlark.com/normalize-range/download/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/npm-run-path/download/npm-run-path-4.0.1.tgz?cache=0&sync_timestamp=1633420566316&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/nth-check/download/nth-check-2.0.1.tgz", - "integrity": "sha1-Lv4WL1w9oGoolZ+9PbddvuqfD8I=", - "requires": { - "boolbase": "^1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/num2fraction/download/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz", - "integrity": "sha1-IEh5qePQaP8qVROcLHcngGgaOLc=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1618846992533&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz", - "integrity": "sha1-nc6xRs7dQUig2eUauI00z1CZIrE=" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz?cache=0&sync_timestamp=1613858420069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.5.tgz", - "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115183005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz", - "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmmirror.com/object.entries/download/object.entries-1.1.5.tgz?cache=0&sync_timestamp=1633280509618&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.5.tgz", - "integrity": "sha1-4azdF8TeLNltWghIfPuduE2IGGE=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/object.fromentries/download/object.fromentries-2.0.5.tgz?cache=0&sync_timestamp=1633280506895&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.5.tgz", - "integrity": "sha1-ezeyBRCcIedB5gVyf+iwrV+gglE=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmmirror.com/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.3.tgz?cache=0&sync_timestamp=1633321702182&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha1-siPPOOF/77l6Y8EMkd9yzLOG354=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/object.hasown/download/object.hasown-1.1.0.tgz?cache=0&sync_timestamp=1633322329923&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.hasown%2Fdownload%2Fobject.hasown-1.1.0.tgz", - "integrity": "sha1-cjLtJm800ZfRXKxYgCMvekeQr+U=", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmmirror.com/object.values/download/object.values-1.1.5.tgz?cache=0&sync_timestamp=1633326983597&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.values%2Fdownload%2Fobject.values-1.1.5.tgz", - "integrity": "sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/obuf/download/obuf-1.1.2.tgz", - "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz?cache=0&sync_timestamp=1614930634590&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/on-headers/download/on-headers-1.0.2.tgz", - "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmmirror.com/open/download/open-7.4.2.tgz", - "integrity": "sha1-uBR+Jtzz5CYxbHMAif1x7dKcIyE=", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/opn/download/opn-5.5.0.tgz", - "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - } - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.4", - "resolved": "https://registry.nlark.com/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-5.0.4.tgz?cache=0&sync_timestamp=1624442101760&other_urls=https%3A%2F%2Fregistry.nlark.com%2Foptimize-css-assets-webpack-plugin%2Fdownload%2Foptimize-css-assets-webpack-plugin-5.0.4.tgz", - "integrity": "sha1-hYg8ZSiqoC4wu62ZCMkpJrtS3JA=", - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.9.1.tgz", - "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", - "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-each-series/download/p-each-series-2.2.0.tgz?cache=0&sync_timestamp=1617946660217&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-each-series%2Fdownload%2Fp-each-series-2.2.0.tgz", - "integrity": "sha1-EFqwNXznKyAqiouUkzZyZXteKpo=" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/p-map/download/p-map-4.0.0.tgz?cache=0&sync_timestamp=1635931861684&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz", - "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1635966813736&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", - "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/p-try/download/p-try-2.2.0.tgz?cache=0&sync_timestamp=1633364600466&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.nlark.com/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1627560187062&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", - "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/parallel-transform/download/parallel-transform-1.2.0.tgz", - "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-3.0.4.tgz?cache=0&sync_timestamp=1606867311360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.4.tgz", - "integrity": "sha1-fRf+SqEr3jTUp32RrPtiGcqtAcU=", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz", - "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1636944618780&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz", - "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.nlark.com/parse5/download/parse5-6.0.1.tgz", - "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", - "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/pascal-case/download/pascal-case-3.1.2.tgz", - "integrity": "sha1-tI4O8rmOIF58Ha50fQsVCCN2YOs=", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/pascalcase/download/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", - "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz?cache=0&sync_timestamp=1621947783503&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-1.8.0.tgz", - "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", - "requires": { - "isarray": "0.0.1" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=" - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/pbkdf2/download/pbkdf2-3.1.2.tgz", - "integrity": "sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU=", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pdfast": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/pdfast/download/pdfast-0.2.0.tgz", - "integrity": "sha1-jLxVbhvyUiF3eHwN4uDUNzuohck=" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz", - "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648305056&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pirates/download/pirates-4.0.1.tgz", - "integrity": "sha1-ZDqSyviUVm+RsrmG0sZpUKji+4c=", - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364600466&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/pkg-up/download/pkg-up-3.1.0.tgz?cache=0&sync_timestamp=1636035118070&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-up%2Fdownload%2Fpkg-up-3.1.0.tgz", - "integrity": "sha1-EA7CNcwVDk/UJRlBJZaihRKg3vU=", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.nlark.com/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=", - "requires": { - "ts-pnp": "^1.1.6" - } - }, - "polyline-miter-util": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/polyline-miter-util/download/polyline-miter-util-1.0.1.tgz", - "integrity": "sha1-tpPyOJ6g3tNqa89ezS7OS2kX2Vc=", - "requires": { - "gl-vec2": "^1.0.0" - } - }, - "polyline-normals": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/polyline-normals/download/polyline-normals-2.0.2.tgz", - "integrity": "sha1-oXN+ddjA3MsaWR+csn8J7vS30TU=", - "requires": { - "polyline-miter-util": "^1.0.1" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz", - "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/async/download/async-2.6.3.tgz", - "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz?cache=0&sync_timestamp=1634821260697&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.39.tgz", - "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz", - "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-attribute-case-insensitive/download/postcss-attribute-case-insensitive-4.0.2.tgz", - "integrity": "sha1-2T5GtQRYnpSscnewRjImxoBBqIA=", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^6.0.2" - } - }, - "postcss-browser-comments": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/postcss-browser-comments/download/postcss-browser-comments-3.0.0.tgz?cache=0&sync_timestamp=1619681938425&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-browser-comments%2Fdownload%2Fpostcss-browser-comments-3.0.0.tgz", - "integrity": "sha1-EkjS2TX7cgU8jh9hqEpXKS2fZek=", - "requires": { - "postcss": "^7" - } - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1609689191682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", - "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-color-functional-notation": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/postcss-color-functional-notation/download/postcss-color-functional-notation-2.0.1.tgz?cache=0&sync_timestamp=1631886310445&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha1-Xv03qI+6vrAKKWbR5T2Yztk/dOA=", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-gray": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-color-gray/download/postcss-color-gray-5.0.0.tgz", - "integrity": "sha1-Uyox65CfjaiYzv/ilv3B+GS+hUc=", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-hex-alpha": { - "version": "5.0.3", - "resolved": "https://registry.npmmirror.com/postcss-color-hex-alpha/download/postcss-color-hex-alpha-5.0.3.tgz?cache=0&sync_timestamp=1632321113526&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha1-qNnKTDnUl8lmHjdLnFGJnvD4c4g=", - "requires": { - "postcss": "^7.0.14", - "postcss-values-parser": "^2.0.1" - } - }, - "postcss-color-mod-function": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-color-mod-function/download/postcss-color-mod-function-3.0.3.tgz", - "integrity": "sha1-gWuhRawRzDy2uqkFp1pJ+QPk0x0=", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-rebeccapurple": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-color-rebeccapurple/download/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha1-x6ib6HK7dORbHjAiv+V0iCPm3nc=", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/postcss-colormin/download/postcss-colormin-4.0.3.tgz", - "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1635857664165&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz", - "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-custom-media": { - "version": "7.0.8", - "resolved": "https://registry.npm.taobao.org/postcss-custom-media/download/postcss-custom-media-7.0.8.tgz", - "integrity": "sha1-//0T/+/61zYhvl84cHaiiwApTgw=", - "requires": { - "postcss": "^7.0.14" - } - }, - "postcss-custom-properties": { - "version": "8.0.11", - "resolved": "https://registry.nlark.com/postcss-custom-properties/download/postcss-custom-properties-8.0.11.tgz?cache=0&sync_timestamp=1631899912337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz", - "integrity": "sha1-LWF3LW6S8i9eDVJgLfj65G+jDZc=", - "requires": { - "postcss": "^7.0.17", - "postcss-values-parser": "^2.0.1" - } - }, - "postcss-custom-selectors": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-custom-selectors/download/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha1-ZIWMbrLs/y+0HQsoyd17PbTef7o=", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-dir-pseudo-class": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-dir-pseudo-class/download/postcss-dir-pseudo-class-5.0.0.tgz?cache=0&sync_timestamp=1631886320458&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha1-bjpBd9Dts6vMhf22+7HCbauuq6I=", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-double-position-gradients": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/postcss-double-position-gradients/download/postcss-double-position-gradients-1.0.0.tgz?cache=0&sync_timestamp=1631886323118&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha1-/JJ9Uv3ciWyzooEuvF3xR+EQUi4=", - "requires": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-env-function": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/postcss-env-function/download/postcss-env-function-2.0.2.tgz", - "integrity": "sha1-Dz49PFfwlKksK69LYkHwsNpTZdc=", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/postcss-flexbugs-fixes/download/postcss-flexbugs-fixes-4.2.1.tgz", - "integrity": "sha1-khimUknzCJfeqxAzrO2FeFYqZpA=", - "requires": { - "postcss": "^7.0.26" - } - }, - "postcss-focus-visible": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/postcss-focus-visible/download/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha1-R30QcROt5gJLFBKDF63ivR4XBG4=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-focus-within": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/postcss-focus-within/download/postcss-focus-within-3.0.0.tgz?cache=0&sync_timestamp=1632319342556&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz", - "integrity": "sha1-djuHiFls7puHTJmSAc3egGWe9oA=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-font-variant": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-font-variant/download/postcss-font-variant-4.0.1.tgz", - "integrity": "sha1-QtTAqzCJT2D5ixdWHrXAMh9QJkE=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-gap-properties": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/postcss-gap-properties/download/postcss-gap-properties-2.0.0.tgz?cache=0&sync_timestamp=1631886308817&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz", - "integrity": "sha1-QxwZKrPtlqPD0J8v9hWWD5AsFxU=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-image-set-function": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/postcss-image-set-function/download/postcss-image-set-function-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz", - "integrity": "sha1-KJIKLymUW+1MMZjX32SW1BDT8og=", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-initial": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/postcss-initial/download/postcss-initial-3.0.4.tgz?cache=0&sync_timestamp=1618435188850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.4.tgz", - "integrity": "sha1-nTIGmhBTH+Lsr6C2rHUO4Lx+/FM=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-lab-function": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/postcss-lab-function/download/postcss-lab-function-2.0.1.tgz", - "integrity": "sha1-u1GmhWzRIomrSuINseOCHvE9fS4=", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/postcss-load-config/download/postcss-load-config-2.1.2.tgz", - "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-5.2.1.tgz", - "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1636944618780&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/postcss-loader/download/postcss-loader-3.0.0.tgz", - "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-logical": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/postcss-logical/download/postcss-logical-3.0.0.tgz", - "integrity": "sha1-JJXQ+LgunyYnJfdflAGzTntF1bU=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-media-minmax": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-media-minmax/download/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha1-t1u2y8IXyKxJQz4S8iBIgUpPXtU=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1636226949214&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz", - "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1635856887200&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", - "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", - "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587625149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=", - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz?cache=0&sync_timestamp=1602586215124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-3.0.0.tgz", - "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "postcss-nesting": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/postcss-nesting/download/postcss-nesting-7.0.1.tgz?cache=0&sync_timestamp=1635765807038&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz", - "integrity": "sha1-tQrXt/AXPlteOIDDUBNEcD4EwFI=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-normalize": { - "version": "8.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize/download/postcss-normalize-8.0.1.tgz", - "integrity": "sha1-kOgKd2PX/fLaby8Pgr6DLOT2Z3Y=", - "requires": { - "@csstools/normalize.css": "^10.1.0", - "browserslist": "^4.6.2", - "postcss": "^7.0.17", - "postcss-browser-comments": "^3.0.0", - "sanitize.css": "^10.0.0" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-3.3.0.tgz", - "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=" - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz", - "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-overflow-shorthand": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/postcss-overflow-shorthand/download/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha1-MezzUOnG9t3CUKePDD4RHzLdTDA=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-page-break": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/postcss-page-break/download/postcss-page-break-2.0.0.tgz", - "integrity": "sha1-rdUtDgpSjKvmr+6LRuKrsnffRr8=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-place": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-place/download/postcss-place-4.0.1.tgz", - "integrity": "sha1-6fOdM9LcWE5G7h20Wtt3yp0dzGI=", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-preset-env": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/postcss-preset-env/download/postcss-preset-env-6.7.0.tgz", - "integrity": "sha1-w03az4+QI4OzWtHgMPF49M3xGKU=", - "requires": { - "autoprefixer": "^9.6.1", - "browserslist": "^4.6.4", - "caniuse-lite": "^1.0.30000981", - "css-blank-pseudo": "^0.1.4", - "css-has-pseudo": "^0.10.0", - "css-prefers-color-scheme": "^3.1.1", - "cssdb": "^4.4.0", - "postcss": "^7.0.17", - "postcss-attribute-case-insensitive": "^4.0.1", - "postcss-color-functional-notation": "^2.0.1", - "postcss-color-gray": "^5.0.0", - "postcss-color-hex-alpha": "^5.0.3", - "postcss-color-mod-function": "^3.0.3", - "postcss-color-rebeccapurple": "^4.0.1", - "postcss-custom-media": "^7.0.8", - "postcss-custom-properties": "^8.0.11", - "postcss-custom-selectors": "^5.1.2", - "postcss-dir-pseudo-class": "^5.0.0", - "postcss-double-position-gradients": "^1.0.0", - "postcss-env-function": "^2.0.2", - "postcss-focus-visible": "^4.0.0", - "postcss-focus-within": "^3.0.0", - "postcss-font-variant": "^4.0.0", - "postcss-gap-properties": "^2.0.0", - "postcss-image-set-function": "^3.0.1", - "postcss-initial": "^3.0.0", - "postcss-lab-function": "^2.0.1", - "postcss-logical": "^3.0.0", - "postcss-media-minmax": "^4.0.0", - "postcss-nesting": "^7.0.0", - "postcss-overflow-shorthand": "^2.0.0", - "postcss-page-break": "^2.0.0", - "postcss-place": "^4.0.1", - "postcss-pseudo-class-any-link": "^6.0.0", - "postcss-replace-overflow-wrap": "^3.0.0", - "postcss-selector-matches": "^4.0.0", - "postcss-selector-not": "^4.0.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "6.0.0", - "resolved": "https://registry.nlark.com/postcss-pseudo-class-any-link/download/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha1-LtPu05OzcCh53sSocDKyENrrBNE=", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-replace-overflow-wrap": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/postcss-replace-overflow-wrap/download/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha1-YbNg/9rtyoTHyRjSsPDQ6lWasBw=", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-safe-parser": { - "version": "5.0.2", - "resolved": "https://registry.nlark.com/postcss-safe-parser/download/postcss-safe-parser-5.0.2.tgz", - "integrity": "sha1-RZ3Sffa8K6ZGCIJLo55F2s9ehS0=", - "requires": { - "postcss": "^8.1.0" - }, - "dependencies": { - "postcss": { - "version": "8.3.11", - "resolved": "https://registry.npmmirror.com/postcss/download/postcss-8.3.11.tgz?cache=0&sync_timestamp=1634821260697&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss%2Fdownload%2Fpostcss-8.3.11.tgz", - "integrity": "sha1-w77KfqgRzV4cSj7G0udZnvH4+Fg=", - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^0.6.2" - } - } - } - }, - "postcss-selector-matches": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-selector-matches/download/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha1-ccgkj5F7osyTA3yWN+4JxkQ2/P8=", - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "postcss-selector-not": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-selector-not/download/postcss-selector-not-4.0.1.tgz", - "integrity": "sha1-JjAW7vHPIZ4K3pqRN4D8H0ggTL8=", - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/postcss-svgo/download/postcss-svgo-4.0.3.tgz", - "integrity": "sha1-NDos26yVBdQWJD1Jb3JPOIlMlB4=", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", - "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=" - }, - "postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/postcss-values-parser/download/postcss-values-parser-2.0.1.tgz", - "integrity": "sha1-2otHLZAdoeIFtHvcmGN7np5VDl8=", - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/prepend-http/download/prepend-http-1.0.4.tgz?cache=0&sync_timestamp=1628547381568&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprepend-http%2Fdownload%2Fprepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npm.taobao.org/pretty-bytes/download/pretty-bytes-5.6.0.tgz?cache=0&sync_timestamp=1613916344909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.6.0.tgz", - "integrity": "sha1-NWJW9kOAR3PIL2RyP+eMksYr6us=" - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/pretty-error/download/pretty-error-2.1.2.tgz?cache=0&sync_timestamp=1635212589197&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.2.tgz", - "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/pretty-format/download/pretty-format-26.6.2.tgz", - "integrity": "sha1-41wnBfFMt/4v6U+geDRbREEg/JM=", - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmmirror.com/react-is/download/react-is-17.0.2.tgz?cache=0&sync_timestamp=1636734285994&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-is%2Fdownload%2Freact-is-17.0.2.tgz", - "integrity": "sha1-5pHUqOnHiTZWVVOas3J2Kw77VPA=" - } - } - }, - "probe.gl": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/probe.gl/download/probe.gl-3.4.1.tgz", - "integrity": "sha1-iNhin7rFpicEnW/ca4w2TVbwCBU=", - "requires": { - "@babel/runtime": "^7.0.0", - "@probe.gl/stats": "3.4.1" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" - }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npm.taobao.org/promise/download/promise-8.1.0.tgz", - "integrity": "sha1-aXwlw9/nQ13Xn81Yw4oTWIjq8F4=", - "requires": { - "asap": "~2.0.6" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/prompts/download/prompts-2.4.0.tgz", - "integrity": "sha1-SqXeByOiMdHukSHED99mPfc/Ydc=", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npm.taobao.org/prop-types/download/prop-types-15.7.2.tgz", - "integrity": "sha1-UsQedbjIfnK52TYOAga5ncv/psU=", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.nlark.com/proxy-addr/download/proxy-addr-2.0.7.tgz", - "integrity": "sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", - "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", - "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.nlark.com/pumpify/download/pumpify-1.5.1.tgz", - "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.nlark.com/q/download/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.10.1", - "resolved": "https://registry.nlark.com/qs/download/qs-6.10.1.tgz", - "integrity": "sha1-STFIL6jWR6Wqt5nFJx0hM7mB+2o=", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.nlark.com/query-string/download/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/querystring/download/querystring-0.2.1.tgz", - "integrity": "sha1-QNd2FbsJ0WkCqFw+OKqLXtdhwt0=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz", - "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz", - "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz", - "integrity": "sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/randomfill/download/randomfill-1.0.4.tgz", - "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.nlark.com/range-parser/download/range-parser-1.2.1.tgz", - "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.nlark.com/raw-body/download/raw-body-2.4.0.tgz", - "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/bytes/download/bytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" - } - } - }, - "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-app-polyfill": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz", - "integrity": "sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA==", - "requires": { - "core-js": "^3.6.5", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "whatwg-fetch": "^3.4.1" - } - }, - "react-dev-utils": { - "version": "11.0.4", - "resolved": "https://registry.npmmirror.com/react-dev-utils/download/react-dev-utils-11.0.4.tgz?cache=0&sync_timestamp=1633373952222&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-11.0.4.tgz", - "integrity": "sha1-p8y2Alehyi4O/nqD445nANF6o3o=", - "requires": { - "@babel/code-frame": "7.10.4", - "address": "1.1.2", - "browserslist": "4.14.2", - "chalk": "2.4.2", - "cross-spawn": "7.0.3", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.1.0", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "4.1.6", - "global-modules": "2.0.0", - "globby": "11.0.1", - "gzip-size": "5.1.1", - "immer": "8.0.1", - "is-root": "2.1.0", - "loader-utils": "2.0.0", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "prompts": "2.4.0", - "react-error-overlay": "^6.0.9", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz", - "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "browserslist": { - "version": "4.14.2", - "resolved": "https://registry.npmmirror.com/browserslist/download/browserslist-4.14.2.tgz", - "integrity": "sha1-GzzsRYobqHWIzF6b5i8ZttSIE84=", - "requires": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" - } - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz", - "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=" - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.nlark.com/globby/download/globby-11.0.1.tgz?cache=0&sync_timestamp=1629801109090&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz", - "integrity": "sha1-mivxB6Bo8//qvEmtcCx57ejP01c=", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-2.0.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmmirror.com/node-releases/download/node-releases-1.1.77.tgz?cache=0&sync_timestamp=1634806914912&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.77.tgz", - "integrity": "sha1-ULDP7ehV3TdOdYW/Io/zTlfBwy4=" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmmirror.com/react-dom/download/react-dom-16.14.0.tgz?cache=0&sync_timestamp=1636734309640&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-dom%2Fdownload%2Freact-dom-16.14.0.tgz", - "integrity": "sha1-etg47Cmnd/s8dcOhkPZhz5Kri4k=", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-draggable": { - "version": "4.4.4", - "resolved": "https://registry.nlark.com/react-draggable/download/react-draggable-4.4.4.tgz", - "integrity": "sha1-WybZmWvmPTLShaQm9BBV3oflmy8=", - "requires": { - "clsx": "^1.1.1", - "prop-types": "^15.6.0" - } - }, - "react-error-overlay": { - "version": "6.0.9", - "resolved": "https://registry.npmmirror.com/react-error-overlay/download/react-error-overlay-6.0.9.tgz?cache=0&sync_timestamp=1633373944263&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-error-overlay%2Fdownload%2Freact-error-overlay-6.0.9.tgz", - "integrity": "sha1-PHQwEMk1lgjDdezWvHbzXZOZWwo=" - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmmirror.com/react-is/download/react-is-16.13.1.tgz?cache=0&sync_timestamp=1636734285994&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz", - "integrity": "sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ=" - }, - "react-monaco-editor": { - "version": "0.40.0", - "resolved": "https://registry.npmmirror.com/react-monaco-editor/download/react-monaco-editor-0.40.0.tgz", - "integrity": "sha1-8bAhsylSz8Y6S/JmH9IPYbK4MJ8=", - "requires": { - "monaco-editor": "*", - "prop-types": "^15.7.2" - } - }, - "react-refresh": { - "version": "0.8.3", - "resolved": "https://registry.npmmirror.com/react-refresh/download/react-refresh-0.8.3.tgz?cache=0&sync_timestamp=1636734515235&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-refresh%2Fdownload%2Freact-refresh-0.8.3.tgz", - "integrity": "sha1-ch1GV2ctQAxePHXQY8SoX7LV1o8=" - }, - "react-router": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/react-router/download/react-router-5.2.1.tgz", - "integrity": "sha1-TS5OnVrpQlCRhFuNvG2dJ2I5d00=", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/mini-create-react-context/download/mini-create-react-context-0.4.1.tgz?cache=0&sync_timestamp=1603390284123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.1.tgz", - "integrity": "sha1-ByFxVhv9ySLaCKYMIZekl8wtHV4=", - "requires": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - } - } - } - }, - "react-router-dom": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/react-router-dom/download/react-router-dom-5.3.0.tgz?cache=0&sync_timestamp=1636499761778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.3.0.tgz", - "integrity": "sha1-2hv7U1oOiacSqTuX3Xb0etHzI2M=", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.1", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "react-scripts": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/react-scripts/download/react-scripts-4.0.3.tgz", - "integrity": "sha1-scr+18P6YD52KLoPGHeHlky100U=", - "requires": { - "@babel/core": "7.12.3", - "@pmmmwh/react-refresh-webpack-plugin": "0.4.3", - "@svgr/webpack": "5.5.0", - "@typescript-eslint/eslint-plugin": "^4.5.0", - "@typescript-eslint/parser": "^4.5.0", - "babel-eslint": "^10.1.0", - "babel-jest": "^26.6.0", - "babel-loader": "8.1.0", - "babel-plugin-named-asset-import": "^0.3.7", - "babel-preset-react-app": "^10.0.0", - "bfj": "^7.0.2", - "camelcase": "^6.1.0", - "case-sensitive-paths-webpack-plugin": "2.3.0", - "css-loader": "4.3.0", - "dotenv": "8.2.0", - "dotenv-expand": "5.1.0", - "eslint": "^7.11.0", - "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest": "^24.1.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "^4.2.0", - "eslint-plugin-testing-library": "^3.9.2", - "eslint-webpack-plugin": "^2.5.2", - "file-loader": "6.1.1", - "fs-extra": "^9.0.1", - "fsevents": "^2.1.3", - "html-webpack-plugin": "4.5.0", - "identity-obj-proxy": "3.0.0", - "jest": "26.6.0", - "jest-circus": "26.6.0", - "jest-resolve": "26.6.0", - "jest-watch-typeahead": "0.6.1", - "mini-css-extract-plugin": "0.11.3", - "optimize-css-assets-webpack-plugin": "5.0.4", - "pnp-webpack-plugin": "1.6.4", - "postcss-flexbugs-fixes": "4.2.1", - "postcss-loader": "3.0.0", - "postcss-normalize": "8.0.1", - "postcss-preset-env": "6.7.0", - "postcss-safe-parser": "5.0.2", - "prompts": "2.4.0", - "react-app-polyfill": "^2.0.0", - "react-dev-utils": "^11.0.3", - "react-refresh": "^0.8.3", - "resolve": "1.18.1", - "resolve-url-loader": "^3.1.2", - "sass-loader": "^10.0.5", - "semver": "7.3.2", - "style-loader": "1.3.0", - "terser-webpack-plugin": "4.2.3", - "ts-pnp": "1.2.0", - "url-loader": "4.1.1", - "webpack": "4.44.2", - "webpack-dev-server": "3.11.1", - "webpack-manifest-plugin": "2.2.0", - "workbox-webpack-plugin": "5.1.4" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmmirror.com/@babel/core/download/@babel/core-7.12.3.tgz?cache=0&sync_timestamp=1635560662864&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.3.tgz", - "integrity": "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - } - } - } - } - }, - "react-tsparticles": { - "version": "1.37.5", - "resolved": "https://registry.npmjs.org/react-tsparticles/-/react-tsparticles-1.37.5.tgz", - "integrity": "sha512-Vl+rg3C+vsrek675x7OHBbLLZLJ0dZZjV3OhjT9NiKhdK+NcxNDB2CL3INsSZIv99sln5DRgsxdL3GYrZtqsqg==", - "requires": { - "fast-deep-equal": "^3.1.3", - "tsparticles": "^1.37.5" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-5.2.0.tgz?cache=0&sync_timestamp=1628984780649&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg%2Fdownload%2Fread-pkg-5.2.0.tgz", - "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz", - "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/read-pkg-up/download/read-pkg-up-7.0.1.tgz", - "integrity": "sha1-86YTV1hFlzOuK5VjgFbhhU5+9Qc=", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=" - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.nlark.com/readdirp/download/readdirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/recursive-readdir/download/recursive-readdir-2.2.2.tgz", - "integrity": "sha1-mUb7MnThYo3m42svZxSVO0hFCU8=", - "requires": { - "minimatch": "3.0.4" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz", - "integrity": "sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag=" - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218378158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", - "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=" - }, - "regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.nlark.com/regenerate-unicode-properties/download/regenerate-unicode-properties-9.0.0.tgz?cache=0&sync_timestamp=1631617208210&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha1-VNCccRXh9T3CMUqXSzLBw0Tv4yY=", - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz?cache=0&sync_timestamp=1626992969133&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.9.tgz", - "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.nlark.com/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1627057533376&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", - "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/regex-not/download/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npm.taobao.org/regex-parser/download/regex-parser-2.2.11.tgz", - "integrity": "sha1-OzfskEnhlHmAboeMq+fByoPM/lg=" - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.nlark.com/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623668860843&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz", - "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=" - }, - "regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.nlark.com/regexpu-core/download/regexpu-core-4.8.0.tgz?cache=0&sync_timestamp=1631619101495&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.8.0.tgz", - "integrity": "sha1-5WBbo2G2excYR4UBMnUC9EeamPA=", - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmmirror.com/regjsgen/download/regjsgen-0.5.2.tgz", - "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=" - }, - "regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.nlark.com/regjsparser/download/regjsparser-0.7.0.tgz", - "integrity": "sha1-prZntUyIXhi1JVTLSWDvcRh+mWg=", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.nlark.com/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "regl": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/regl/download/regl-1.7.0.tgz", - "integrity": "sha1-DRhUMQRKNWv4Dpt3WxG5Ne8nRtM=" - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/renderkid/download/renderkid-2.0.7.tgz?cache=0&sync_timestamp=1635212582997&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frenderkid%2Fdownload%2Frenderkid-2.0.7.tgz", - "integrity": "sha1-Rk8namvc7mBvShWZP5sp/HTKhgk=", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.nlark.com/repeat-element/download/repeat-element-1.1.4.tgz", - "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/require-directory/download/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz", - "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" - }, - "resolve": { - "version": "1.18.1", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.18.1.tgz", - "integrity": "sha1-AY/LLFsgfSpkJK7jYcWiZtqPQTA=", - "requires": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-3.0.0.tgz", - "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz", - "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/resolve-pathname/download/resolve-pathname-3.0.0.tgz", - "integrity": "sha1-mdAiJNPPJjaJvsuzk7xWAxMCXc0=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/resolve-url/download/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "resolve-url-loader": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/resolve-url-loader/download/resolve-url-loader-3.1.4.tgz", - "integrity": "sha1-PBbK6+C5+uqcfMJS+knSNTxBIyA=", - "requires": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.36", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1624045508580&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", - "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.2.3.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.2.3.tgz", - "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.36.tgz?cache=0&sync_timestamp=1634821260697&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.36.tgz", - "integrity": "sha1-BW+M/6k5ZiqPWQWVDAfVKFZE38s=", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npm.taobao.org/resumer/download/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { - "through": "~2.3.4" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.nlark.com/retry/download/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz", - "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=" - }, - "rework": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/rework/download/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "requires": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-0.3.5.tgz?cache=0&sync_timestamp=1624045508580&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" - } - } - }, - "rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/rework-visit/download/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", - "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rollup": { - "version": "0.25.8", - "resolved": "https://registry.npmmirror.com/rollup/download/rollup-0.25.8.tgz?cache=0&sync_timestamp=1636694254448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frollup%2Fdownload%2Frollup-0.25.8.tgz", - "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", - "requires": { - "chalk": "^1.1.1", - "minimist": "^1.2.0", - "source-map-support": "^0.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "source-map": { - "version": "0.1.32", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.1.32.tgz", - "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", - "requires": { - "amdefine": ">=0.0.4" - } - }, - "source-map-support": { - "version": "0.3.3", - "resolved": "https://registry.nlark.com/source-map-support/download/source-map-support-0.3.3.tgz", - "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", - "requires": { - "source-map": "0.1.32" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npm.taobao.org/rollup-pluginutils/download/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha1-cvKvB0i1kjZNvTOJ5gDlqURKNR4=", - "requires": { - "estree-walker": "^0.6.1" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz", - "integrity": "sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ=" - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz", - "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/rw/download/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/sane/download/sane-4.1.0.tgz", - "integrity": "sha1-7Ygf2SJzOmxGG8GJ3CtsAG8//e0=", - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/execa/download/execa-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-1.1.0.tgz?cache=0&sync_timestamp=1628592856164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&sync_timestamp=1633420566316&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-1.0.0.tgz?cache=0&sync_timestamp=1628896304371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "sanitize.css": { - "version": "10.0.0", - "resolved": "https://registry.nlark.com/sanitize.css/download/sanitize.css-10.0.0.tgz", - "integrity": "sha1-tcslR+lthimmCUdURmUkOx3DZXo=" - }, - "sass-loader": { - "version": "10.2.0", - "resolved": "https://registry.npmmirror.com/sass-loader/download/sass-loader-10.2.0.tgz?cache=0&sync_timestamp=1635385383233&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsass-loader%2Fdownload%2Fsass-loader-10.2.0.tgz", - "integrity": "sha1-PWTBWQ+REBOz+kigsiqD1eFJRxY=", - "requires": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/saxes/download/saxes-5.0.1.tgz?cache=0&sync_timestamp=1636312689375&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsaxes%2Fdownload%2Fsaxes-5.0.1.tgz", - "integrity": "sha1-7rq5U/o7dgjb6U5drbFciI+maW0=", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmmirror.com/scheduler/download/scheduler-0.19.1.tgz", - "integrity": "sha1-Tz4u0sGn1laB9MhU+oxaHMtA8ZY=", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-2.7.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.1.tgz", - "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "scroll-into-view-if-needed": { - "version": "2.2.28", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/download/scroll-into-view-if-needed-2.2.28.tgz", - "integrity": "sha1-WhWy9YpSZCyIyOylhGROAXA9ZFo=", - "requires": { - "compute-scroll-into-view": "^1.0.17" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.11", - "resolved": "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz?cache=0&sync_timestamp=1620160245612&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.11.tgz", - "integrity": "sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k=", - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz", - "integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg=" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", - "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-5.0.1.tgz?cache=0&sync_timestamp=1624284098038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-5.0.1.tgz", - "integrity": "sha1-eIbshIBJpGJGepfT2Rjrsqr5NPQ=", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmmirror.com/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1636932182141&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", - "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/set-value/download/set-value-2.0.1.tgz?cache=0&sync_timestamp=1631437777668&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/setimmediate/download/setimmediate-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsetimmediate%2Fdownload%2Fsetimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", - "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/shallowequal/download/shallowequal-1.1.0.tgz?cache=0&sync_timestamp=1616049083960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz", - "integrity": "sha1-GI1SHelbkIdAT9TctosT3wrk5/g=" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz?cache=0&sync_timestamp=1628896304371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=" - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmmirror.com/shell-quote/download/shell-quote-1.7.2.tgz?cache=0&sync_timestamp=1634798222474&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fshell-quote%2Fdownload%2Fshell-quote-1.7.2.tgz", - "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=" - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz", - "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", - "optional": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.4.tgz", - "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.5.tgz", - "integrity": "sha1-nj6MwMdamUcrRDIQM6dwLnc4JS8=" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/simple-swizzle/download/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", - "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=" - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/sisteransi/download/sisteransi-1.0.5.tgz", - "integrity": "sha1-E01oEpd1ZDfMBcoBNw06elcQde0=" - }, - "size-sensor": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/size-sensor/download/size-sensor-1.0.1.tgz", - "integrity": "sha1-+E5GIG0+JZ+v8dVI5LO+ypMhnbs=" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz", - "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=" - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/slice-ansi/download/slice-ansi-4.0.0.tgz", - "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/snapdragon-util/download/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.21.tgz?cache=0&sync_timestamp=1612938804584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.21.tgz", - "integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=", - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=" - } - } - }, - "sockjs-client": { - "version": "1.5.2", - "resolved": "https://registry.nlark.com/sockjs-client/download/sockjs-client-1.5.2.tgz", - "integrity": "sha1-S8SMLanOR2nxnccjOWtQ9cEjMKM=", - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.3" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/source-list-map/download/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmmirror.com/source-map-js/download/source-map-js-0.6.2.tgz?cache=0&sync_timestamp=1636401089874&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-0.6.2.tgz", - "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz", - "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.nlark.com/source-map-support/download/source-map-support-0.5.20.tgz", - "integrity": "sha1-EhZgifj15ejFaSazd2Mzkt0stsk=", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz", - "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=" - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.nlark.com/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz", - "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz", - "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", - "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz?cache=0&sync_timestamp=1618847153695&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz", - "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.nlark.com/spdx-license-ids/download/spdx-license-ids-3.0.10.tgz?cache=0&sync_timestamp=1628483195107&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.10.tgz", - "integrity": "sha1-DZvszN5wA9bGWNSH3UijLwvzAUs=" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/spdy/download/spdy-4.0.2.tgz", - "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", - "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/split-string/download/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.nlark.com/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1621364918494&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", - "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", - "requires": { - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/stable/download/stable-0.1.8.tgz", - "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=" - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.nlark.com/stack-utils/download/stack-utils-2.0.5.tgz?cache=0&sync_timestamp=1631896368766&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstack-utils%2Fdownload%2Fstack-utils-2.0.5.tgz", - "integrity": "sha1-0lJl/KmVFUZZ27+6O0klR3jS/dU=", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz", - "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=" - } - } - }, - "stackframe": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz", - "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654066899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", - "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.nlark.com/stream-http/download/stream-http-2.8.3.tgz", - "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", - "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - } - } - }, - "string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/string-convert/download/string-convert-0.2.1.tgz", - "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/string-length/download/string-length-4.0.2.tgz", - "integrity": "sha1-qKjce9XBqCubPIuH4SX2aHG25Xo=", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/string-natural-compare/download/string-natural-compare-3.0.1.tgz", - "integrity": "sha1-ekLVhHRFSWN1no6LeuY9ccHn/fQ=" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-4.2.3.tgz", - "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" - } - } - }, - "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/string.prototype.matchall/download/string.prototype.matchall-4.0.6.tgz?cache=0&sync_timestamp=1633405409079&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.6.tgz", - "integrity": "sha1-Wrtdq8lMew6iOA9lumELOlRLFfo=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trim": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/string.prototype.trim/download/string.prototype.trim-1.2.5.tgz", - "integrity": "sha1-pYe8yL+tjLmCmld/XeMN0XDBaCw=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127318238&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz", - "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/stringify-object/download/stringify-object-3.3.0.tgz?cache=0&sync_timestamp=1629674903267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz", - "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-4.0.0.tgz?cache=0&sync_timestamp=1618599642133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-4.0.0.tgz", - "integrity": "sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg=" - }, - "strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/strip-comments/download/strip-comments-1.0.2.tgz", - "integrity": "sha1-grnEXn8FhzvuU/NxaK+TCqNoZ50=", - "requires": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/strip-eof/download/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz?cache=0&sync_timestamp=1620046435959&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-final-newline%2Fdownload%2Fstrip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz", - "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=" - }, - "style-loader": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/style-loader/download/style-loader-1.3.0.tgz?cache=0&sync_timestamp=1634872454568&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstyle-loader%2Fdownload%2Fstyle-loader-1.3.0.tgz", - "integrity": "sha1-gotKOzt+eqWEfOe66eh0USEUJJ4=", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0" - } - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&sync_timestamp=1621449783387&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstylehacks%2Fdownload%2Fstylehacks-4.0.3.tgz", - "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/supports-hyperlinks/download/supports-hyperlinks-2.2.0.tgz?cache=0&sync_timestamp=1617752134357&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-hyperlinks%2Fdownload%2Fsupports-hyperlinks-2.2.0.tgz", - "integrity": "sha1-T3e0JIh2WJF3S3DHm6vYf5vVlLs=", - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/svg-parser/download/svg-parser-2.0.4.tgz", - "integrity": "sha1-/cLinhOVFzYUC3bLEiyO5mMOtrU=" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1635850455786&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", - "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz", - "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmmirror.com/css-what/download/css-what-3.4.2.tgz", - "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=" - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256858583&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", - "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=" - } - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/nth-check/download/nth-check-1.0.2.tgz", - "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", - "requires": { - "boolbase": "~1.0.0" - } - } - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz", - "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=" - }, - "table": { - "version": "6.7.3", - "resolved": "https://registry.npmmirror.com/table/download/table-6.7.3.tgz?cache=0&sync_timestamp=1636037112686&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftable%2Fdownload%2Ftable-6.7.3.tgz", - "integrity": "sha1-JVOIQ5cVpzg5G9LuTLyomk0Fqbc=", - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.8.0", - "resolved": "https://registry.npmmirror.com/ajv/download/ajv-8.8.0.tgz?cache=0&sync_timestamp=1636828403489&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-8.8.0.tgz", - "integrity": "sha512-L+cJ/+pkdICMueKR6wIx3VP2fjIx3yAhuvadUv/osv9yFD7OVZy442xFF+Oeu3ZvmhBGQzoF6mTSt+LUWBmGQg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-1.0.0.tgz", - "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=" - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/tapable/download/tapable-1.1.3.tgz", - "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=" - }, - "tape": { - "version": "4.14.0", - "resolved": "https://registry.nlark.com/tape/download/tape-4.14.0.tgz?cache=0&sync_timestamp=1628314883765&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftape%2Fdownload%2Ftape-4.14.0.tgz", - "integrity": "sha1-5NRgl+EpgXF1uQkl8jhfaxvPqCY=", - "requires": { - "call-bind": "~1.0.2", - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "glob": "~7.1.7", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.1.3", - "minimist": "~1.2.5", - "object-inspect": "~1.11.0", - "resolve": "~1.20.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.4", - "through": "~2.3.8" - }, - "dependencies": { - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmmirror.com/glob/download/glob-7.1.7.tgz", - "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.nlark.com/tar/download/tar-6.1.11.tgz", - "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" - } - } - }, - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/temp-dir/download/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" - }, - "tempy": { - "version": "0.3.0", - "resolved": "https://registry.nlark.com/tempy/download/tempy-0.3.0.tgz?cache=0&sync_timestamp=1629290041914&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz", - "integrity": "sha1-b2xbKVaVoWEwmWrVqwGovXJui/g=", - "requires": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.3.1.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz", - "integrity": "sha1-Y9ANIE4FlHT+Xht8ARESu9HcKeE=" - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/terminal-link/download/terminal-link-2.1.1.tgz?cache=0&sync_timestamp=1618724423731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterminal-link%2Fdownload%2Fterminal-link-2.1.1.tgz", - "integrity": "sha1-FKZKJ6s8Dfkz6lRvulXy0HjtyZQ=", - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.nlark.com/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1632229770103&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", - "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "terser-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/download/terser-webpack-plugin-4.2.3.tgz?cache=0&sync_timestamp=1636385901001&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-4.2.3.tgz", - "integrity": "sha1-KNrvSoO9F8HbApcHCtwH/Iz8apo=", - "requires": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-3.3.2.tgz", - "integrity": "sha1-swxbbv8HMHMa6pu9nb7L2AJW1ks=", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz", - "integrity": "sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "requires": { - "semver": "^6.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz", - "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", - "requires": { - "find-up": "^4.0.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - }, - "terser": { - "version": "5.9.0", - "resolved": "https://registry.nlark.com/terser/download/terser-5.9.0.tgz?cache=0&sync_timestamp=1632229770103&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser%2Fdownload%2Fterser-5.9.0.tgz", - "integrity": "sha1-R9bmKaUiljJA8rVfyqPJkIPSw1E=", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=" - } - } - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.nlark.com/test-exclude/download/test-exclude-6.0.0.tgz", - "integrity": "sha1-BKhphmHYBepvopO2y55jrARO8V4=", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/throat/download/throat-5.0.0.tgz", - "integrity": "sha1-xRmSNYA6rRh1SmZ9ZZtecs4Wdks=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.nlark.com/through2/download/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", - "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=" - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz", - "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.nlark.com/timsort/download/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/tiny-invariant/download/tiny-invariant-1.2.0.tgz", - "integrity": "sha1-oRQfhrZyqRSMcul4oZpzublKFak=" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/tiny-warning/download/tiny-warning-1.0.3.tgz", - "integrity": "sha1-lKMNtFPfTGQ9D9VmBg1gqHXYR1Q=" - }, - "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.2.tgz", - "integrity": "sha1-P2pNEHGtB2dtf6Ry4frECnGdiAM=" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/tmpl/download/tmpl-1.0.5.tgz?cache=0&sync_timestamp=1630997323959&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftmpl%2Fdownload%2Ftmpl-1.0.5.tgz", - "integrity": "sha1-hoPguQK7nCDE9ybjwLafNlGMB8w=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "requires": { - "is-number": "^7.0.0" - } - }, - "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/toggle-selection/download/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/toidentifier/download/toidentifier-1.0.0.tgz?cache=0&sync_timestamp=1636938521998&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-4.0.0.tgz", - "integrity": "sha1-2CIjTuyogvmR8PkIgkrSYi3b7OQ=", - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" - } - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/tr46/download/tr46-2.1.0.tgz", - "integrity": "sha1-+oeqgcpdWUHajL8fm3SdyWmk4kA=", - "requires": { - "punycode": "^2.1.1" - } - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", - "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=" - }, - "ts-pnp": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/ts-pnp/download/ts-pnp-1.2.0.tgz", - "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=" - }, - "tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.nlark.com/tsconfig-paths/download/tsconfig-paths-3.11.0.tgz?cache=0&sync_timestamp=1629839709860&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.11.0.tgz", - "integrity": "sha1-lUwf6XPaYznHjgawPOLkiBC2XzY=", - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz?cache=0&sync_timestamp=1618599642133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - } - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz", - "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=" - }, - "tsparticles": { - "version": "1.37.5", - "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.37.5.tgz", - "integrity": "sha512-BQBRnnKKhKH2POwxuHzPiuL/zPUjuR5QmMCFQ2vm3fadE2k4vqmH099m1R9R+nt0lTvWL6SCS0hYQQkqUjsMXg==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npm.taobao.org/tsutils/download/tsutils-3.21.0.tgz?cache=0&sync_timestamp=1615138426726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.21.0.tgz", - "integrity": "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=", - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" - } - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.nlark.com/tty-browserify/download/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz", - "integrity": "sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A=" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.nlark.com/type-detect/download/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.21.3.tgz?cache=0&sync_timestamp=1636459972076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.21.3.tgz", - "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", - "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npm.taobao.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmmirror.com/typescript/download/typescript-4.4.4.tgz?cache=0&sync_timestamp=1636874454791&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftypescript%2Fdownload%2Ftypescript-4.4.4.tgz", - "integrity": "sha1-LNAaGh8WBwTTEB/VpY/w+fy4Aww=", - "peer": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmmirror.com/uglify-js/download/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-1.2.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/unbox-primitive/download/unbox-primitive-1.0.1.tgz", - "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha1-MBrNxSVjFnDTn2FG4Od/9rvevdw=" - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-2.0.0.tgz?cache=0&sync_timestamp=1631618696521&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha1-VP0W4OyxZ88Ezx91a9zJLrp5dsM=", - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha1-GgGqVyR8FMVouJd1pUk4eIGJpxQ=" - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha1-CjbLmlhcT2q9Ua0d7dsoXBZSl8g=" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/union-value/download/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/unique-filename/download/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/unique-slug/download/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/unique-string/download/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz", - "integrity": "sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz?cache=0&sync_timestamp=1616088572283&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/has-values/download/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/upath/download/upath-1.2.0.tgz", - "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/urix/download/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/querystring/download/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - } - } - }, - "url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/url-loader/download/url-loader-4.1.1.tgz", - "integrity": "sha1-KFBekFyuFYzwfJLKYi1/I35wpOI=", - "requires": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.nlark.com/url-parse/download/url-parse-1.5.3.tgz?cache=0&sync_timestamp=1627252196051&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl-parse%2Fdownload%2Furl-parse-1.5.3.tgz", - "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1622213272480&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.11.1.tgz", - "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159819836&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", - "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmmirror.com/uuid/download/uuid-8.3.2.tgz", - "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", - "optional": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz?cache=0&sync_timestamp=1614993639567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.3.0.tgz", - "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=" - }, - "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmmirror.com/v8-to-istanbul/download/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha1-MImNGn+gyE0iWiwUNPuVjykIg8E=", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=" - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/value-equal/download/value-equal-1.0.1.tgz", - "integrity": "sha1-Hgt5THNMXAyt4XnEN9NW2TGjTWw=" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1615203397897&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz", - "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=" - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz", - "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz", - "integrity": "sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=", - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/w3c-xmlserializer/download/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha1-PnEEoFt1FGzGD1ZDgLf2g6zxAgo=", - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/walker/download/walker-1.0.8.tgz?cache=0&sync_timestamp=1635238260872&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwalker%2Fdownload%2Fwalker-1.0.8.tgz", - "integrity": "sha1-vUmNtHev5XPcBBhfAR06uKjXZT8=", - "requires": { - "makeerror": "1.0.12" - } - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz", - "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.nlark.com/watchpack/download/watchpack-1.7.5.tgz", - "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz?cache=0&sync_timestamp=1604989128919&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack-chokidar2%2Fdownload%2Fwatchpack-chokidar2-2.0.1.tgz", - "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "optional": true, - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-1.2.13.tgz", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-3.1.0.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", - "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/webidl-conversions/download/webidl-conversions-6.1.0.tgz", - "integrity": "sha1-kRG01+qArNQPUnDWZmIa+ni2lRQ=" - }, - "webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmmirror.com/webpack/download/webpack-4.44.2.tgz?cache=0&sync_timestamp=1636640473731&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack%2Fdownload%2Fwebpack-4.44.2.tgz", - "integrity": "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I=", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.nlark.com/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1630916591807&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-6.4.2.tgz", - "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.nlark.com/cacache/download/cacache-12.0.4.tgz", - "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/eslint-scope/download/eslint-scope-4.0.3.tgz", - "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687952028&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "requires": { - "yallist": "^3.0.2" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1624284098038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", - "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.nlark.com/ssri/download/ssri-6.0.2.tgz?cache=0&sync_timestamp=1621364918494&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-6.0.2.tgz", - "integrity": "sha1-FXk5E08gRk5zAd26PpD/qPdyisU=", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1636385901001&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz", - "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=" - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=", - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/mime/download/mime-2.6.0.tgz", - "integrity": "sha1-oqaCqVzU0MsdYlfij4PafjWAA2c=" - } - } - }, - "webpack-dev-server": { - "version": "3.11.1", - "resolved": "https://registry.npmmirror.com/webpack-dev-server/download/webpack-dev-server-3.11.1.tgz?cache=0&sync_timestamp=1636807928809&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.1.tgz", - "integrity": "sha1-x0Aov1uoiFqvIw5Iog6JNquFEfA=", - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", - "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "requires": { - "locate-path": "^3.0.0" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-1.2.13.tgz", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-3.1.0.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/import-local/download/import-local-2.0.0.tgz", - "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.nlark.com/is-absolute-url/download/is-absolute-url-3.0.3.tgz", - "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "requires": { - "find-up": "^3.0.0" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694800155&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmmirror.com/ws/download/ws-6.2.2.tgz", - "integrity": "sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4=", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1624233886384&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1615477439589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz", - "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.nlark.com/ansi-colors/download/ansi-colors-3.2.4.tgz", - "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=" - } - } - }, - "webpack-manifest-plugin": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/webpack-manifest-plugin/download/webpack-manifest-plugin-2.2.0.tgz?cache=0&sync_timestamp=1627559109502&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-manifest-plugin%2Fdownload%2Fwebpack-manifest-plugin-2.2.0.tgz", - "integrity": "sha1-GcpptDWwuux+KfvpD7QBXeLeTxY=", - "requires": { - "fs-extra": "^7.0.0", - "lodash": ">=3.5 <5", - "object.entries": "^1.1.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-7.0.1.tgz", - "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161912962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1631547057681&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", - "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz", - "integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/websocket-extensions/download/websocket-extensions-0.1.4.tgz", - "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz?cache=0&sync_timestamp=1631479707600&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwhatwg-encoding%2Fdownload%2Fwhatwg-encoding-1.0.5.tgz", - "integrity": "sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-3.6.2.tgz", - "integrity": "sha1-3O0k838mJO0CgXJdUdDi4/5nf4w=" - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=" - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmmirror.com/whatwg-url/download/whatwg-url-8.7.0.tgz?cache=0&sync_timestamp=1634673865107&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-8.7.0.tgz", - "integrity": "sha1-ZWp45RD/jzk3vAvL6fXArDWUG3c=", - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz?cache=0&sync_timestamp=1614792316802&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=" - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" - }, - "workbox-background-sync": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-background-sync/download/workbox-background-sync-5.1.4.tgz?cache=0&sync_timestamp=1635903720777&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-background-sync%2Fdownload%2Fworkbox-background-sync-5.1.4.tgz", - "integrity": "sha1-WuC71FX06cMZ6NgnwFW7hsiU/RI=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-broadcast-update": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-broadcast-update/download/workbox-broadcast-update-5.1.4.tgz?cache=0&sync_timestamp=1635903720695&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-broadcast-update%2Fdownload%2Fworkbox-broadcast-update-5.1.4.tgz", - "integrity": "sha1-DuuJFw3cp/aRT6NSP7FEYokfLPw=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-build": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-build/download/workbox-build-5.1.4.tgz?cache=0&sync_timestamp=1635903725929&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-build%2Fdownload%2Fworkbox-build-5.1.4.tgz", - "integrity": "sha1-I9F+1cMgYMNjAwyII7OdDqv0yMc=", - "requires": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/runtime": "^7.8.4", - "@hapi/joi": "^15.1.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "@rollup/plugin-replace": "^2.3.1", - "@surma/rollup-plugin-off-main-thread": "^1.1.1", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.6", - "lodash.template": "^4.5.0", - "pretty-bytes": "^5.3.0", - "rollup": "^1.31.1", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-terser": "^5.3.1", - "source-map": "^0.7.3", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "tempy": "^0.3.0", - "upath": "^1.2.0", - "workbox-background-sync": "^5.1.4", - "workbox-broadcast-update": "^5.1.4", - "workbox-cacheable-response": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-expiration": "^5.1.4", - "workbox-google-analytics": "^5.1.4", - "workbox-navigation-preload": "^5.1.4", - "workbox-precaching": "^5.1.4", - "workbox-range-requests": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4", - "workbox-streams": "^5.1.4", - "workbox-sw": "^5.1.4", - "workbox-window": "^5.1.4" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "7.1.3", - "resolved": "https://registry.npmmirror.com/@rollup/plugin-node-resolve/download/@rollup/plugin-node-resolve-7.1.3.tgz?cache=0&sync_timestamp=1634651560099&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz", - "integrity": "sha1-gN44Tt+9e/yRARZJEPhgeBUaPso=", - "requires": { - "@rollup/pluginutils": "^3.0.8", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - }, - "dependencies": { - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-3.1.0.tgz", - "integrity": "sha1-cGtFJO5tyLEDs8mVUz5a1oDAK5s=", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - } - } - }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/@rollup/plugin-replace/download/@rollup/plugin-replace-2.4.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.4.2.tgz", - "integrity": "sha1-otU5MU+8d8JEhY+qUjASglBoUQo=", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "dependencies": { - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-3.1.0.tgz", - "integrity": "sha1-cGtFJO5tyLEDs8mVUz5a1oDAK5s=", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - } - } - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.nlark.com/@types/estree/download/@types/estree-0.0.39.tgz", - "integrity": "sha1-4Xfmme4bjCLSMXTKqnQiZEOJUJ8=" - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-1.0.1.tgz", - "integrity": "sha1-MbxdYSyWtwQQa0d+bdXYqhOMtwA=" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-8.1.0.tgz", - "integrity": "sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1634626706503&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz", - "integrity": "sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161912962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "rollup": { - "version": "1.32.1", - "resolved": "https://registry.npmmirror.com/rollup/download/rollup-1.32.1.tgz?cache=0&sync_timestamp=1636694254448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frollup%2Fdownload%2Frollup-1.32.1.tgz", - "integrity": "sha1-RIDlLZ2eKuS0a6DZ3erzFjlA+cQ=", - "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" - } - }, - "rollup-plugin-babel": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/rollup-plugin-babel/download/rollup-plugin-babel-4.4.0.tgz", - "integrity": "sha1-0VvSWUZqnRrMvbL+L/8XxS0DCss=", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - } - }, - "rollup-plugin-terser": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/rollup-plugin-terser/download/rollup-plugin-terser-5.3.1.tgz", - "integrity": "sha1-jGUAYsIqhCbGQmhUiVdGO/mBtBM=", - "requires": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^4.0.0", - "terser": "^4.6.2" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1624284098038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", - "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1626703400240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "requires": { - "has-flag": "^3.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" - } - } - }, - "workbox-cacheable-response": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-cacheable-response/download/workbox-cacheable-response-5.1.4.tgz?cache=0&sync_timestamp=1635903720752&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-cacheable-response%2Fdownload%2Fworkbox-cacheable-response-5.1.4.tgz", - "integrity": "sha1-n/JuE2YhS90Fz1pD2pMFsnQHilQ=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-core": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-core/download/workbox-core-5.1.4.tgz?cache=0&sync_timestamp=1635903721732&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-core%2Fdownload%2Fworkbox-core-5.1.4.tgz", - "integrity": "sha1-i7+yNi7N/zDiXRI8gseaxl2SZPQ=" - }, - "workbox-expiration": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-expiration/download/workbox-expiration-5.1.4.tgz?cache=0&sync_timestamp=1635903720602&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-expiration%2Fdownload%2Fworkbox-expiration-5.1.4.tgz", - "integrity": "sha1-krXfRh6BJhFJQ6OxXFXk7LkgsWM=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-google-analytics": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-google-analytics/download/workbox-google-analytics-5.1.4.tgz?cache=0&sync_timestamp=1635903726174&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-google-analytics%2Fdownload%2Fworkbox-google-analytics-5.1.4.tgz", - "integrity": "sha1-szdoBrGsfX34QYME03lwcZX6hRc=", - "requires": { - "workbox-background-sync": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4" - } - }, - "workbox-navigation-preload": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-navigation-preload/download/workbox-navigation-preload-5.1.4.tgz?cache=0&sync_timestamp=1635903720583&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-navigation-preload%2Fdownload%2Fworkbox-navigation-preload-5.1.4.tgz", - "integrity": "sha1-MNG3INJqBe/F+hFQPlzB7Vp4kCo=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-precaching": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-precaching/download/workbox-precaching-5.1.4.tgz?cache=0&sync_timestamp=1635903726628&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-precaching%2Fdownload%2Fworkbox-precaching-5.1.4.tgz", - "integrity": "sha1-h09+vddQ3T4EJJ766aGz9IKF/ms=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-range-requests": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-range-requests/download/workbox-range-requests-5.1.4.tgz?cache=0&sync_timestamp=1635903720707&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-range-requests%2Fdownload%2Fworkbox-range-requests-5.1.4.tgz", - "integrity": "sha1-cGahLBId9lv3b98rCGgBaqK6uFk=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-routing": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-routing/download/workbox-routing-5.1.4.tgz?cache=0&sync_timestamp=1635903726131&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-routing%2Fdownload%2Fworkbox-routing-5.1.4.tgz", - "integrity": "sha1-PozYa9O2VzSI0aLOc4XlR7VH6XA=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-strategies": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-strategies/download/workbox-strategies-5.1.4.tgz?cache=0&sync_timestamp=1635903721198&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-strategies%2Fdownload%2Fworkbox-strategies-5.1.4.tgz", - "integrity": "sha1-lrFBjM395TVGEpFJZAdNRmxS0Iw=", - "requires": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "workbox-streams": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-streams/download/workbox-streams-5.1.4.tgz?cache=0&sync_timestamp=1635903726354&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-streams%2Fdownload%2Fworkbox-streams-5.1.4.tgz", - "integrity": "sha1-BXVOXjZnvcB43yyTFbP0EhDYysA=", - "requires": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "workbox-sw": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-sw/download/workbox-sw-5.1.4.tgz?cache=0&sync_timestamp=1635903720656&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-sw%2Fdownload%2Fworkbox-sw-5.1.4.tgz", - "integrity": "sha1-K7NMn3OB+Q2EzvZEgW1FFQAR09s=" - }, - "workbox-webpack-plugin": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-webpack-plugin/download/workbox-webpack-plugin-5.1.4.tgz?cache=0&sync_timestamp=1635903726379&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-webpack-plugin%2Fdownload%2Fworkbox-webpack-plugin-5.1.4.tgz", - "integrity": "sha1-e/6MFuQP6e2JNwgKx66ci94B55w=", - "requires": { - "@babel/runtime": "^7.5.5", - "fast-json-stable-stringify": "^2.0.0", - "source-map-url": "^0.4.0", - "upath": "^1.1.2", - "webpack-sources": "^1.3.0", - "workbox-build": "^5.1.4" - } - }, - "workbox-window": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/workbox-window/download/workbox-window-5.1.4.tgz?cache=0&sync_timestamp=1635903720613&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fworkbox-window%2Fdownload%2Fworkbox-window-5.1.4.tgz", - "integrity": "sha1-J0D33qf5O5kyYXmmLxzAyiyTyGM=", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", - "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", - "requires": { - "errno": "~0.1.7" - } - }, - "worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/worker-rpc/download/worker-rpc-0.1.1.tgz", - "integrity": "sha1-y1Zb1tcHGo8WZgaGBR6WmtMvVNU=", - "requires": { - "microevent.ts": "~0.1.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz", - "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.5", - "resolved": "https://registry.npmmirror.com/ws/download/ws-7.5.5.tgz", - "integrity": "sha1-i0vEr1GM+r0Ec65PmRRCh7M+uIE=", - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/xml-name-validator/download/xml-name-validator-3.0.0.tgz", - "integrity": "sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo=" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/xmlchars/download/xmlchars-2.2.0.tgz", - "integrity": "sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=" - }, - "xterm": { - "version": "4.15.0", - "resolved": "https://registry.npmmirror.com/xterm/download/xterm-4.15.0.tgz", - "integrity": "sha1-5SA4UH66fg021H+B4p/lSMgrlWE=" - }, - "xterm-addon-fit": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/xterm-addon-fit/download/xterm-addon-fit-0.4.0.tgz", - "integrity": "sha1-BuDF0KaqrPsAnvVl76HIHpPZAZM=", - "requires": {} - }, - "xterm-addon-web-links": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/xterm-addon-web-links/download/xterm-addon-web-links-0.4.0.tgz?cache=0&sync_timestamp=1636129577866&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fxterm-addon-web-links%2Fdownload%2Fxterm-addon-web-links-0.4.0.tgz", - "integrity": "sha1-Jly/giG5sxXQp0jhMjvuMxzV2gM=", - "requires": {} - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/y18n/download/y18n-4.0.3.tgz", - "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmmirror.com/yaml/download/yaml-1.10.2.tgz?cache=0&sync_timestamp=1636797325177&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyaml%2Fdownload%2Fyaml-1.10.2.tgz", - "integrity": "sha1-IwHF/78StGfejaIzOkWeKeeSDks=" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1624233886384&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" - } - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.nlark.com/yocto-queue/download/yocto-queue-0.1.0.tgz", - "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=" - } - } -} diff --git a/web/package.json b/web/package.json index 48fa55b..022bd69 100644 --- a/web/package.json +++ b/web/package.json @@ -1,35 +1,43 @@ { "name": "next-terminal", - "version": "1.2.7", + "version": "1.3.0-beta1", "private": true, "dependencies": { - "@ant-design/charts": "^1.2.13", - "@ant-design/icons": "^4.6.4", - "antd": "^4.16.13", - "axios": "^0.21.4", - "dayjs": "^1.10.4", - "guacamole-common-js": "^1.3.0", - "js-base64": "^3.7.2", - "qs": "^6.9.4", - "react": "^16.14.0", - "react-dom": "^16.14.0", + "@ant-design/charts": "^1.4.2", + "@ant-design/icons": "^4.7.0", + "@ant-design/pro-components": "1.1.21", + "antd": "4.23.5", + "asciinema-player": "^3.0.1", + "axios": "0.27.2", + "dayjs": "1.11.2", + "guacamole-common-js": "1.4.0-a", + "js-base64": "3.7.2", + "monaco-editor": "^0.34.1", + "monaco-editor-webpack-plugin": "^7.0.1", + "qs": "6.10.3", + "react": "^18.2.0", + "react-app-rewired": "^2.2.1", + "react-dom": "^18.2.0", "react-draggable": "^4.4.3", - "react-monaco-editor": "0.40.0", - "react-router": "^5.2.0", - "react-router-dom": "^5.2.0", - "react-scripts": "^4.0.0", - "xterm": "^4.9.0", - "xterm-addon-fit": "^0.4.0", - "xterm-addon-web-links": "^0.4.0" + "react-monaco-editor": "^0.50.1", + "react-query": "^3.39.2", + "react-router-dom": "^6.3.0", + "react-scripts": "^5.0.1", + "xterm": "4.18.0", + "xterm-addon-fit": "0.5.0", + "xterm-addon-web-links": "0.5.1" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", + "start": "react-app-rewired start", + "build": "react-app-rewired build", + "test": "react-app-rewired test", "eject": "react-scripts eject" }, "eslintConfig": { - "extends": "react-app" + "extends": "react-app", + "rules":{ + "jsx-a11y/anchor-is-valid":"off" + } }, "browserslist": [ ">0.2%", diff --git a/web/public/asciinema.html b/web/public/asciinema.html deleted file mode 100644 index cc7d713..0000000 --- a/web/public/asciinema.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - Title - - - - - - - - - - \ No newline at end of file diff --git a/web/public/favicon.ico b/web/public/favicon.ico index 4d8d54ed41c0d2034d6e8da38b8efc03707884d8..ec65bdedbab29712056815716d794a94a096c84f 100644 GIT binary patch literal 137750 zcmeHQ2Y8fK*1my+(0fOUQUrf>UEP1xErRU2t1iC{q)I3vWdQ{iP*{P8BH*rV*Rr-< z*Rs+Dseu3?gdSQT5Ca$pNC+XJL;Cs8d%wBEWHtkn$;@OXIrn+KnXlY(&U@Z_zgxb0 zuTmkZii(U>{NF}(tQw+*Dy0Svw65p8r_@_~uS*x(^R7z${Id{s*Il;f?Ujm1;gD@? z*L9Vu5>`po<$uICJXEPgjVh^*9A_jSd{f`YDbCtAR{F56E5>iiEA79g9a-D8`p-E1SG zsUiC(G;gtGXx;vtpBHn!KE3>@5PM#CWq0TM2!pVQ192fv#EmqN7Sa?~wg`Mbxux1a zp_z*68?KJN*0Czv=9e1>*PI#MH+oaD2wC zTn@L=?`5LDh3p^Sti|S`b)JbCP-96{&oGbjy1TqUnSeBq7Scr8kO6fB$OPHMc^?7# zxU1U#VsrKVl$L7A6G|PQ)uGz17p(XCnm$#K*Yn)9p||`YO{A^s2`md_f^3ixvO;EY zr9$j?1FErx!`oWL`lUlUcGOTWY&VNgz_}#qBgZH|(>~G?M43GsfK{m(; zSs^oIhYsT0M}W5dTqR6ss*|`Ki<7-`i3WPzRNe*2iiYmgN%?B zGDCLg09~LHbQ9+qfn$+v)%HI&&>oT|w`{d_SiSx+5!Ly<9-6W2$&%OM%ZeY66*5D1 z=m1@y6m)}*;;tb;L@H@gOSSM3rP5}04Bs)T!M$-qYR%?+g!g*D=5=?uWh)c*K_}=2 z9ic09hVB*B9ewo{wRu=wHG}~`{?P69{?(R5^$I%^OnKd19_TWGbz9FmLRaVv-GKqH zs0i-LyFXF;$2V7tyD4@0txi?r`5hTIr1l%pefYiJJ^1swyIg>-&>6Y|17HD6fDJGz zZ!YE4wrbEnOU85 ze=O^$GTynp`p(gf?vH!6)*IYr=Dc1hZ|RfP*o(VZm1}>D1uy|NzzA3YGhm1QW?&gC z?$ES0Dt1r}^%9RWC;X{-OCC=fxIRMX^~{Q#*WKl>txU)SX21>@0!v^DYy;7y&BXY6 zW3{?>6?N*(PBr33Hn@-b#b&MP!*%%Xm2xGodr;O{WkN161eU-Q*aBl<4b02h9h}sP zd0A8SW zLT!4kj_$MAH=%jUZ6o---oM&n?&r$%WPCl)aSn9(tg*;YlnIMr3)lqxNw5)Y1)G)D zrOs%_-%mB*yk1kKzSh15`m|#Q*W$chHBs`q2k&&-_h#PamQ^NHO@wV=BiITygY96$ zk~oUJS0#*ZrnZf!&v|`w$iDH-ZsKt*o!9w$m@|^s1IO;pJc4atBa{iS8Egj|!j`Zp zZ0pJ$ntHR^$$W_&h`xt*HMow6Z)s-9dp&UN?QDO?Yg12v4Pi^z6t;zpVQb@dk8P@U zJ&$i>-wxR~u1Ry|O$2}QwnXxJaN6CG130&r32al?7B+^hVRP92aAeyWyT>&8CD$kM z-5h@->%H&hoMn;gvgH(PYim33cZ`jG3EQt9P<=JNbCvgc+1kdRdBavFoQCcFnXaT& zaX2Qn7F!Dkgag6>;ec>JI3OGl4hRQ?1Hu8}fN(%KARG`52nU1%!U5rca6mX991so& z2ZRH{0pWmfKsX>A5Do|je9wUuPgkL(k16_&55c=)V4!Wy_J-}#HhfNr9}T6AFLa`n zy{ggD$At^!F&}7~vu$Bx*cvv6?X@c`pzJfpC}YRBbnvrLv}ycLX;q&Z!UZ4A*YX#? zjLl(7*c7&fjbUqIo4ay3StlrS?j*P~^eFN6yvw2iOI5}VCo6W9hef~{aP*v^|S z|8f?cPu@%^i(aK2ul|mr2Q?zBR{}14$8t!1^$!NX8khrn*Z{UjS@as)W(&ba{%{4^ z7wN(e@pNq2o3wLgH(EEO1uf%!G=vMj;eg%dj4`kV=D;2{fGx_>735x}OR0P5#F~H5 z?!R`YnBi?`dH2c|7o=V3ak;4T65|Iffhn*B#=shw2cj#?&!x*h9-y??FDT*NzO-Rf z2X1GE2^ZXa{~MbFGhhb{fh8~nwn60z^66^&AxhsepAtWOmNt&Lo!g&PuW>=@4E8oQ z><(;z5wHSgz>XNha^bkWnUk4H8SzUf>7VFhxVuOnLq)1Tns+(++N`$u-5L{M1B|ZM zHZLz+$UT3GGWV>cLtjm#Eic_itDmWJEiaVAa>3E&&=oo#`g)?q09cfJo4X`#A?01l zqO<#>>B#&@+BW6av}Qm*?*;=GjLji4WRIWz5Tz`ct#yKK;@n4|Ao~(s{9!w#u6UPr&HMwc zd#)v~XJhMQ2%vVQsk1{i$Ou^>Gh{EwzU;oj;?pGp1v!`La%zHZ|L%RW2dy7|Gp*?1 z(601noq^LbHirz51u~&+4jCbk`9YFDsJ1{CAvZP zAooHBolRUvN9IkV?Nd9`>WKQfU5R!Y&T$XV;3tp$Rv338j_5M?KUJV|E$>pM^&P|F zncUAXQ=j8rg>kSoY!2Hmc$jEK1kv_4h>oryy2#%N6$IHhQ-v{HDHMfGVO!W3wua4N z`?;No<~(2>^B*Ew-j`_0YeYY+AUdByl%G?IL?vjMA^_XLhOi}U3fscQ#@?{~+%82A z{p{C7^L|6Lv=>p_6rw|miOwby7O)9yr)|!*a%D$v+&5gn|F@43tsO;_@F~%$ zc%tmH6~+X9R}|O+V_*%;fxV+GykXlC$H5#hoLlrL(VF2zyWb}|xrOKo+R=r6hpGG| z$k+ixU=v^iD|Alf#I=vXw-h2s^fzv+f{M}G`30XD!0SQTlf z`M@^*=8)k6+9J#QaeH(+w@a5-+&%`h&CjJ+7yt`kqT6X)b^kVa9GlvD3;r=2frc8 zJV=yVw)2|2!ZYXqU7!tzKg|=bGvpN(f-f5otwbz%5z>Z zhhHLrtdJS9LkH-h`(vP+*xbE$o8bc2eHL}&_U>q+y&qfc->X@EF=L4mflO$dLq^C7 znZbX}XR*0^HfOwwEi=Fc)QR|iq3L6IkLbtER{QumYgv@Yh9&WgG|@JP47*ttw9O$K zWHhoCtBWfg<$m$DcgDqrFX{~#zl?g;YA2_z_x*PaXs2B|MTE3;+nm#e45khvWxI>~ z>uf_WUYok}g5PnwIfBQwXA`AFS!3Pa7`sLs7&k|ph+B`Fb6O@{$>aXFxhu@IO}LJQ zzLRBrtTFE+%ear>XvxN|F@}mT2#axZ#HIUVIBs3Gdy&7cbdmd|{n%?qe`*bNJEY=G-<%SUqme?;5d3@M2)N;Mm8IG>6B`6RiX1McU@b=VJ46$$8BM zv?XkP4EDA;-xHe$ZyxugeAZl$d|oc|xhH&(FcmBRi@n9(!U5rca6mX991so&2ZRH{ z0pWmfKsX>A5Do|jgag6>;ec>JI3OGl4hRQ?1Hu8}fN(%KARG`52nU1%!U5rca6mX9 z91so&2ZRH{0pWmfKsX>A5Do|jgag6>;ec>JI3OGl4hRQ?1Hu8}fN(%KARG`52nU1% z!U5rca6mX991so&2ZRIu<^XATu8#F@ej`K7nf@c~kcLXTnodamquf^E9h<6Tf?U9@b0)l`bAP5Ko{zIT6CpD0d z7(PN&8~$bYj#BL#TZeTcIDU7(&{*vr(?mt}3{$86(kXoF@Ot;fL{xugb?+)^IB<@8 zcm_Z4i!kC!hd{#kW@__ub=3QJDz#@^v&L~lYWG~*uj<^DPghP`_GAbxeM0F2=eUPw z@B_aHgRqE0ocjpuo6ubC9otl`=@YI}XLbnRI;`&9>m#a1GS7D{?_Md#VD9Q4e&82j z5EgMDF2sqr#TAdh!O1N(U&n+fVAUk<+1kCB&+}G39h&aQbyv7M-?#EaXgcCRT!<5K zBTpbLaY}vv=T>Uhm_}+<&rtQ_8y&;9ji`4Im*ual?j7b9*PStUb#3K|uw957X&^16 ziL@a@MRG@9Yo}7Cx79p+gcaX2u1QlavwJg7=QGz&dBSy9xI5ps<%v^B3uz*4$bdWn znIKzvbw?xHs`yb26u&1``dj}KzI{Y}aGlF_?{eK4b63|6c_I?BKqklr86j(Va2fC1 zu9By;(foRb71}elag(?qwNS1z*DL#!>#lHjzHjA;%CfB=6a~%`rT#8b!W_7T|4E8yRAGCs&#=*f$ZqqNVWgP7R;O4Y8qF$9k`AyBXdU%tdj(mVY<$*Uu6tBp4|KcO-VI{~xOxa27}tDRhjS;cjj6SL7at^YIFdv&j{ z-Q}TNcNb%K{n_3VyRAG?|7XAq*a1Ue>5fa8ev3L1d5hY__Jj5Ius!3fa(#iP{V?vz zUtat<S z=n8YM(&ZBe=)~GjXwO@{X#Mauw7h$$Wed(LzT`%Eid&cIj2Ey2hQJb-0$X70jw{U1 zr7LNN=w$4dlQl2~ z*unvG=nUO~0k8ljM1{VA{5rAbUN}ve32P|%>q)d_()|?mOdVQklN0|zU#>go0^Oh^ zbcN2)J&;`9rA#_|FqV$YpHADRcA?b~4K)72RKo{r)-JoMIxcsXZ==|Yr zl(OUv+VSec6g{X3*Ly>(aw-7xg}t80GD23!4B4RrbO~lxkbTM4#`rt!nr+$`mCD=} zcFdouL~EbBiDi3&>*jygvO?za=nC_)o!S^T`?ZZ>>WNm}{N`(Q^B=ix&azb`SD2qe zS56(GwAim`-+Kdn*2XZHo4PsDO56CAP8%|aV+0Dhjd2ETj0KeV@o?H$nl^^5&SL83 zhzoHdZlr;<#9ar0!UC&}v1=J6ea>x+30529y7gLzdZMnIa~Oop;5c&5a^0Nc6z3TN zMcNpXe^I230gl5ix^B+TlK&H!b#s@RXP@Oq{%^Orl;;Ky@-Ai3xulI&8)Mpow2cqc z&2bOUg2yrDz<%{}MDcGE9giitoE}tVBl>Th`)~sqf4p~qF|Y>az<$mH)-nGfq7@ND z+h-FUjV8LtWv0*ikOCSd?+OPDfh8~nw!j!z8{8e&rPcR-O*HQ}M9caTZF!aGhvh`) zxy~TaSo~62PY|({i@#946#}XxeL6ng|loQ_eT6y4U#!h+ zwwS~Ji@Fi59YvJzDbcB&R^7@ig@V8n>WR<^xhPf+w?ez)AHpU#!+Zgt`ImfYKqMz#K9+U^J@F>&! zcxRwK&H9w2jS*0F^Kxbj)5eG%$@TD0xIP|lwJ~(voX>F&&jPY;UY=}W+8B>=y?m&3 zEadZ`uO|kZjZj9}Y!S3|^I*eVA5Do|jgag6>;ec>JI3OGl4hRQ?1Hu8}fN(%KARG`52nU1%!U5rca6mX991sq8 zzyZv9J68w4mW!!u&ZtnSY33qZsn+H^Mk%`|-bPi~?z0!Wr=vIzw;tfs<|*Gg?~DgW zt#j=u(mD^}+cqysv8Qv^ZKYT~n-`@*AeV8|>|WSYjJeD5T|1RCK|l})R0OaKb{9S( z`3O;M_?KN5rP?>P4t?#XpX9fHg8iTs_UJzT`mJHSfBHSqeZyz3>KU4f1LwGhXYd2R z2ouciGx&jD zgh5!ufw+RjWxacc+B%}1S_xavXdlXZuiqZsuj(YW>$c@jgF#{r&IyhiX&^16iL@buzg@zgn(Dmy z!JSHNhpqeDY~7>MNl$F;tgowU%?VCJbAr=E+K>U|1Z481Oa5~!wPjdcZR@l*I)-i> zRP&DLe%`mWE8U&%+d089Ko-aZPC!P;>Mgg&R))XNuOn^iQs!%CJxY7+Tuwkn$O=wC zc2C^C3C;C8II33|zpp!lZbZKB7e1NG<*n|N;ic8d)9^M(a{V>+tq+f^~v!&=I;qXXyR`=an5O!>xS%m8b7(U+YoY`0bqN z9rhJ;h0f5OZT(81=j+ny?i}7;PO$FSGtK#VMY*oXx>pn%i=GuXe~azK_QC<-!1Xv# zWbexW+&}AjvU~K*VGkGRetO4ul=ScM6gT02X=Qoc@6bVK=m=e*GjumD_u?7K+`o>J zzj>K9PyQ7}^{X4)`wiN3)_a(+F3<_OK}YC%J(qX+9G(4sGaXqtgZJU+%6sKC42u2! zitg{%P|FS-pbK>J#N}sSr1MAODP`$fwBxl$Y0V()>COA?1<0P>MrX(b*&riih0KuM zo34QO7`~Xgk5Z#Pq@8a(#e2)O zq01+~rxWY`MSI@vN9#wlwf39y5f(;gy}ul%g*1^iWPmJX=?Zzh;VY+8C@tD|Fefwfc{A47>j=hss^s4UOKEe*~ zDTF~-#DTaFXE5&dm2>VCW$a#QuVehzp2`k7>z6L+*4BgE-g?i0TUYi(emSeqmtQ&tUn&{F=#vwe)F?;V!wEeX9J4`hRk_BH5P_LA-oW%ywJ z?O5>o;omu~<$feE_KVVMz_ToRf2Nl$8RxOAzF2qPzLq+F54+?^YyES*UsDoM-WBiL z(^ZT}E0fbi+IkIkmIe0GI(NR7r;QDL^3Un$waoed+s7RCOWMbKS9!PHpv(ycm%emC>E*}HNT`+;AB zVZhqiSywl%4R=i)W7|w39D08mH{Z==n$O+P(Ovlr7QT2-xhsSC^V7T1i@Xt=iOqxq z!U5rca6mX991so&2ZRH{0pWmfKsX>A5Dt`#1J_n5v8_;IRwpqllf>9oCBcj_;{JU6 zx3(=a5>A9meqdH0IjS#Jc%=0oV*SZ)pdx^k1@7WwARqR1BHH<8oruKgZB^Wm+G=Hw z%6e^pm;p8J;x!Lu@O26foa3IJ^Ur?Z7h%fU@tj(qjC$8$5)&QT3DUSBY7o1Uv(--h+)j4Q91QSxv35e8w| zCZ8iN#EH0J6QqSSOY2fzxrK4Dczx{Ec9ml+tS7pQ^^I&{o;%oNBGN!woQ6&tGL*z| zNv?K`Zlu;dQ%(K*SIq0@>KI;ojJ1*TM*q$>LE4Z3vOp%t=F07x&{T79)zg*L(U~25 zhV_kfFwdQB0+}Ei@(E-$Zs%x=*I#vJUJt2VpVv1*8RB!Sjhr|7ceDv)gN%?>=M$Fw z(3I9;F%h~9@j9<>BwI?YCol}{s+%r>cMlVTKRP@m6=au&7o?gWq>Rf zQ}>s64pm`(F3&?srW5P`O?%#XhSur1P+?x57iMH$-aSmGfwYh&(uNG)aD@f=boKO6 zO4~G-5b z+vduw;CU#izL_hd=eTg(KX4kDm$Qu1EbSZ@V;j3J4;G#4a;}tfT`)%lark47id~n^ z%sb{Du05Hn5)gAt%y+X!7yj3CO~zRBKrkP~v0N@PM}++Z)Ep5fUBETRxgwY^50@X>`2`*&J(J^N1Uz@(On zzaLS&*10-7_2$aF2KXI3KK=@ij~~W?bKJu-_<>)9DXrsgZ`7JTRn**v^jh?Fc^`|1 z`TLbmcs=eE?o%#s=vOYlJv@USUbnt3!XPZ-D2dxUuBqbn&eaP3P9}Lu>q@NGt*qZT z)^j6&Cve#z&0_nt;Rk*Z24N8g;zFE=yEsSlyW%@BE$=+&I-mx0eT2h(%6c8UQJSuv zBP`-TT!<5K0~4f$G~xIg4Vzutz^*0I)m6IA_nk30JhhF*6Hc4I->VP#*mkAT)j3U9 z*T4j6Ax)&sw%YEFU0ucJ>3tg}+dU00;Yv2H;;M)_fywnfzD%q z>=$7W7IE+(ARnc3Ip4In@C<(7*KL=Pz~AVfciTHW z=3dI8tOK$9oxyZ{;2if#}|vGZ8j6~?hN z|=M#*Os4ZpDmM6+6bnVZ6Cki;-n6 z#+rH%#qru@hZb1}&T$XVyqTuK!TEm54EqS$YBsxmrx#!W@Op%N=(U0e+14XuKRO(TaaF#VIt}W2 ZIQ&s}aV1ND-#=G}`>HDItnAUx{{tM^P6Pk| literal 178876 zcmeDk2VBkH_rCYqLrX=WK`1MtrBt%B%O)dRHbrQN3fVhp8rfOd%H}6~N6N~sjHFcO zf9|U)!9U_nvjnJ$Ic;2!}`#d3l1NCK)e6$Ob}4ty7Nqf?w<3# z1cx-A#v$~g<&VYm{pWB=W4yOgKewIO5L)!`_(nov+^J{<0Z z7Nq@3OL8R4hNLoS@(Xu&C+Tb3lXFvAlHO`EM6{I(k>6-dF46A=%gir5^UaoyAp`HZ%I*Y#O(O9x!uReVhkB9k3A745Kb`7cp2lC4Y z^QP~1^;3kS3kSi;FuxZQ#*NjnwY5`>fAJzZBO?P|Jh~01*E_-P;q{STTsVy7P?+}j z;J~gS>TrDdM0j@lGNh-cLqbAA{A?#Dolb_@iWl~+iT?EZDP&}3LS|MLyn7i77ebf7 zo^krH+d&u3`YnK0Pai-=M)v!p_pjjE5x@AccIG<$j1(20tTK##zpXdK9$Nx$V{h~G z2fUI#zK2im-ar=S`3vFu@bWRlo>~KMcl3wn>x|=Fde>=SYox3gzuq_+c3VKk4s-Yv z+6`h4&V$zvE6_-+2_nS3lEE6g0SFt6X~`1#{|A=78W^C!RG z_qo%rH$nKV`1$hjptuzD+hYZ9{j%}z-bzU^+S?%dou4ViNvPj@{PxbWHt|!t)@hJ| zx+htVkSJchRlC3!RL`KQBdE^!`iK89>b$~VJkqlPA$4nTY7W&U(?>QXp3Rgw8t{eY zR7BwTKq!(%iiFe<=SbN$-b~dytN!w{dGMAW>o5S?T*m^ZMiv1eVkHz>Yg#D)? zP4zBU%to7IAVhjR1?qbIg?CFu)I$+>vG1MM#QJy~gFD zE^RflHQBnkBS{L!dVHkM|LYf84lNVQ{xQ#p9PF;mv8FJo@?rbC7*QUjqbSF?Hb-ZY zK3R&oHUV{Xp84k1U$mTq2!mfol8i6~TG!*WM!xW5#j|y}sTzkgt;tbzXiA(`Sdyox z!-dkP|5py;NMTxUP2M7mzQ$@C&B3}HGPxxogBz3HL7ho@UUbNv&%f?z9@t*MxaMR* ztOFrPJ2Ivj>9?yp$z*ucVL%qaEJ7x?7AJ$6i1pjrnU_iRe{ss-r^P(B zcjdwuebGf9rb?3)J`0J{j4A!Xw=ByHo?r%{-Nhjs+l#`KL%%(QX?EC%K;VdGaB$;7 zSUBH#5vp>sfBylpa^@jq=lf`ha3U*+XOW=|f~@6Pp$nLmG~{r-kV(y%>zd?yANdP5Q44h<$Poyj*8`;tLY&s7DqL)b4kCwRPsr zopa#vjVSo`?fYM8X#4ph_6bC6Sq$N;o#FA_Xnxs(AEhEqVjtds8~YZ+{S7v-aZF(v?OurB|+CI~^E^T|e?EIhRkw3m?+TyIRc90xs4iEhM!;K^B;8k1< zynXW$Zk-B&y8*-bFi=?da53qG&7b+6wx_$=!S@g|c)F!0Jo2}NYa_0vCYLzYJnQl8GFNLYu}NEvAzCQ9Dc% zf0p>8{XqUjJAlQ$l!&Z2&4epurp_5)t-+bBD9KeZQK!$O=)Y3CWX1XRm1rwfj@jsD zBnZt+^Nqb^AHQ5jfrFwb%K5vGpC24tqNB(mQlcC=v~}%gw;}(b9hI!x$1dj8lHt^$;~2=BJPQ9U(~_p@oE|t9a1zHWep353FIwj=FTZ<+Ucp^R=3GN^ zr;8S6d<}7~l3-mC<#CX4INqVkF+!Q%wWdA!M(xDnl$#qK3J2{I;J6E|E9bGU*rHYt z#Xb<~2L2`Ds87Q81iFuhTh}h~?dxmTuD#aM(yFha zfrA~{m+1ce`y=SM6uqde{QA{PI261V){ZoWEnURmz(4vl49>LNgGjsJE?ijCzai{g zIS(E`xCazB=DK?I>T69+&HDA~)yuPd<~tgG`t%7-hwp$5le)mBZZg?@9xNj_P3S#^ z(Z7o*thH|q2ez(&7xD3b+2>5YdEvid-I|Exj($dl){J_4~$ou+gwdqI^{}T0e(2qF1 zehgeabAXR?uI|e3Oj5D0b|?BO1TC5jYf)C$bytKQ9z>mXEljP-);skHnoFu>xRO)LxJ$-^(!0$%^MRse);Ul zBe;L-I{ZjY&0QS-o~Hbqmzx^(p%EaUQx8ck- zFSxqO20m{!6A#R*~S1mA*?#pjP7$*&wPYM3DuR7ZE?2RUB4_NtM&#xS3zEsqWno_*upjyk=Xh3O-&7Cr z;E3|)zDf-sAu|>yact3NWlL2nK;rL=_poPhGX4PgL44Ka#Co2$&_?eLQk!e4Dl@-av zF`T=N6*&{dM7T9|m1%Khg9lfH)=g0!*3H%^*8w;dl!#+c*<)@^l2geYf;W`-pxKT-rMN!--9@}vo zz_|_ig5!H3HKnMo65&Y}Yphg+DBw5>t~XMwufQ2I0CftEfo4#hLdz4RV@bprKH|JH z;2iY3Hnljbq{TS8bc|D|1yur^s)1Drb)gK(C10m_nUS>II;A9F&MOawr?`d+aNO~E zOI6MSoV!O|h4RELcs&A#-?s3?kbl-Fj|XsF*gthjUNDrzGspg`Z*F{!M_|I2-`H3hNk=`}gd%M0Cy~A>l3T4&4eagRQ{R zLXywF(rO!Mz7+0#sQ*@3a>2PFp-4fy<~d=~}}KF^SMThUH LZ-WE-rq5>&ptL>-;*2yxL^V0hf+y;4^zHT)uc7Qhww;$CJA(=00@W zwtVHkgK0DWpmpAG|Ni|#&Fj$lq=dKGb$$L2OTIi%xe%FwZgu>>hvHg4oU2LLWC9T$mJqmP3Phehj`AtITv1?XUB7%G3Td_n z-Xd@Eo-NE1Y`(s{ckeE2-{b>3UAx1B6(;;On1Ex%yQVcM82(_o4(_7&cBKpKLK%3z))+Ey&hqzM5RUQhnx-cl z{LK6T9edwn$)D%@Z;2@cyY+`Xp_}13@>Ot+Y0)6gPL+td=gi3n*y=qAjv>$AZZ_e| zz;C!2Sc(Eala_{v2VF~h$JYo#=h;A*|8jWv@Zn$Wqp*0;I{Eh9dpLG*H*ED74re?} z_`K%BoZsAAap7lhK|Cm5pRYB6eXboLVEJ6QcJ)eubHEHq|@^ z1=reA+Wa5Anev#hq~K@rLpssA{$`^w9CB@kb$u$Fk35xUU8gq81Juhq{g%P@`8IG5 zc}RK5hnvaoUtvkZ&y+{`jXzq~BNv&$7I%9%a$py~u76KSMc!P7t-j94s}2yi&Lq1| zQhGD#g$+v!ey02!JiZ6Fg)3gh5aKZq0=*`{5w~`zkB#%LlT2D+!qSFc5Qdz(PH`!) zP70>^SG+9Y{}(JpdC$UM_&Qe&XrA9qjBum3oa^e|BJ$9;aVXL=L*U4{GYozVnlcCY(a{}K2Lm2iO){KUmd zG>p$)umtWH$9r73B}$}l4S}>6S3yFQqp2j#<0(kdbr@Cul9k{RIVllIMJaAq zTyJuug9dqmYn0sZxu%}FB&V)I!E^bQl|r~y59_UnsFWDj6z9rAhv<@IIw!u%2KToZ zkxcVCoO`%-$WcUutD>M;he%0@RaR90f}6@U@|!Cy%57R-p0lQ}4ta-b==f_O=-4$g z7EISQ;9jqE3Xod@XkF4#>|~<#JWN2 z2(2r$&d|EUuR|4<5TdvijYFv1Qu(EFOy#+#>vbrt=sF=kh3$v@TVYwjwW`PUV*3$H;MEa4qOtN(WkpDneWF zFP&Zx9>sZA-fcx;b$W4dEhueSw-v?J=>_3ZoOeteE4{X&WOaIRa4jfpX|xrksnZL> zr8w_OqOB-Pon9PV3rbtmwu1VD!~HngXmkCaonBCR74cnOZ3XU`8i=C-V%hzQ|2HI? z<9?Ca(qs<$z5wdeg3_@f;#L@#1lx*^8YB*}ZjgJ8Gee2?bqUdtC+_GYuS(!9NGHn6 z;dUfud0)nct%;VVhWkv%u`sG*Gnmyz6oNZt z(}3w~R0jMR+h;$n)%P_g;9#f#Ge-4;UfsJ={fB%1^1kft?Ma(9ZQP$cc>*tAy#l`t zYhiSE6PRWw0e*CEC5}f`WSfY=dpC}$FE-`CDAU?7XYv?`ii+g>yz%kzDNz3p9Xga4 z7#Q&Jr|SagUWE_1E_Kh&?J#*zHyCeN16JdB9Ag_+l)Ax;vu*1_z{Q9MqbwVMx2rSU zx_OiDLzY?N=;h^ADEygpG^Fd-PaHo6GsX^ukw(g}#Eb)bbH;Sbiw=w|(tR{D+K9u5 zPOV_=ily-M=`-~8o*@W6KVBUCnaonrchZ$BSHRtAGK?~>2ks_Z*oku&WvMF#b(*80 z6il$Sf{;Lec$1L8mstkZ++j)J&*Yg-*PT9i04u!QVWf4FQrDGC-4@ho(?;0Bq452X zh(4=?xk?g$rabDq3ePVnHC@TzotI9d{-q0Zl?MJy`6aC@h1F?H`ND+%!haaHf2~`$ zc8`gP5hlBQzbTHcEUZq;7l=Gwczb&nsQ=B)&G`0DXy`Vf_dVrN%!fAtH=k`$k{vs;d#kmU7l@#yd z=(K|1qQ2PwyB-b87R`fY6WhaJi@J1=RDDi9K7)p}QzfnI%ev!vDCp161a{772_6%B zLh#m25Q}>w=)R@mT)B1SbhIlyj5**SV5b#Ur{x6?_5BzX6$MLNr^B+b#z6g4QD5Rq z25VFNwe#cuP;*scpq-6>_BuJ-yMX=#Pb_EyKIqSK-3l+bedjLPROxvYEA+E$UHJj_ zhHZ!S%e~>|%^QE&X+md|>%$KpKf%ER`@ze}0k%vvfk!J1;nz-!>@|P5hrxSLA@HX@ z#prrTy7vM145WmZ!{tS-!F#kR+Lp86^5rZ1y=1vSDDzuN%a^a;z_#E3m_NQZY@2QX zFE`||C!?tN3$7WZdnb0ZgWF46!@5Z(;4^O$oH%iuzYn;q5vMxs(c>7{vSAf?Id+GG za}3}E*4cdbbd&`C3@wlj8DSO>yVeMTryGLD)IlYtEB{4DL7lc_f)zx0w1KbGk0rvy z$DM&OcUY46GkIg4)CV8klUdTbGB+La(rKyNa`t&44FB9SRT}sU(1FswG<0SDI!y?i z8Te>en)oy2P(C0XimNMy)@e++!h~gkzaSh)hr;U0LhCfa^8OVsYy25_kPiRSl||NR zOc}z2<%K^38WtRk^5pg^_tfQtJ zCmj7%e8aQui{uA^(uw*xz&)5*SSO$3nLX}eqFgOXB3e#my09J)RT-WL>Wnr>m%twN zNz$@*c!okT_farwf_LB^9rQ5*ZEBJGNT(@y9#So14N9YmEmBQuiIO&T#d$~{U3FQ` za`XX3+oXJb;}mtz4MQjDi)3tb@~gQr=Tc26uDyy3Prf3`k&T`d0k9!556+oX^#WxMZ!u1Tjpd6wfIAUsnk3H_FZ%7}5>;yG$q>B`4PlZJu_ zQI+M%B3=45Q|6q*bMVsnZ4$L#@Rys{WpV$zt!qo5iza!GK6}=oZfd5dD#{Tl)w2x$ z$f&BU2&pZHzO%%+9r3)n18BqjSYO08skCTD=|s=vLZ3chrp}31mgab%ZK2h=o&>i6 z+F_-2DN2jbHp#G#EGM9g7D>eOCX3xBl@^U?zLZY%97eQ5Gx0pUdy0~rDdM6$zCqTz zxlDnKTZX*)^+hqB0n(TO=egMKtr zr2RT>H#Ip?Ni{j)?aP|7+4WOglv@*hri^b|lXDB(q)eutRN3f~oA#8qOk0O`>sQnj zJJ7ywD=#e~#^9b`#iPDWu|4FWy!65Gg(y5*@t3guq}*^+^m|Gt>Yr{gwsqLA`%o9# zI<(yysLSSW59C61^LVChqEU0~_M(&t|~ zrl9wQl^>@4s_Jb!Lo<4gaADf7W;IF75*!aNt25*oILkVu{HOg6I$kxpDFGQ#vJ%_z zdjO6~Gn82&k`kDuY!;o+vJq7h7=LalAec23aOU$9x#rP8TM(%!29~ zAqi`7Zj;*C6_HL1U3TL5*aAZi^lPO8QyhlC@ra}FE$7T_1~(cOmp)8hluqy8zlYF} zU>MQ2GuZ1(!!jI4tSGvi>RU>i5F8J4YR!ZGs2k?aoPvG}E(7&TlHXNQ^byQIDJcn# z96kh&!~4OYmWtqJTzKDWu~OyIpnCz zou`h6zHREkYy$$J^c;aw*5yq8;W;{Ycylor)WsAwqyIaq3#hCMdzB`A7#OG@7OKk^ zyDxwN=8a)WE0N#2oEhINP8-CeW#~e6?h?Mvm4i{Xona^H+>akWGT;;{EDQQD0MRqK zQnX2vB>ZI9FllJXJ@tMVjZpvbEZ3@zr4%v z1J4~ViHpj;u=bCwtzFFPHwh(C?C(6NEnU)|%=5bXzQ z=Q_4Td9i2$-V0sf9-iC$s}Sei{{|wT$ghk{*nc1#R8>_Aw10B^KPeeEQHz=F&>c2! zTn{nmGm-jdDyb_q^(S1oa31EMF7I!o0kaG^{I;0t6h=-cU8v4og==C)wUB_JU5xoU zm)6;myuM?*ayBvw7P?G>F}>P=QVj{8ZpQTmhEns4DoyO97DLZm-#M)rOdDhl%e)uD zoxAshYA1z-pZdJGOLh4|H?VEn7$&z81%I^5=~y|{xr6oPV1!*a2rGup%@3B(pA+E- z%JQs)ZwgwpK+ucQESQqww`>@pP^rj8qpUynP2d(D$3m zq(QKHY)iPmybYvNJn@{$TT5E==`+%@5cFa8#8KZccn&A^qqTUH5zL!D1`ZxP1j%2% z3W89qc(yKo2Tz|pgYS9R|3%F_Gc${?Bi3SDI(t+%2%2gD@#~Bslj27Aw$KpI7cCZj zn7oiqzjj!_9rUxcbYydwF~$yd?b-!zv5l%|7xnFT^Y$I^_3=a->G+9G%PPmV)4B-jz0em~wLHM0NQkPXq9FFaft&3H9T3m0MGycsax-WZO~ZSilND+t5C;^j#n1~!zbEc8wA z4t4qNS*>86Lq}M?WKn^BS*gxFbm$-~m@yW791L@GZoBL~zD&L)5mp5HFnG|qhrgr% zGdMBd0GtOI!h$(7aC{B>;@CH%I+xm0At50!b!0DCIfmM~IsRg4S|*>83@Z|S7`!O1 z*yg38E@O^kL~!92qE1T2?<7EPI8d zk0Y~w19?KnH>>)Oj>plnyXg9sQC77Dma^m-Rl>9IVyG|7>hg2$RSz86*9P3q%;WM+RK#rKt&9T)gdon~6(q@|uP(QhXI zZ4~}T-~my3US&-O>W6d${-W^r+Yjj~ys3Iu{*Do<9QtsI$+3m3t|O^rd;IbuIE`m>z+K3gnfF zGU99pWT7fV?KVt;xN_~GBp&!#AT_uu){{Mjb=ArxeHsktgTOE>x ze(qkOzby~+2iUk{LkTWT$6m#u0N-68^+(rKT8!h1K6797Ynbh8Sa9D6-2*`Vx=>%3 z=pPQ$WH@(a#5gn1|B^cTjYR;m^C=D_)hVr74IZ&+C`x@9*Fm4x3y_`ks+O$BBX(mh&sye2=smY2z@~P z^hLQofOO4|?z!s%{f_#)osWC`(dTUn`b0fLeN8u26{$h??11zM*Hhwrp?=e;e@5#6qcF72>sw~eDfLf3x)}j=8P1y;5}Zxwf3Rs|713&2 z8ECs$M_xo6&o?kpkmPJdo94^-<|HcwZ5n1zU0(Do>NBd7XdAr=Z6$0=GPLDM0@_M$ zN>bd$T1uka>~{M9>t)q@!ok5O6ZGTFZHjH9FVg)Dwc)9JQrZ?r*9gNKnm@H!S72L? zei%Wc2IrQdB-a^XQEgcBpFZ>|EjwtRsC@%*9?E-dq`kYkEO~%($oKz7eyNGa&RF>h&jWLquRJA@Fp5361_T*@^MebT++vVu;M2Xd^^7p|7yO38Lv1D6uSS3DU(puWhHZnjj*2+1Fn)9^f`X#`r`k1ml6Xdr zCD!W*^vn8rCfYRAze7pbG=g+1$v9IVsBc|rE9v0468hZTg6Cy4(W%K3p?Fo~i}r1d z>WYe>+?c9Ja{|yGToU?F&Z6Tq6t}Y0@kQkg-&Vpl+7E34^fRAwUuaFh37K>ZM$lSb7wTDDWayYR{mqG zwEtwRAHXx+Ig1(@?ro7zJUjs&R@ZwUs8f!ursC3Vr zj`D$yv7#J*M*8asCH#Lr;?uvfj2Yy{y`tQ+^e^8&2}^&L{uMuPQiF? z!sHhG^DPsxTifDK*S6qT&NxMf)-9Ssug+Frp)CVbF&{eCP4i~^#Ch|9p*uZ;cNETl zn>JL1{=K?_MjbUe{?Meb<3Dre%zvPAz)lz5e7Hr z!FuE~Gv8a?+6YD;(=kpToR{yRBL=3r>fkbW4qUx@70+i$;ggP@(^3-jXZS$#yK&2I zk-z=Vmo)tuK2U$Z_wL-rb4J{uqiHMXsKLQ=(Xz+9t72VXa0>2%YZP(5*FsYqY`b^H zbNyDso7b-yvix6ITJ&cMqI`H3^920-wm?U-HejM51v6V^pHoL=j%kxhO8&|+A4+oy zKRsWIo-H}52^ZRE%0a(gHgF*PAiPa@!;m50u(avV6r73Y$$b9&8FudqgT6MMz@m{d zjKj8iBc9Pz8TmkU44wD$#WNTO<2;mEQ%x9cKM10tqWEW$QMnW5Dl7U6!jh7b0*Au) z!NhT+p-=AaB-duS1w%udQM+q zukxTj17k|cck~Z`0i0*e02AFh&`C>#e-0cyi>e~^Blxf&-FIM{IuF-0nbwnl_N{ec z#q#BF@9v#qozGRC^k?|+^XE@^78?t03tXU`QA_BeEdlcpPiBu@dDRJq?zCSy71#Y+ z)R%`Y*6qM=(?&c?;2oY*@ryyB$YDjGzaa20;^ScLs+G{YOM9@^6oDx%vu!!5Bg%>o zv>awH9_>$BXiJ0rkb$scTL{qe2ut#+X!NJJ(YEXLtCz5Q_ih-_qZ62F*8qp69KMY~ z+XzN33!}IH^)012&6n!-)wrg{wjmeC2b5vb*pYAw`;|#ai6u$)-+5I;`u_$FBVWIM zg)^s5!^j~6z@Sk*v^6-e0@qO&_e@oWAC&IYmZAOBg}6?*o0ce;v}^*ircQ#pcwQH! zPibBio&F5&^xV)3=b~W7j2U3rLK}La?ctqsW@~ZuQkV^aIoQ^8(&RuV^ETk+wHO{g zxX%<@>S1x{Z)VmOj-NOQiAl+YIEo;N5E{$RMz+Mm-918LA@nyybYJ0qX{RaE@tH7p%`9H_N8M+IO{SNGd{nUMX z`D2h}b$%kP$G7j?g_Wz;fL+(NFsX+w=+%?|i1gRWp=-f||9{?gn1lWse{QqDb65>v zT&KFwuV-giw#=75&LnLAuPCyUJ53_?t3v|w9|O;8?DyD_Ly($UdS?vghLO@e8pkD_ zoacaTXJc^cr2#jVn()s{>)2d@(qHorX@!dM=}*r{qG$i4Y`26cw-&HqfG+guVh)}- z?)Ko}V@O4PQC3&(G4LU}JXnbHbNP+^mIYj2@qF})c%J0c$rHe?vk|Nu(GY#Iwt-)} zkZyY{;Rl|>RV@1B*>L=`sOVW;$cMBY7Vu=1AuJo!0_?0?z-yw3zKJIzkP@Ovwi!+!ExM37-X#rAyZqzn~gc=_fnbNh4jK- ziP1kNKPF!qzS?948^$()5nY?XXoryy7PhNI&u$imCc=$^36qm>-y~q0x_ZqTupeXx z<82z^nT0JOInew!y#?u0+Vtn2M~1w9yTu%KPH7CoI_W}h922K}pl1P=RhuUq<%<4Q zT6#LxuXtFwVg+<*-xj9yYzQakHG?m~7JMC3(79}-DgVEDjk+ld`H+m~>_)n^f-zki z!H_;3VdEx0c=YHoj-zB09rIw z2tF$l`U}E2r%i=Xy^LX* zePejC#uT!`klsSjyjCW(=%;leIB5FaA_C z`txzaene7GJ2>vr9GnK|L*MQlVD;)%d>e!IBTMu8fx7+noqOOi#~Ez9nt``{Gq|z{ z>AnMXyMW!E7cGnOtisWssSmUrLwqTGHlXFFZ!WTFe6ix$Iw*P|gV?eBFo#pTJD zFJIu~sWUKT@+9bDqzx+_nnNs}15Nvre7YC1T@{uW6_)-CA9BLXFbjCN$`t0?YQj(( zBbYgJCPbY(hhsR!8{bGyPKMok_P}^t3t-<#4_1$C2nl{U{iRZ(xgc*U3;p>pBRw*) zPCQ*>0$V5Of_)Do7&B@Z96NrZP-EcC*e^W`evn;HaO~R(_RVMl@3xqg`8n2=ivCQU zK%0r$9v|>L^zb_AW`0_ZZ89Q7nFS(uaxv>_>dD) z93l!B1J7&hHyX!&e^K3D4m20!K~rk)0doJN8>%G#4zlO3^=;UZQwrq1_~iZ$*n&b^2E{dgq3Rr9bMd zJnBtZJ!9$5(!Z=^ts<7g%0Dar6;UqB3MN+mS@|z3S*wWUu=3B!e?^qbvVw_~e^&m> zO4cf3IjsD%@?R0*S(NiJo1cWpG4Xgpcubsn zJIIM=(YQtS4JIW-BRd{X<2ebUXgsGh8YRSye#HMgCqZ)dbAD;@*>Qg2>?l7$&gcBn z5U}hE6T~xdOyJJM5xn0~;`Tc!md3{UgkkBBEgvi$N|+9fF+X>jCpt&x{C1I2NKffB zJ$tbfsM-|JsM_eU*yTk55iUnhL!SE{-vJHjeO}+O&#D{+RO>78?oz(DR3YHkF*~I9 zInPzA9L6j{lme1EHAN0%2(_dMtg!t1tQmSwpVRj_-$~L$>{aP0z^Sh!vI?=_^VS{x zzf&L0j2~OUkUppHnQwE_u|{(x6@j|)A`@lA2pt=NX?S)A^?fYJ@BHHQJNi9MN7K`M zDk%x7CD@8m+|H`foK(ucVR{7Uxd{33x}fJY9ZgU3q508#t0h4z3DSZ#eOFBa+qxEw z@401y=0o$Na=`W#Dx@&{pG}{ehb3{(_7y4|?+di)OM>Tl<-zt9%3ThGw(0ZYUr9V; z`wHbF14XszOM>Tl<-zt9%0>=K%BIhYhb8fh?JJay9F&$#UlKgeD-X7>P-1dWCN_Ou zJS>T4Y+s?sa!@WdeM#^Z8K`JBeM#^37+SbM-}WVR9Txo zFaDLpv#Qcps4g~rN$@i8<0&CNk%vz)TWTpc56R(A;IR_Z5#Of_(*?antyF)~!f)5N1>H@ML8#f1Xf&A*bn&<$ndS*UC~} zS^no=H_DO^5EF&+7l`D+6r(ufDuz^?&u|Jp(>;=&7#21rYU?qqx_(Jq5MH+^Z7;jhH;HzF+V#oBqb%m^XJc@PiISh z{U?txv#R|zhIercI^ahRXILftgZO}d@HUj3)*y)&XnE-U1iOG z29_&VF0-~`39UEF%ci6B73L~0{xh(#wqntBKz=qILtA0O^5#DSBWo)PF9-j!=@^;{ z6IK-dGqAF@V*YXh1xg~Hl&f;9YBydv|TfxSA~ip8<%7`h1) zRtEkvcvJ^lu_SCdhF-#im5KihK2_0HEJ>S=p_4FSW#m7DS5>eTOT(sP=p#&6nfWh> zUuCluOVg$kq|3kJRfYcyo)y_vEGwIip@lGERpUQ{b49Wh%i5-6Xdp~jRr$~0UY@pM zdD(Of?!tsso&O9C%FP%gF=fgWc=__BAea>@o}aBK%zC;uFdGVitsj}IM1@WP*-{oi1F|-vXEN}iZFjh8O zv8;J5Sl+*EI)4BdnYD+B)-JgS4OSQ0iJLoZ>%%EW&LpQ>mpmZVL`&`FrEGV-6n zt18%vrD4-C^bsbk%={O`ud>;SrD@X%(&b%ZdFk^c-$O2SsGh&COApD zhUNbs{xdYm&sG#>Jsp!rWeHjS|3Ci)dH0vCD8za?!L*ej&ho!t{#OPb76(R_|1AGY zYyU@aR|eSnUwwJc z>i_D^dzSw!|5^QCy=8#qKg)mC{;$3=z}Elj%X`-TtKPh4`Oos7)&JF723Y>H{Aca| z>MH|m{ja{fXYIf0&3l&rEdN>kU%h33dSl9{;S@+XZg?apVj}> zTLxJEv;1f6|LQ9PrBVNBp6svk(4Zvie@igboFs|C!&}CT@Sf$k6!v zK3V+l`zX%e_k_3!KFA`(Lh$}4A##HE@r3XM@7*bB|6G{-uM9BxUl}CRdjW`|=)C|$ z^i}|(jO=?2rT~6&fefOu-~Z0QJ^P-4hz|{YWRaZ#9~yd}gHk+=(<=uhcm56i$N&C! z@|+BEprP+I=m$B_(0e{gQ8bo)@gZVvXy^tYker`^KyrQt@q*tYMDBw32+`m7ZtVSE z^kM12%7>spu=2plLzR+;CB1ugmX%VILZoE7cInU;+f9seh`bmEGB0Q85YoO`*A7;8 zb7DTnI?uQ3mv#Bet*x6ItbK0X-sasI=b8tD2KHWe)O|$fG0NemJ}i~3InT4-P<1_@ zx(Br$_qKFN(%HIb)pG+~gVfY3-N#499#!a@FgMbE#^ym|6QaBR2uM1U`s{73){QUp zKXGhj-1JWl3JR-tjDAon)v43=dA~Ayr$$T+eXB9Q|D$H%51dsqj2<@me9H5RN8FP> znS)KDob=;EZjW=1O{mk5yJyqr2;&4Du}%w)4erq4^r|Iu?}utdw`}Ep^Kygd?tUt7 zY?jtr_}}&ulkQE9_fHx>{OgnjMkhF`MxVUm+diHDXq>{P7Jj#m2k^d) zc~t9BZTA;xy+qx8eD2FRbK=u(4IDl9@>iu=$J9fcE(>~n=5?x(a#Zll0T-huiM{zI z7k>EcknX(Z#BpPvuWL*5B)DZAgBAs_3-i^0^xC)MHeIU~ zw6JLmZ*fBNm`B+eE~-6@BsWrVmu)y-EMfWnnf|ICCNU2#%vMR3UmIR7qxo&$Dd#JdW7G1=5^@M;q_}Z&Gqe-^E&K?cC@M51&>sArzQ`~+0Ny3ZB6XK(roFgJ?u^gW_*2JY& zB)3-Raus4We(22aPiv`euFr{1{i*Ce<6D2y%{<9=itC58o#N(!AKUrpe>lbK@OmZk z`>yeE?>QF??x){Yao2QcK+NZeyB}UIOFkJ4*fP~)?&f=a4J4xHT)BBDFlemv6X~?; zL8ga4eK;={q_^*7!dLhD8ZX;EaqDMk^0TH$J7q%^$5*^0ALF{dcBgcbW%S!coSig; zH%ni8`A3hWXjkHRVOW=Sel{em;kA1oV(xa(S=faa%C+1!eY)H>!w@3zx;1f8Z$f+B2)26MX$=yxE z98zojYUe%qz^B@QN9s7u9%eL8t9Q-MU1scC7!>XkJ=R0sw8`1M^Nb`i_g{D3c}9AJ z%D%6s%%wJL*NVI3E8-A*G}2;3PX~1}B)SP_n#(^`1O6-+482`C*g;L!x+G$$ft(4f1vCG2^EmbNlt{nPwI?!QM0^nHx6VzW0VU zTs`laV>RZ>`M2v>zs3rY3+tUb_O18$@Hf*>GVW0k-A%tM3>?teaoTe4$Eu^2g&4Iz zu;h%`ET{H?%@!nmPHpi0?2**#X9m=pF!uF^tGoK_w2T+|<$TujoSTt#U3IOGEB4;D z7LBjdJ<_^u)aG?YSALRi4o*o1*Ml#vIc&P1!N6bMW3Mdsh>N_S_p-S-*jyNL(N!)Y zI%xR$vtqBz5`~A8_AZI)Ia7(~2DIPlyOD(HyOAiX=F?txKc}EqvqP3P@^1F7 zA6Fl~Oas3bBgrEDI__O|oPw>><%q?mk0g4?Zm)F~a{KR}zOlZq*#@!9}d0u zPI~TszTW#SPMIS6x9z^E%nM30=(F~GJ@>4(Cl}n#vU;a*KW(q8$?ZfBr^7MNMVjqA z)_w8`PRPBGTRv$L+A5tBeI2Do&K)^sWSh=@>fy#C##w63>iKb&)6M}SE`C>tP}q3E zV}{~uXJ&n6^xKY;i!qmKf3x}X@TszkUJV$0T8cZk(`m(8 z5}$t@`!!(M6aCjIRs(+Q^E&%rL8H`pT+_{4Uz(=4zngt$@tq-2F*njfXOn51nVWb+ zqw05d({;=EBL4EM&z71-lK$6jYQI&vI$`5I^DC-@&0}2>0&ZztY&6U1s%3ch{c|Hn z88(PG5<9q_#G7@oeLsocJiP46=TjPbE=eEXT1eD6wd~=W4W21auR1Fxa^t2eI7iGO z8J|avyF5!g(9mk;`8X1K^{mcu;=5(?&h!YelLu>(wu$qUzaH0cZ~x7lbn7azqNY@5 zDG_BU?MN$8_p5=^U;7=MHz~#cW$I2Ha^nQYJ>qgIIXybydISA${}FJ!JxJnWGA-^`$&OMMsry6ib~z?*wx_5`KOykWn*7I)|VPcZ+M z)$NZSQzp0FXq_=ea)DC!@ma3lRy51dOwZV~(cz?Zhi^U~&&Rn3?X#M2PISc9@n;^m zT+#UHdfW*R-!eIP$$ zz|$btV;*A$A70bbJnE3q`2OEb^}p_|F-cNMyLAP#f97{y*X}I^l+?trGB@X($B*E59HbH5Bw?~&O2R_)cVnY1MBN?a8 ziwA!Q-0u1Hk=3P>=U;xher~SKxhLW=9%Dvk`EHXwS1a(*B=Ei+-RJYhmb_6K5-s;M z7mIB5%S3Da?FnPv&aFH4eC^;1j{?$_zYo71H!ey?-lB2V>Yo$j&6*!ykUXBm@K#-V z;2qgDd3cgcT&*~jv-`BPo1CvL*+JgwwfAjTyLmA@9qDfSn+_7$HGF%!HKuj7FL&(M zxtYk@|8}oix>^3t^i-2mUY2ioE4D3drJuCB`OQr-UgocME|+WnW&V{7FU6x~cYPRq zf9r_4s#(3S>m_T*tI+1dwf2#QqtpkslQeGYDAxPky_j}&eZ`xKHw)x__H~=qBK*;; zxHhY&oNTdgU3firy&9a(fvUZwcF!@#dI;C1>U=!fNZI{`SKEXy(;o{}M zF>ayjW0ve3HW#9<4Cxj;$9~4n9>=1BKV`;EUE%#fU3y$y7lroTkB<#Xux>kV&$WYn z^hdlK^y5V@%bjgan@$5eD ztw~8YcG}Q}_cnHn?bl_&GiFZjn|Lq&_`Ye5PGXyM7eCq=DSoy^%}>vvrAX5oaU0B3 z1~(e=>um}Ly55m)`a*uenC=4)Pq{tY@tAJx$#dc7@6|Kkr--U~vg5HXK68y4)*sv8 z=apZ_zJi4N@D*t)@3+m_zwl9$NhjM}@{>3xq9h{{sGMOlt=*9j<$dl;Bm0fEtF!Qv z+@ULDTX-Zqighb7fBK7*t2)+s- zT+7q3fi@3^OmD2+Qn}8725u*u3~N4FJ2gg;q-Dy9d`gmTw`c3C>zTn14sCjCowTS% zXpHZqHnm-P)Smt;YFW^*?pw}ET5FDVIo$u?aI5a4qYtSdfz?lW%+X5>+qVYjwhzPJ$|Oe`GD=$x(*q4K?|BWH+NIs{cA`sxv)hN^R9pW z5oq~t%;b8X`_=d{Bxb0^v_os8JG#m#le?`S%synla$!&1jUEezxITHVEWi2VroeXU z+AgB$>msE_@;n!Cn=gtOcWg^t5dH4|aHib>+mR!(q8@uZx&7m#(+Z~n*6+3kJ9|$N z)!2FKW4oCvCb~78Fm!m_);TW+1{^e-Fqix3*5kk<796Kfk3DLQi+iOZ|*honuUrqx!^YNxie~b@GApqlXr+Iyr<)H~$&$DJSoz@SLh=Fho*>_fM4 ziTjfFPv$1RvQHG1R%vP(HIp+{Y`z3XM4nuXeU@=0fk)Lw=P)^YL2O(AVu($I-hQIv>08LSDC5P$n~8HXhVVO;$&BDW+2DbxS8z*JawTg7W#6`mJ&vA9Z`Jsw?%90}6qmMIHdtkt^y1+vH=FxQiQBf) zxGv*$@xc;}#6TJKos*Zx&emyqV37Ku&+^-v_Hxs0QYU)I#F)0n>dqbhO8IH~Npf92 ztZ%6kN%Wf3ZK-@i6TJMd9I|(J`t@}76bq%7{ab6q&evQttd^n4r!f+f>$zyoYQCt0 z_vxDc;%7bQ*J-Em$hk#V>j$sbNUt1kCu;4`oJ>R!INfvl*e@wMZNiVH{FvJ|z;k(| z=w3Q>j z>Hdrdt5e%d)txj?Q|{17m3_wFH8bqaIDWsiV8koiN%aOj=Pp#V)>v_zt2p-P=EwWh zzkj@Yz&cXu-O~d}YtICF226-OkYvaS@o5lpwry9neVsNAeSB3c>q6$xIN6^XE6#kr z>D7W*9U+=A(}o{DI8Bti@R!3n<0o?E#){?ZL$#((JL_hpS<|US)5deey9Mah8+Kgn z?p@nsJ9MHp+@0JcVz{WfZG_p8dt&Op9Gk=pka?0iI<;{Z(eP(e>hk2})sHG^etNLz zEP1i=Xrzed_xpxVI=jv2#PM@ThEW_x_DK)gxjA_#FC+BFSW3|8}4hg z^ks1JgOJ;6^J3PIe}pF|Ptu$*yFvnzkjT4nL z?NGokzaH){&YlVVZ*48CB@-@2KiqL?z09B?hue^r>1&<%#_OHV1wHeTu(GG)Ed({`TcAIbV%;%yz`_+f^+nx^oS-knyS^g*9(7UjOjf}H^%O#;-|p1#|;lE?M)xK{8swT5i`>t`fat= zYH7afmB+H+tHIDzCu}`ELT4wDZI^?Ep?}VniZ?+YU84@Gwn5rn! zOLnXBk2;HP)#$a{xNgXgPTM=r=U7b@y)5=zQbl7~q>jj(b&bq-C2PyJI1%oAJItrq z2)n0oGBr33!LyIt8mxJ4;N-b=eOGka|3yar!s3AGuiDs$CG~WicFa)b+tB6nGghp6 zQTML5e>=y1^Do6UcS}x^ceTIuc;;E+a8hA(hSL9fx$eIvo~M5y5D=t^fOG@}lrFs^ zQdFb}(xiUqy>~(gBA_%8m0lG@rAn_Mh*G2kL3)7DO9)j6o#*)e5zp&>n!NXBcII|= z_ue}fi>$|cesFZaMFD*n(}NwkM|kN&RpTso!cxONU zbL|jIa@YB|BHbok$n4D%&_+;ejFtPb-}- zXlx$UJ~Ng2s(N1dZR1Eu_?x7`>r`arHEB6wT@%3f>lT&D|~iM zvGU)QxL4&czf3b%Wg4oh8YegE)I?)+C?+I|hG6836zhPgdw3m5wqhiNUr-Mdd<%}^gQz(%Fp zvr3anOZoXWS)|WX&uvuLhf@CijwSz$&y3&NN~}yiP~5K8p4T3GFc5>?+BLZ86=L<@ zjJ!a0YTgHPn&#AvjLIMhA-8JZizc#4C0nP8aHekE-VkAs`dDIAd8P-HZ#SYj0lI4w zzAWBBi%!$C0L4XVhXMdOv6F|4Q<989Z>)q24Mofc0(&0Syg;u`Q29^$;qWL!#$G_I z;V8XgH)kcpdQT8gbAj5hEbrYy&IX_qAg3u0(nv@dYZ@rIYqTc-;V}Wbr5Us;uAS^+ZlT z?#8DSw@XRmQ8iQT^1N_|_yC)Vt25V?>9Y6YVO(&AzQIgu4pEXwbk|=i_|(?KXp*Ex z#A@#u*}gGw!$C9SY2f1bkZ1EG0Il4N@Fr9$XNb@1OU%5F9Pa^CF6h>6ceblWR8(o~ zEnI5khaOd^s|4qLBMER1sq__5bv*HnnOl_GOCO;yzJo8Z=ge~XXyam^c}!aIgO<9H~c!1G57Ts8a@c_BkXW%ZM7CNcCHZXWcI;6 z6-d|CAsS(Bb{6Gg2&6VSn?w;+^m@7xP&WXP0@|&A)suPm^;=WwKh4d98ReyJ^+<9z zTf3CJmo>dOK7P%{cmMZ%_=JL0O!pOf%u5yMT>Pgzm+$ONh`%2C#Id=)KOG9xt+1w? zk)`+n6V=6-ZYN$Vpe^EfdckD2jdaNQY-#a_p-j^8ck&`TUBRH?=8VD4P$WiEt+fzXVrYOMZNq3|0=%FltLhP<6(J1l`h5wQ<+i#QAPx zst)=TXg8R(EZy$BT-COd?y5nSrv+sV5iVmtEvsx+ao9QE`s>}zAX_V=^RZ;Z`C)KX_q;%QQN5Tj%sn&T>0pVZUCl_Z7Ke>|$~~i3BgaR#Buv1`&^(@{PK=*Oe_D zeII9GIbAj%BKvQlJ(k8ja@@#AGd_*`czLzjHaGH%3{N<(2r_x>fqYD#G5BVn93j`Z z%{v?INY&ja8+K4|&--t>-`)VUH|a-0t3v+2cSGY<`uPqczlR!gX*pbjJFVTQFr%&c z^fASBUrs`zz_dt@bj)WtoV^J8^rl+RNM!t-8|qFdm;Aptwh=|<&;TWTapdhmk^274 zLlL??=jzn&Ti_x@18xo0J9m0Q%|CngV`penBZ&C!5xxzdFlv{B8YQyJnRpVcCn3)6LO(Xa%VSoeT~7Vt>0GKvcXGfozA#{CfgSxk1_h z)6t0-Xyxd>67onH3LL&N0lFoENN|M*i1Q{I(Xw#s;k`zqt{S^)aTav80}OJ*By$#O zdUXl|Ab2~h$SE$0y%<%|x#?VxyYcZb=rfCFHb_79#(kWOKEiEc#YOZ7YIRZJUP}I8 z-}y}s>QnzoqA+wI7U%Ncie^v@O?ysgP%fdfgw+5C^zoTm2Xdbl}0Y0@=M;P&K%UdIV`ThAlCei#$2HRTp zILHfso@pGFLpqM-_te5Vbr@3%%PmD06t`F2?qH%lVTI)=JI~;Jow;TZ_9xBU_O9KF z$>!}VWO*y_-14mhZM*&Ecl(q4n==tA?%8!xzGL>Lo2FB~Q}-XrrK47HZ)~jAEf!s` z;P#$xYXj|6nHMB<$2M6O$ZcJYVaSWkH_fzYC$(gVjmz8uDlj724ThBaD*PA~G?i@mg{_r%MMs>f%fFa+1xt$+E zd9dL@rZ34WN11PLvFrkj$fRLmo&2MJQlZIoW3K+#46#1tZPhojs|u}7R%sJjx0(4Q zBff;ZPN6FDd^YYFS35JYf995^)lzU{hqb^zuXA z{pErvA96kGpr(@%OlbL8gv!rW;q!skGBe{bf@ftK@DY`0#n#F;a3kROpM>v!KjY|~ z-W-zIa=ISeuePO#qlu%81MrNaf~9F=L2gCgPZ)Yahb<~p%k}nu;HYgjuSR^*=0fHV zKTm{G+~C~1id4GmPJ*1RzsUiCdr_gd(8r0bQplaeUrK@(x)}6D%oZ&W-gVfxISf+a5Fo*db12_C} zS1XX@8GRpE!Z_%W?F|{U{Ub{rsa^fe9^^ZBTZI^vs8^POYN<`3T3W2M{IB^(pxjFl ziZgD1i2t!kF|E9C%y!q0Tv{r~6mOlD2mU_{V;K3SB~^w8jqi3hJMtQ)E|3PfpeH$} z=VH^G!s`UYSlnAoxtVs=T*~85jm9ujyBsmsZ%dB&BH%N4IfmC8vS!VGC?&GE-1_ zj&*nqV1<=v@q#iBdk^_>=T1Fveezl!iDFN*e(nc_>*yssJ50R8wl2Es!K{vwn!-!f z*_T#H}vH z7hs9KST`g7j?x+cf~(}*0!IQ)ST|SzKa|{THf{MmlZ=w9eG2{Hg>N<*8qfY|-wJ8B z1KgWQwn!=q4`)bK$=XP~HdUA8>-CE=Uo{i%Z`T{gMAa7`ltC3s_;gz|!f%~iV_hO>$9Lx;Ch_OBgYM`K-^78I4| zp8)sz7=dL9KSkg|S#djj{z$|uw@c^b)kSa@=0AbGe;vxh)1qP1eiSssso~9@7)`2P zDWI;Gph9wZ>yR8WPI$U${{ZaJ*!?VN2)jf4lq;cb{{y{n*p~fe4^} zPCjNarach*<`(|;fi7$25NqmLCHCJfJekKi>>lEAGyhK2Ldt$F_)C%6#4HrynMF~W zM5&Tpx?-ic(smnvhHK+OJG%w&FMsf*OQOV@ZM;stD{Tn*@?S;qpH3h1quC@vG3#9< z?^#oOI*AR6(D>58m7P>9(|ilMeReaLTlJyNDK~JE(5(gh@FLXEB(zBRO*>an2t?J(0!xgicn+U6o zwIGl-JiUJxD7^2g))Q(_f5|@bgSUsyMfZgIe&m>%eJpbQDC!yTuvNb*H(T;jdIL&1 zhtoZwB@8N96&C69DsbNR1n2GM!FQ#^`Sy}_Mf?~0Ru`ast8)qZa=@#a`3A$x*9E-y zv#Obtj-Jp>vpTM31gRJU_*Pif?+5hxrzx0uDTU9>1&iB#Qhwx0v#7k^yg=$`N~NKzWj8(A4nj;bSXus+{rY^ zr+cC`%&WT`bfMi1ax0c%%HKB!6o5NEW>oRZFFLHg*DKQOdUl%yc<(;#i5AR!O3b2mk{5?2_qygrS>&wOwjNlxyJ1E{0N@Uj^ZJu675k#b2`Blf+ zu0#PpTqkqDr74o%Y^zm(92t-t4zPo>PyC5;Sgu4GH1^$o-@{=`3al0cfV~N0jew(4 zDS^nz*{DhTA8^c8533$>*j1V&{cSF3*X<{ym4#E~u*%bG?!Y1H#;%wuZm5A7l08hz z&pbn}FR6Tb{mZ!7q2|0{GRUAm;qqHOz={EBUOQCDl0plKAA<$pwE{J_NGX|CG#oK6 zu=%Af8CM2F@5BA^OOHj~w`r0gPj6n*q(zHrF1BE~L>5TNo->1K^A7YG02$d+2e6$c z*e(r>#={(ttd*3%3$(lh+p%8edsG2Q{_9H!S`4bNc?L*cGO{i_m$TMuN~9(@mUyf{ z3fW)$C<`cel-j)R*#jk~~l1}GKkf*5$71o zMW@axd7C*DJWz~Cxok*p=v(jwIIISFQ64MRo@kwPO60|*t@#m<3SRsQ9Ex5-y9xr0 zm49|8NmN0Ihd&{OitT2FFmMU^4uKHFwTcW0>QiT>yUi>ut5XhuuDp84Te$e+T{$>u zbsF0x?l72selAk`kG$8j*PvG$*EAeZi+2;iKR-Ymxg;;-XU1D@qv5u!EatW~7$d}5chV-_B?PfuM3;2tdR zF`1UvWxLcss#{s+@5aPc#tr@cP#K{y6tn1TYFw>oKZ2>;j}iWS+11Q1G1(Rk4JL@K zygC1=%K4jwd^^*V0S}p|iV>L(Cl*sCbLC14@cpB&OKCzOeRO}iVBZ|@-zFXZI~jCH z!6J}jBwZr}1m@L`VYx`py0zMHp zG1TwGepV~FuxRd^0T#}1-@b*F{!g6j>>s2=SJX@;|CLasb+%(TOw>y`$;iAMXES}| z7oT9xq%pL<7=drziomb5=5v;R<(E#kn4aBYR&G5nr#5-;TkixlJxBg$_+yOL@qtm$aMg+%-+G18>sQfwTYn(`vBvpR#N@<7TBsqv+-SAk~XoF zbf6M8v7)y2Dh1P9s!zbX+qql;Q`0zRk&iU;e+Ko>_?YW-?nJv=2l*CY<`YKN{BEwE z;POu!RrOZPlHBtBwS4S*g7v5>Bo&40G@I(BF{9gZW|qczWazZzqAn%BzbuiNWdn+1 zjQS}!0e@jK$`_y2Pe}&67Et(B2>POKoC`Re^`_khlY;*3tiDW7^lgm?z+I8MfGesj zn7c&b{rmSik50&(H%)zPq-AB~{VYv_l`kIicAPQKl5Lh@SoNT8TY}qV`0_6p5?s35 zd6$HBbwU;K1?z^PojK&?0N(Tp9jemM8krxIWlfFSGt`$t-qyTKg#a@8XZvM4NMt5JW7lo`Z7$tWKYm?~47HEEVf6GzTL^{5L8XDee9WPp1(QBs z|5sZ2(Q{p#2^|#Jjh%cWX5LV56os8yzu%>7O=R6*2P$>zni=w*%Y>0|J3qjZ0t+U1 z2cU50CZMu=3(2zPiy1Nj^YhiIRD@9DwwB#p#{aJ-vOvwJLiJFcj9D+*-W{# zeLH|ER{YFZnHdeP`^*O+A@9qB^wH{2At!!eDQ)2BCxB4ys7Xd`PpGz1#a}>_hbLgI zVNneu``)90R=?Vm+y>>5OKZb)?<)FgSB^Oy^|(?+;(kkkQ`q5={8%y-vOo7xC~cMp zW*<4$!hb0&d-~1P;f8DUqr(ko+MFTIB01NS{NFgjwQ!u$(pGRmk5w8(skE{Rs*b zza>LEbUp;`3jYCW#NqhnIW5UW3E+Dt01QaXK*cnx>5vBr5Om%Rp!9Fx>UR~;!M9B| zoW%M`pD%$Hy9tK13#mSwd%!CP)o_`!S1>pX9T2*N0J=g#E=a$uW(08}XG;o#Af{o5 zQsg*gUM{488pQNBSWqgd zD7m1>a9HDvEBX`FtBT0Dw;?hl4Z0N*Mp=1qLTyxdZMl(o!iD6> zGI?%Fv~L^cJ^**Vg4VPmwW&S20epq89NFiv(9!RBc5$wC`AGv&iLt>mMJpl-$MnnAs32IA*$+Yu^AJpUGw}YvCsks87F1a5c;KZ!*85DYno)}a|>b^ zBesJRxn43&?W06+`SYUb{P!i}Xe3=?z426!G&4=Xt_oHBd)#K@m@lz4)fUhH!My*> z$m#kPM+o)ovUN?^{ZrXo;ng-LmdegHhku;NSLE^-2u0T4^9LZ^Gw%nSHpNB*H~fTU zpy?+{eiR0WOh`$;&&~C2S-?MJ1;l%Mhe@t(2<}6Xodws)5n^upkHRJ zGNJl#D_2R?x#TlHU^jM)lh*%ButYI~cbeRoB8Ti4)>=Zqt@Y1LikD^0;@x@o`>3|_ zfA>x-sVo_Y`w~7mmeti*zxCPLQ~U6>V?ki%Uzq4>@h8sNc82KQFSF{T(f1Mo>I@sMMyBex^9KG}9%Ug10`R=k8 z9X&!y;C_uW0_S-eiexwj&QoQiaAzAo^7gOilr{)YD++XRHWW?cCj!X1fAz>-!NB0{ zVAh`t?rj(3hJAVSnHiW)aDyDOX+sj?6Gb5wpR$VpsX0bQVC3fQHGolc*$Y;>B;$}n zd6@Q-!Q4`fmZ=nf3G2odN5@)(_nyB!c|08ySBpZhraB<3$%UZ{hIW-c zG~1=W#(azX$nSTWr|vUG-Ea$>Ti#fCEz@DiMQDj+1Z2?}z+$r?s^jvj0!dxIfsP31D+f9Nns^sj5b0=*;BqSkz8rl!g&}vRsu85! zZ1sD*$b?dB5zAX(lityGuiNG)t;rM7t_#FHRS8MIfAvdu+6XziT2@eV*S)VQM*u(VIuWu<8{;4 zdsx`y)aX69@oAZsk~n6lJqYD06O&`;s3S4a2rb5O~v=U(3;bMpW z0A3WO1WBOl4F>#D*F@-)e<-bqjre0Y1a1=2t)4}4^BAZksr;Zl===Ug20OMZy21?D z#XY@h!_>SCmDMYmq|}%CWY2=M3qR*U##LAAkqbS$n!{)!7EarDjW4RCI^0|oHuA>W@HyhT>i8+mEaY(O%{tU3d@Ps5Cc$?aW}_=ME#tz@!;Z8y!0HU6MR^P`u1vc2r*SPVK`w~E0#KSXIv|NQRr}u}9 zr-p{dv@9I1^u_lJT82MV!H!Nmxle|UFp*GDxz{+ggE1~{j!2J2)nz=j_785N(=Jf? zuh3S}Bf~Z8{Sopg=jg3l$kA{)r55}@$2ld(v|VJ2s2|^-4!P>%7HP&O4ia8JPvc4) z1COW+4Aboht8RNIF*+k}(i%&z&<%c_kN^&l-JHNdp%}3UDq$m!y#1q?3b|7Ya>wwF zCxFfO5JsTU9h(0_QLow!Lnk@DC(Oe`of#6GnHz@Jy9GS`2PBbp>PQ*@eI;NSy@lic zU1VnAt}CFWIwuGuIfhIDzqwQvNsg}%=+wv=roW%HGuisR_x-(&@}cG*AuC65d)lJ- z+E&c`;v-EBRk-?cU6@eo2A77T$Kj~#)T&Ek2)Id8u@D{W>v4U+UCHVivv^*K$+0OC};#2!vG+yZPaYBao{g_t83S=F}@y9~gH z;O_x)Fzo|Fe2ngXD zZKiE|3czx~deCoPhVr@mqjZ+AgZgsvyP_gilWjk0+cu7|f()5Htw+gjZoNfM*={RJ)p01jV*GlVf{?^-qAim*qJJjiPh^c260cVz}XrLe)@z-1^*7@kXg+ zMERt?wBN#TCug4I1r;sKGzDHvRutRvTX>mF%4M#aLX;ziW&Y&uEYp^D*>^0}l2oia zAay1PvLi)@L8RMe?8($NAyWs^$hVF@vwwXu_)~(bS45z(D?`Y4lUd6CuT|Asrgk2c zDU*`WsgVG73GG1V)m}K@*tiR1i)c9^tCFK)0bdLAa~f{}yXiGxLOJUIATrBnTM;%K zvpr|@Gfds96}>`!GBrAg>neNKUI@HXbqd(e%G15~B0TiCt--d4enmkE_nu(cFyxy_ znA+HBG4cEMDWG4gRJ^#M6!+Zl+;_9{c(bZ)U@DfKSaD6cw=A{NX+e+ROa10~+R0VU z{cF(3$%&>=9&`=cc12NVP0n3A*RKzSwN{#Mtyo;15aAi{6 zKQ&NLb?}}G2N+G3!+{#XwGW$A+2)74sAzbc+0eb#upS%K9j?sQTP3$Evcj@?tFlwA zNrre)Jywo~$1s>u?G6KHAWezY*~o~l$=vi;!N5i$`WfwBjXyj*$jH*I#Sb|Dh%V|l znQpE>Ah#gcH|^hNrZ$M`U1KV?dprh9(_ zo~8^x6zv@d{?f#;!bx$|h*aSI`pYB=GDJLOznUE8-SrUA3PCZV1H$_QfWk`Bn!w0c z!5>so%eE%;MmJ^Lh@WatMkdcno!amdv}2oTZp7i*6GF$y&g5Ar0f7o^qgAcl8}}(# z8~*N4CMule{!2>IKW}mp@SKYUq_73EGQR$*MQf`zjWu(0{e- zSk39s^YfH6`IAJ`M-R7+${c0zk2Sh`ckIr3$Juu6vk0n)LAL%W$T;Rz0|VO2{b3L= zWtUq^b$(@Y_v!l!MY^Z*;u7?$rf_TDAaq-> z>pD4OHqkxqgtuA3-K;Ob=f|r?*_(PX!L#S{!Gi-2x04z z-PZoQ+J6*-_}tGpRP}Brlit>1BvkTir;+Bv3o=JrBefk4-mWUih>h~2E8FhvI3;tW z)Op!QB2@i!xH_=CpP&MiS#tB}3|jY(a;^7_s`S4ryU^4P!-@DMl`wlJ2^K6TJ+Mm* z1Qm9tkii`aS-HwpvLdpi$HH9VUww*w3b%O^)|L~13b`^^_A}=ya&P~lrH!b}s*d3A z?L-%UOrqgyiW)Y(ZsR1^;~&3YYB}h1YizH{XQ%s3NE=_fj}dGxmpZA`}UN&#x^Q-vzF?dVAh-;piY9+^Ys=4rpUpE;%M&lVpN3g zEe!X@5w90GL#r=QXDg^0z@}G+c#fdda>55~+v6|bvgQ|ZdUdGUK~D?9N%){sZ1sNq zE|W}Vo@isAZE=>I!|=73KQSC;X_=ziRG)g?ip~70s`lBk_`;acuRqsPsjJf%)*%@3 zB>?_cm-hJ7CyuRD{Q%wT{|nyhs{JfQuq5_>m?nsQv}=E->Bju(;e(Iv;T6SpEig4u z>b_Fs9)3jKM3o>4X0C_O4}1~LV}&J2AKFt^r~&w*?kfHMbJ zpIe8Ll+A?V%0Q*vJ)r$dmN)ng*wR-GG|0-qVcrvQ>EZbe2fQ}#Cp*3)L$GNu2PiRo zY6ced{!Eh1JG?Iw)kz9`ZIA|HlFGkFnMDia00aI@N&Zs$WXB~ZcPU9;O2t#a(jw^M zP$k%zmfS$!A#P^^iCjCVWtYvL87WBt_DxsJ0Uv(~%Yh_o-gjdLE1E%&*@XrvNdtmO z#qQy6+tkUBl9bPz(RffzVbYqZMkcJxa`4}!q`P)Qy#;*s&Peb+g9=b-Fd2y9F0ouG zf@MNC*QZ*l^%qt98mwSY=|B^IuYd+6of8SBYKxb>i^#qN8K+?ayLrxp7b=e@j(HNF zgl|czv)&f9XjTP9orFyix+8`bZvx5Xz2fpvZUb`Gxk)lD(9TamXBy-~OXn6h=1WN% z{6^#}G|`6eLNtL5(l^$}q*eb1+`9r|6-ITahr?jGccC(S-p#zH&4H0e6vWcTguMRn zmeyiseBWI8+Fa3Q!tv%bwe>99X<9;Xc26hsa&&lZpi-8Ct@#R5M?<6c!g&E?4W}Ub z&kHE&FnF|OSGA7;2lhk5 zkG0?zx&!Qd?;A`^vD_J1@$QVQPc=LI9B6)W`gG!W>$v3`IG#Q~bOO{f zU(7yl#t~Gts>gE;6BIlQ!|N>?rdp~T^E&?QUEMR$di19ue{eF512fiQF@o$cK*#_9 diff --git a/web/public/index.html b/web/public/index.html index 668ce47..ad99b40 100644 --- a/web/public/index.html +++ b/web/public/index.html @@ -12,9 +12,9 @@ manifest.json provides metadata used when your web app is installed on a user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ --> - Next Terminal + - +
"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),t.exports=a},{143:143,33:33,9:9}],36:[function(e,t,n){"use strict";var r={useCreateElement:!0,useFiber:!1};t.exports=r},{}],37:[function(e,t,n){"use strict";var r=e(8),o=e(33),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};t.exports=i},{33:33,8:8}],38:[function(e,t,n){"use strict";function r(){this._rootNodeID&&d.updateWrapper(this)}function o(e){return"checkbox"===e.type||"radio"===e.type?null!=e.checked:null!=e.value}function i(e){var t=this._currentElement.props,n=l.executeOnChange(t,e);p.asap(r,this);var o=t.name;if("radio"===t.type&&null!=o){for(var i=c.getNodeFromInstance(this),s=i;s.parentNode;)s=s.parentNode;for(var u=s.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),d=0;dt.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=l(e,o),u=l(e,i);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=e(123),l=e(105),c=e(106),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),d={getOffsets:p?o:i,setOffsets:p?a:s};t.exports=d},{105:105,106:106,123:123}],42:[function(e,t,n){"use strict";var r=e(112),o=e(143),i=e(8),a=e(9),s=e(33),u=e(95),l=(e(137),e(118),function(e){this._currentElement=e,this._stringText=""+e, -this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,c=l.createComment(i),p=l.createComment(" /react-text "),d=a(l.createDocumentFragment());return a.queueChild(d,a(c)),this._stringText&&a.queueChild(d,a(l.createTextNode(this._stringText))),a.queueChild(d,a(p)),s.precacheNode(this,c),this._closingComment=p,d}var f=u(this._stringText);return e.renderToStaticMarkup?f:""+f+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n&&r("67",this._domID),8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),t.exports=l},{112:112,118:118,137:137,143:143,33:33,8:8,9:9,95:95}],43:[function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return l.asap(r,this),n}var i=e(112),a=e(143),s=e(23),u=e(33),l=e(71),c=(e(137),e(142),{getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&i("91"),a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=s.getValue(t),r=n;if(null==n){var a=t.defaultValue,u=t.children;null!=u&&(null!=a&&i("92"),Array.isArray(u)&&(u.length<=1||i("93"),u=u[0]),a=""+u),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=u.getNodeFromInstance(e),r=s.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=u.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});t.exports=c},{112:112,137:137,142:142,143:143,23:23,33:33,71:71}],44:[function(e,t,n){"use strict";function r(e,t){"_hostNode"in e||u("33"),"_hostNode"in t||u("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e||u("35"),"_hostNode"in t||u("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return"_hostNode"in e||u("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(u[l],"captured",i)}var u=e(112);e(137);t.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:s}},{112:112,137:137}],45:[function(e,t,n){"use strict";var r=e(120),o=e(30),i=o;r.addons&&(r.__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=i),t.exports=i},{120:120,30:30}],46:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e(143),i=e(71),a=e(89),s=e(129),u={initialize:s,close:function(){d.isBatchingUpdates=!1}},l={initialize:s,close:i.flushBatchedUpdates.bind(i)},c=[l,u];o(r.prototype,a,{getTransactionWrappers:function(){return c}});var p=new r,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=d.isBatchingUpdates;return d.isBatchingUpdates=!0,a?e(t,n,r,o,i):p.perform(e,null,t,n,r,o,i)}};t.exports=d},{129:129,143:143,71:71,89:89}],47:[function(e,t,n){"use strict";function r(){x||(x=!0,y.EventEmitter.injectReactEventListener(g),y.EventPluginHub.injectEventPluginOrder(s),y.EventPluginUtils.injectComponentTree(d),y.EventPluginUtils.injectTreeTraversal(h),y.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:E,EnterLeaveEventPlugin:u,ChangeEventPlugin:a,SelectEventPlugin:b,BeforeInputEventPlugin:i}),y.HostComponent.injectGenericComponentClass(p),y.HostComponent.injectTextComponentClass(m),y.DOMProperty.injectDOMPropertyConfig(o),y.DOMProperty.injectDOMPropertyConfig(l),y.DOMProperty.injectDOMPropertyConfig(C),y.EmptyComponent.injectEmptyComponentFactory(function(e){return new f(e)}),y.Updates.injectReconcileTransaction(_),y.Updates.injectBatchingStrategy(v),y.Component.injectEnvironment(c))}var o=e(1),i=e(3),a=e(7),s=e(14),u=e(15),l=e(21),c=e(27),p=e(31),d=e(33),f=e(35),h=e(44),m=e(42),v=e(46),g=e(52),y=e(55),_=e(65),C=e(73),b=e(74),E=e(75),x=!1;t.exports={inject:r}},{1:1,14:14,15:15,21:21,27:27,3:3,31:31,33:33,35:35,42:42,44:44,46:46,52:52,55:55,65:65,7:7,73:73,74:74,75:75}],48:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;t.exports=r},{}],49:[function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},i={create:function(e){return r(e)}};i.injection=o,t.exports=i},{}],50:[function(e,t,n){"use strict";function r(e,t,n){try{t(n)}catch(e){null===o&&(o=e)}}var o=null,i={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(o){var e=o;throw o=null,e}}};t.exports=i},{}],51:[function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=e(16),i={handleTopLevel:function(e,t,n,i){r(o.extractEvents(e,t,n,i))}};t.exports=i},{16:16}],52:[function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function i(e){var t=f(e.nativeEvent),n=p.getClosestInstanceFromNode(t),o=n;do{e.ancestors.push(o),o=o&&r(o)}while(o);for(var i=0;i/," "+i.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(i.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};t.exports=i},{92:92}],60:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;r.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=v.createElement(F,{child:t});if(e){var u=E.get(e);a=u._processChildContext(u._context)}else a=P;var c=d(n);if(c){var p=c._currentElement,h=p.props.child;if(M(h,t)){var m=c._renderedComponent.getPublicInstance(),g=r&&function(){r.call(m)};return j._updateRootComponent(c,s,a,n,g),m}j.unmountComponentAtNode(n)}var y=o(n),_=y&&!!i(y),C=l(n),b=_&&!c&&!C,x=j._renderNewRootComponent(s,n,b,a)._renderedComponent.getPublicInstance();return r&&r.call(x),x},render:function(e,t,n){return j._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){c(e)||f("40");var t=d(e);return t?(delete L[t._instance.rootID],k.batchedUpdates(u,t,e,!1),!0):(l(e),1===e.nodeType&&e.hasAttribute(O),!1)},_mountImageIntoNode:function(e,t,n,i,a){if(c(t)||f("41"),i){var s=o(t);if(x.canReuseMarkup(e,s))return void y.precacheNode(n,s);var u=s.getAttribute(x.CHECKSUM_ATTR_NAME);s.removeAttribute(x.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(x.CHECKSUM_ATTR_NAME,u);var p=e,d=r(p,l),m=" (client) "+p.substring(d-20,d+20)+"\n (server) "+l.substring(d-20,d+20);t.nodeType===A&&f("42",m)}if(t.nodeType===A&&f("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else N(t,e),y.precacheNode(n,t.firstChild)}};t.exports=j},{108:108,11:11,112:112,114:114,116:116,119:119,120:120,130:130,137:137,142:142,25:25,33:33,34:34,36:36,53:53,57:57,58:58,59:59,66:66,70:70,71:71,9:9}],61:[function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:d.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e,t){return t&&(e=e||[],e.push(t)),e}function l(e,t){p.processChildrenUpdates(e,t)}var c=e(112),p=e(28),d=(e(57),e(58),e(119),e(66)),f=e(26),h=(e(129),e(97)),m=(e(137),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return f.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a;return a=h(t,0),f.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,0),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=d.mountComponent(s,t,this,this._hostContainerInfo,n,0);s._mountIndex=i++,o.push(u)}return o},updateTextContent:function(e){var t=this._renderedChildren;f.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[s(e)])},updateMarkup:function(e){var t=this._renderedChildren;f.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[a(e)])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var s,c=null,p=0,f=0,h=0,m=null;for(s in a)if(a.hasOwnProperty(s)){var v=r&&r[s],g=a[s];v===g?(c=u(c,this.moveChild(v,m,p,f)),f=Math.max(v._mountIndex,f),v._mountIndex=p):(v&&(f=Math.max(v._mountIndex,f)),c=u(c,this._mountChildAtIndex(g,i[h],m,p,t,n)),h++),p++,m=d.getHostNode(g)}for(s in o)o.hasOwnProperty(s)&&(c=u(c,this._unmountChild(r[s],o[s])));c&&l(this,c),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;f.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function i(e,t){var n=s.get(e);return n||null}var a=e(112),s=(e(119),e(57)),u=(e(58),e(71)),l=(e(137),e(142),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){l.validateCallback(t,n);var o=i(e);if(!o)return null;o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],r(o)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var o=i(e,"replaceState");o&&(o._pendingStateQueue=[t],o._pendingReplaceState=!0,void 0!==n&&null!==n&&(l.validateCallback(n,"replaceState"),o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n]),r(o))},enqueueSetState:function(e,t){var n=i(e,"setState");n&&((n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),r(n))},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&a("122",t,o(e))}});t.exports=l},{112:112,119:119,137:137,142:142,57:57,58:58,71:71}],71:[function(e,t,n){"use strict";function r(){P.ReactReconcileTransaction&&b||c("123")}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=d.getPooled(),this.reconcileTransaction=P.ReactReconcileTransaction.getPooled(!0)}function i(e,t,n,o,i,a){return r(),b.batchedUpdates(e,t,n,o,i,a)}function a(e,t){return e._mountOrder-t._mountOrder}function s(e){var t=e.dirtyComponentsLength;t!==g.length&&c("124",t,g.length),g.sort(a),y++;for(var n=0;n]/;t.exports=o},{}],96:[function(e,t,n){"use strict";function r(e){if(null==e)return null;if(1===e.nodeType)return e;var t=a.get(e);if(t)return t=s(t),t?i.getNodeFromInstance(t):null;"function"==typeof e.render?o("44"):o("45",Object.keys(e))}var o=e(112),i=(e(119),e(33)),a=e(57),s=e(103);e(137),e(142);t.exports=r},{103:103,112:112,119:119,137:137,142:142,33:33,57:57}],97:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){if(e&&"object"==typeof e){var o=e;void 0===o[n]&&null!=t&&(o[n]=t)}}function o(e,t){if(null==e)return e;var n={};return i(e,r,n),n}var i=(e(22),e(117));e(142);void 0!==n&&n.env,t.exports=o}).call(this,void 0)},{117:117,142:142,22:22}],98:[function(e,t,n){"use strict";function r(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}t.exports=r},{}],99:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}t.exports=r},{}],100:[function(e,t,n){"use strict";function r(e){if(e.key){var t=i[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var o=e(99),i={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{99:99}],101:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],102:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}t.exports=r},{}],103:[function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=e(62);t.exports=r},{62:62}],104:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[i]);if("function"==typeof t)return t}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";t.exports=r},{}],105:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function i(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,i<=t&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}t.exports=i},{}],106:[function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=e(123),i=null;t.exports=r},{123:123}],107:[function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var i=e(123),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};i.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),t.exports=o},{123:123}],108:[function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function i(e,t){var n;if(null===e||!1===e)n=l.create(i);else if("object"==typeof e){var s=e,u=s.type;if("function"!=typeof u&&"string"!=typeof u){var d="";d+=r(s._owner),a("130",null==u?u:typeof u,d)}"string"==typeof s.type?n=c.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new p(s)}else"string"==typeof e||"number"==typeof e?n=c.createInstanceForText(e):a("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var a=e(112),s=e(143),u=e(29),l=e(49),c=e(54),p=(e(121),e(137),e(142),function(e){this.construct(e)});s(p.prototype,u,{_instantiateReactComponent:i}),t.exports=i},{112:112,121:121,137:137,142:142,143:143,29:29,49:49,54:54}],109:[function(e,t,n){"use strict";function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=e(123);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),t.exports=r},{123:123}],110:[function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!o[e.type]:"textarea"===t}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],111:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e(95);t.exports=r},{95:95}],112:[function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r]/,u=e(93),l=u(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}t.exports=l},{10:10,123:123,93:93}],115:[function(e,t,n){"use strict";var r=e(123),o=e(95),i=e(114),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){if(3===e.nodeType)return void(e.nodeValue=t);i(e,o(t))})),t.exports=a},{114:114,123:123,95:95}],116:[function(e,t,n){"use strict";function r(e,t){var n=null===e||!1===e,r=null===t||!1===t;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}t.exports=r},{}],117:[function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?l.escape(e.key):t.toString(36)}function o(e,t,n,i){var d=typeof e;if("undefined"!==d&&"boolean"!==d||(e=null),null===e||"string"===d||"number"===d||"object"===d&&e.$$typeof===s)return n(i,e,""===t?c+r(e,0):t),1;var f,h,m=0,v=""===t?c:t+p;if(Array.isArray(e))for(var g=0;g":"<"+e+">",s[e]=!a.firstChild),s[e]?d[e]:null}var o=e(123),i=e(137),a=o.canUseDOM?document.createElement("div"):null,s={},u=[1,'"],l=[1,"","
"],c=[3,"","
"],p=[1,'',""],d={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:u,option:u,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){d[e]=p,s[e]=!0}),t.exports=r},{123:123,137:137}],134:[function(e,t,n){"use strict";function r(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],135:[function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],136:[function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=e(135),i=/^ms-/;t.exports=r},{135:135}],137:[function(e,t,n){"use strict";function r(e,t,n,r,i,a,s,u){if(o(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,i,a,s,u],p=0;l=new Error(t.replace(/%s/g,function(){return c[p++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}}var o=function(e){};t.exports=r},{}],138:[function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],139:[function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=e(138);t.exports=r},{138:138}],140:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],141:[function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=0;a 0x10FFFF || // not a valid Unicode code point - floor(codePoint) != codePoint // not an integer - ) { - throw RangeError('Invalid code point: ' + codePoint); - } - if (codePoint <= 0xFFFF) { // BMP code point - codeUnits.push(codePoint); - } else { // Astral code point; split in surrogate halves - // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - codePoint -= 0x10000; - highSurrogate = (codePoint >> 10) + 0xD800; - lowSurrogate = (codePoint % 0x400) + 0xDC00; - codeUnits.push(highSurrogate, lowSurrogate); - } - if (index + 1 == length || codeUnits.length > MAX_SIZE) { - result += stringFromCharCode.apply(null, codeUnits); - codeUnits.length = 0; - } - } - return result; - }; - if (defineProperty) { - defineProperty(String, 'fromCodePoint', { - 'value': fromCodePoint, - 'configurable': true, - 'writable': true - }); - } else { - String.fromCodePoint = fromCodePoint; - } - }()); -} - -/*! http://mths.be/codepointat v0.1.0 by @mathias */ -if (!String.prototype.codePointAt) { - (function() { - 'use strict'; // needed to support `apply`/`call` with `undefined`/`null` - var codePointAt = function(position) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var size = string.length; - // `ToInteger` - var index = position ? Number(position) : 0; - if (index != index) { // better `isNaN` - index = 0; - } - // Account for out-of-bounds indices: - if (index < 0 || index >= size) { - return undefined; - } - // Get the first code unit - var first = string.charCodeAt(index); - var second; - if ( // check if it’s the start of a surrogate pair - first >= 0xD800 && first <= 0xDBFF && // high surrogate - size > index + 1 // there is a next code unit - ) { - second = string.charCodeAt(index + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate - // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - } - } - return first; - }; - if (Object.defineProperty) { - Object.defineProperty(String.prototype, 'codePointAt', { - 'value': codePointAt, - 'configurable': true, - 'writable': true - }); - } else { - String.prototype.codePointAt = codePointAt; - } - }()); -} - -function registerAsciinemaPlayerElement() { - var AsciinemaPlayerProto = Object.create(HTMLElement.prototype); - - function merge() { - var merged = {}; - for (var i=0; i>>0),ma=0;function na(a,b,c){return a.call.apply(a.bind,arguments)} -function oa(a,b,c){if(!a)throw Error();if(2b?1:0};var ua=Array.prototype.indexOf?function(a,b,c){return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(ca(a))return ca(b)&&1==b.length?a.indexOf(b,c):-1;for(;cb?null:ca(a)?a.charAt(b):a[b]}function ya(a,b){var c=ua(a,b),d;(d=0<=c)&&Array.prototype.splice.call(a,c,1);return d}function za(a,b){a.sort(b||Aa)}function Ca(a,b){for(var c=Array(a.length),d=0;db?1:a2*this.Fc&&Na(this),!0):!1};function Na(a){if(a.Fc!=a.ib.length){for(var b=0,c=0;ba){var b=Ra[a];if(b)return b}b=new Qa([a|0],0>a?-1:0);-128<=a&&128>a&&(Ra[a]=b);return b}function Ta(a){if(isNaN(a)||!isFinite(a))return Ua;if(0>a)return Ta(-a).kb();for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=Va;return new Qa(b,0)}var Va=4294967296,Ua=Sa(0),Wa=Sa(1),Xa=Sa(16777216);g=Qa.prototype; -g.Of=function(){return 0a||36>>0).toString(a);c=e;if(c.hc())return f+d;for(;6>f.length;)f="0"+f;d=""+f+d}};function Ya(a,b){return 0>b?0:bthis.compare(Xa)};g.Ve=function(a){return 0>=this.compare(a)};g.compare=function(a){a=this.ze(a);return a.Eb()?-1:a.hc()?0:1};g.kb=function(){return this.Hf().add(Wa)}; -g.add=function(a){for(var b=Math.max(this.Ma.length,a.Ma.length),c=[],d=0,e=0;e<=b;e++){var f=d+(Ya(this,e)&65535)+(Ya(a,e)&65535),h=(f>>>16)+(Ya(this,e)>>>16)+(Ya(a,e)>>>16);d=h>>>16;f&=65535;h&=65535;c[e]=h<<16|f}return new Qa(c,c[c.length-1]&-2147483648?-1:0)};g.ze=function(a){return this.add(a.kb())}; -g.multiply=function(a){if(this.hc()||a.hc())return Ua;if(this.Eb())return a.Eb()?this.kb().multiply(a.kb()):this.kb().multiply(a).kb();if(a.Eb())return this.multiply(a.kb()).kb();if(this.Ue()&&a.Ue())return Ta(this.vd()*a.vd());for(var b=this.Ma.length+a.Ma.length,c=[],d=0;d<2*b;d++)c[d]=0;for(d=0;d>>16,h=Ya(this,d)&65535,k=Ya(a,e)>>>16,l=Ya(a,e)&65535;c[2*d+2*e]+=h*l;ab(c,2*d+2*e);c[2*d+2*e+1]+=f*l;ab(c,2*d+2*e+1);c[2*d+2*e+1]+= -h*k;ab(c,2*d+2*e+1);c[2*d+2*e+2]+=f*k;ab(c,2*d+2*e+2)}for(d=0;d>>16,a[b]&=65535,b++} -function Za(a,b){if(b.hc())throw Error("division by zero");if(a.hc())return Ua;if(a.Eb())return b.Eb()?Za(a.kb(),b.kb()):Za(a.kb(),b).kb();if(b.Eb())return Za(a,b.kb()).kb();if(30=f?1:Math.pow(2,f-48);h=Ta(e);for(var k=h.multiply(b);k.Eb()||k.xf(d);)e-=f,h=Ta(e),k=h.multiply(b);h.hc()&&(h=Wa);c=c.add(h);d=d.ze(k)}return c}g.Hf=function(){for(var a=this.Ma.length,b=[],c=0;c>5;a%=32;for(var c=this.Ma.length+b+(0>>32-a:Ya(this,e-b);return new Qa(d,this.Lc)}; -g.ad=function(a){var b=a>>5;a%=32;for(var c=this.Ma.length-b,d=[],e=0;e>>a|Ya(this,e+b+1)<<32-a:Ya(this,e+b);return new Qa(d,this.Lc)};function cb(a,b){null!=a&&this.append.apply(this,arguments)}g=cb.prototype;g.xc="";g.set=function(a){this.xc=""+a};g.append=function(a,b,c){this.xc+=String(a);if(null!=b)for(var d=1;d>>16&65535)*d+c*(b>>>16&65535)<<16>>>0)|0};function hd(a){a=gd(a|0,-862048943);return gd(a<<15|a>>>-15,461845907)} -function id(a,b){var c=(a|0)^(b|0);return gd(c<<13|c>>>-13,5)+-430675100|0}function jd(a,b){var c=(a|0)^b;c=gd(c^c>>>16,-2048144789);c=gd(c^c>>>13,-1028477387);return c^c>>>16}function kd(a){a:{var b=1;for(var c=0;;)if(b>2)}function qd(a){return a instanceof rd} -function sd(a,b){if(a.Zb===b.Zb)return 0;var c=wb(a.fb);if(t(c?b.fb:c))return-1;if(t(a.fb)){if(wb(b.fb))return 1;c=Aa(a.fb,b.fb);return 0===c?Aa(a.name,b.name):c}return Aa(a.name,b.name)}function rd(a,b,c,d,e){this.fb=a;this.name=b;this.Zb=c;this.Oc=d;this.hb=e;this.m=2154168321;this.J=4096}g=rd.prototype;g.toString=function(){return this.Zb};g.equiv=function(a){return this.K(null,a)};g.K=function(a,b){return b instanceof rd?this.Zb===b.Zb:!1}; -g.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return D.c(c,this);case 3:return D.l(c,this,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.c=function(a,c){return D.c(c,this)};a.l=function(a,c,d){return D.l(c,this,d)};return a}();g.apply=function(a,b){return this.call.apply(this,[this].concat(Gb(b)))};g.h=function(a){return D.c(a,this)};g.c=function(a,b){return D.l(a,this,b)};g.P=function(){return this.hb}; -g.T=function(a,b){return new rd(this.fb,this.name,this.Zb,this.Oc,b)};g.U=function(){var a=this.Oc;return null!=a?a:this.Oc=a=pd(kd(this.name),nd(this.fb))};g.hd=function(){return this.name};g.jd=function(){return this.fb};g.R=function(a,b){return Jc(b,this.Zb)};var td=function td(a){switch(arguments.length){case 1:return td.h(arguments[0]);case 2:return td.c(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",v.h(arguments.length)].join(""));}}; -td.h=function(a){if(a instanceof rd)return a;var b=a.indexOf("/");return 1>b?td.c(null,a):td.c(a.substring(0,b),a.substring(b+1,a.length))};td.c=function(a,b){var c=null!=a?[v.h(a),"/",v.h(b)].join(""):b;return new rd(a,b,c,null,null)};td.L=2;function ud(a){return null!=a?a.J&131072||q===a.Tf?!0:a.J?!1:Ab(cd,a):Ab(cd,a)} -function E(a){if(null==a)return null;if(null!=a&&(a.m&8388608||q===a.Pe))return a.S(null);if(vb(a)||"string"===typeof a)return 0===a.length?null:new Jb(a,0,null);if(Ab(Bc,a))return Cc(a);throw Error([v.h(a)," is not ISeqable"].join(""));}function y(a){if(null==a)return null;if(null!=a&&(a.m&64||q===a.G))return a.Ia(null);a=E(a);return null==a?null:Wb(a)}function vd(a){return null!=a?null!=a&&(a.m&64||q===a.G)?a.bb(null):(a=E(a))?Yb(a):wd:wd} -function z(a){return null==a?null:null!=a&&(a.m&128||q===a.Id)?a.Ka(null):E(vd(a))}var G=function G(a){switch(arguments.length){case 1:return G.h(arguments[0]);case 2:return G.c(arguments[0],arguments[1]);default:for(var c=[],d=arguments.length,e=0;;)if(e=d)return-1;!(0c&&(c+=d,c=0>c?0:c);for(;;)if(cc?d+c:c;for(;;)if(0<=c){if(G.c(Vd(a,c),b))return c;--c}else return-1}function Yd(a,b){this.o=a;this.i=b} -Yd.prototype.ja=function(){return this.ia?0:a};g.Rc=function(){var a=this.W(null);return 0d)c=1;else if(0===c)c=0;else a:for(d=0;;){var e=Ke(Vd(a,d),Vd(b,d));if(0===e&&d+1>1&1431655765;a=(a&858993459)+(a>>2&858993459);return 16843009*(a+(a>>4)&252645135)>>24} -var v=function v(a){switch(arguments.length){case 0:return v.B();case 1:return v.h(arguments[0]);default:for(var c=[],d=arguments.length,e=0;;)if(ed:e))c[d]=a.next(),d+=1;else return qf(new nf(c,0,d),Rf.h?Rf.h(a):Rf.call(null,a))}else return null},null,null)};function Sf(a,b,c,d,e,f){this.buffer=a;this.ub=b;this.pe=c;this.Rb=d;this.ye=e;this.Gf=f} -Sf.prototype.step=function(){if(this.ub!==Nf)return!0;for(;;)if(this.ub===Nf)if(this.buffer.Td()){if(this.pe)return!1;if(this.ye.ja()){if(this.Gf)var a=P(this.Rb,ae(null,this.ye.next()));else a=this.ye.next(),a=this.Rb.c?this.Rb.c(null,a):this.Rb.call(null,null,a);Hd(a)&&(this.Rb.h?this.Rb.h(null):this.Rb.call(null,null),this.pe=!0)}else this.Rb.h?this.Rb.h(null):this.Rb.call(null,null),this.pe=!0}else this.ub=this.buffer.remove();else return!0};Sf.prototype.ja=function(){return this.step()}; -Sf.prototype.next=function(){if(this.ja()){var a=this.ub;this.ub=Nf;return a}throw Error("No such element");};Sf.prototype.remove=function(){return Error("Unsupported operation")};Sf.prototype[Fb]=function(){return yd(this)}; -function Tf(a,b){var c=new Sf(Qf,Nf,!1,null,b,!1);c.Rb=function(){var b=function(a){return function(){function b(b,c){a.buffer=a.buffer.add(c);return b}var c=null;c=function(a,c){switch(arguments.length){case 0:return null;case 1:return a;case 2:return b.call(this,a,c)}throw Error("Invalid arity: "+(arguments.length-1));};c.B=function(){return null};c.h=function(a){return a};c.c=b;return c}()}(c);return a.h?a.h(b):a.call(null,b)}();return c} -function Uf(a,b){var c=Kf(b);c=Tf(a,c);c=Rf(c);return t(c)?c:wd}function Vf(a,b){for(;;){if(null==E(b))return!0;var c=y(b);c=a.h?a.h(c):a.call(null,c);if(t(c)){c=a;var d=z(b);a=c;b=d}else return!1}}function Wf(a,b){for(;;)if(E(b)){var c=y(b);c=a.h?a.h(c):a.call(null,c);if(t(c))return c;c=a;var d=z(b);a=c;b=d}else return null}function Xf(a){if(Ge(a))return 0===(a&1);throw Error(["Argument must be an integer: ",v.h(a)].join(""));} -function Yf(a){return function(){function b(b,c){return wb(a.c?a.c(b,c):a.call(null,b,c))}function c(b){return wb(a.h?a.h(b):a.call(null,b))}function d(){return wb(a.B?a.B():a.call(null))}var e=null,f=function(){function b(a,b,d){var e=null;if(2a?0:a-1>>>5<<5}function Jg(a,b,c){for(;;){if(0===b)return c;var d=Gg(a);d.o[0]=c;c=d;b-=5}} -var Kg=function Kg(a,b,c,d){var f=Hg(c),h=a.F-1>>>b&31;5===b?f.o[h]=d:(c=c.o[h],null!=c?(b-=5,a=Kg.M?Kg.M(a,b,c,d):Kg.call(null,a,b,c,d)):a=Jg(null,b-5,d),f.o[h]=a);return f};function Lg(a,b){throw Error(["No item ",v.h(a)," in vector of length ",v.h(b)].join(""));}function Mg(a,b){if(b>=Ig(a))return a.fa;for(var c=a.root,d=a.shift;;)if(0>>d&31];d=e}else return c.o} -var Ng=function Ng(a,b,c,d,e){var h=Hg(c);if(0===b)h.o[d&31]=e;else{var k=d>>>b&31;b-=5;c=c.o[k];a=Ng.Z?Ng.Z(a,b,c,d,e):Ng.call(null,a,b,c,d,e);h.o[k]=a}return h},Og=function Og(a,b,c){var e=a.F-2>>>b&31;if(5=this.F)a=new Jb(this.fa,0,null);else{a:{a=this.root;for(var b=this.shift;;)if(0this.F-Ig(this)){for(var c=this.fa.length,d=Array(c+1),e=0;;)if(e>>5>1<b)return new R(null,b,5,T,a,null);for(var c=32,d=(new R(null,32,5,T,a.slice(0,32),null)).Pc(null);;)if(cb||this.end<=this.start+b?Lg(b,this.end-this.start):A.c(this.Ja,this.start+b)};g.ka=function(a,b,c){return 0>b||this.end<=this.start+b?c:A.l(this.Ja,this.start+b,c)}; -g.dc=function(a,b,c){a=this.start+b;if(0>b||this.end+1<=a)throw Error(["Index ",v.h(b)," out of bounds [0,",v.h(this.W(null)),"]"].join(""));b=this.meta;c=K.l(this.Ja,a,c);var d=this.end;a+=1;return Zg(b,c,this.start,d>a?d:a,null)};g.ba=function(){return null!=this.Ja&&q===this.Ja.fe?Qg(this.Ja,this.start,this.end):new Jf(Hf,this)};g.P=function(){return this.meta};g.W=function(){return this.end-this.start};g.Ac=function(){return A.c(this.Ja,this.end-1)}; -g.Bc=function(){if(this.start===this.end)throw Error("Can't pop empty vector");return Zg(this.meta,this.Ja,this.start,this.end-1,null)};g.Rc=function(){return this.start!==this.end?new Zd(this,this.end-this.start-1,null):null};g.U=function(){var a=this.w;return null!=a?a:this.w=a=Ad(this)};g.K=function(a,b){return $d(this,b)};g.oa=function(){return tc(he,this.meta)};g.Fa=function(a,b){return null!=this.Ja&&q===this.Ja.fe?Rg(this.Ja,b,this.start,this.end):Kd(this,b)}; -g.Ga=function(a,b,c){return null!=this.Ja&&q===this.Ja.fe?Sg(this.Ja,b,c,this.start,this.end):Ld(this,b,c)};g.O=function(a,b,c){if("number"===typeof b)return this.dc(null,b,c);throw Error("Subvec's key for assoc must be a number.");};g.S=function(){var a=this;return function(b){return function e(d){return d===a.end?null:ae(A.c(a.Ja,d),new kf(null,function(){return function(){return e(d+1)}}(b),null,null))}}(this)(a.start)};g.T=function(a,b){return Zg(b,this.Ja,this.start,this.end,this.w)}; -g.X=function(a,b){return Zg(this.meta,qc(this.Ja,this.end,b),this.start,this.end+1,null)};g.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.$(null,c);case 3:return this.ka(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.c=function(a,c){return this.$(null,c)};a.l=function(a,c,d){return this.ka(null,c,d)};return a}();g.apply=function(a,b){return this.call.apply(this,[this].concat(Gb(b)))};g.h=function(a){return this.$(null,a)}; -g.c=function(a,b){return this.ka(null,a,b)};Yg.prototype[Fb]=function(){return yd(this)};function Zg(a,b,c,d,e){for(;;)if(b instanceof Yg)c=b.start+c,d=b.start+d,b=b.Ja;else{if(!ze(b))throw Error("v must satisfy IVector");var f=H(b);if(0>c||0>d||c>f||d>f)throw Error("Index out of bounds");return new Yg(a,b,c,d,e)}}function $g(a,b){return a===b.la?b:new Fg(a,Gb(b.o))} -var ah=function ah(a,b,c,d){c=$g(a.root.la,c);var f=a.F-1>>>b&31;if(5===b)a=d;else{var h=c.o[f];null!=h?(b-=5,a=ah.M?ah.M(a,b,h,d):ah.call(null,a,b,h,d)):a=Jg(a.root.la,b-5,d)}c.o[f]=a;return c};function Tg(a,b,c,d){this.F=a;this.shift=b;this.root=c;this.fa=d;this.J=88;this.m=275}g=Tg.prototype; -g.Dc=function(a,b){if(this.root.la){if(32>this.F-Ig(this))this.fa[this.F&31]=b;else{var c=new Fg(this.root.la,this.fa),d=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];d[0]=b;this.fa=d;if(this.F>>>5>1<>>d&31,m=k(d-5,f.o[p]);f.o[p]=m}return f}}(a)(a.shift,a.root)}();a.root=d}return a}if(b===a.F)return a.Dc(null,c);throw Error(["Index ",v.h(b)," out of bounds for TransientVector of length",v.h(a.F)].join(""));}throw Error("assoc! after persistent!");} -g.W=function(){if(this.root.la)return this.F;throw Error("count after persistent!");};g.$=function(a,b){if(this.root.la)return(0<=b&&b=c)return new r(this.meta,this.F-1,d,null);G.c(b,this.o[e])||(d[f]=this.o[e],d[f+1]=this.o[e+1],f+=2);e+=2}}else return this}; -g.O=function(a,b,c){a=ih(this.o,b);if(-1===a){if(this.Fb?4:2*(b+1));Be(this.o,0,c,0,2*b);return new xh(a,this.na,c)};g.qd=function(){return yh(this.o,0,null)};g.Jc=function(a,b){return vh(this.o,a,b)};g.sc=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.na&e))return d;var f=$e(this.na&e-1);e=this.o[2*f];f=this.o[2*f+1];return null==e?f.sc(a+5,b,c,d):rh(c,e)?f:d}; -g.Kb=function(a,b,c,d,e,f){var h=1<<(c>>>b&31),k=$e(this.na&h-1);if(0===(this.na&h)){var l=$e(this.na);if(2*l>>b&31]=zh.Kb(a,b+5,c,d,e,f);for(e=d=0;;)if(32>d)0!== -(this.na>>>d&1)&&(k[d]=null!=this.o[e]?zh.Kb(a,b+5,od(this.o[e]),this.o[e],this.o[e+1],f):this.o[e+1],e+=2),d+=1;else break;return new Ah(a,l+1,k)}b=Array(2*(l+4));Be(this.o,0,b,0,2*k);b[2*k]=d;b[2*k+1]=e;Be(this.o,2*k,b,2*(k+1),2*(l-k));f.H=!0;a=this.Gc(a);a.o=b;a.na|=h;return a}l=this.o[2*k];h=this.o[2*k+1];if(null==l)return l=h.Kb(a,b+5,c,d,e,f),l===h?this:uh(this,a,2*k+1,l);if(rh(d,l))return e===h?this:uh(this,a,2*k+1,e);f.H=!0;f=b+5;b=od(l);if(b===c)e=new Bh(null,b,2,[l,h,d,e]);else{var p=new qh; -e=zh.Kb(a,f,b,l,h,p).Kb(a,f,c,d,e,p)}d=2*k;k=2*k+1;a=this.Gc(a);a.o[d]=null;a.o[k]=e;return a}; -g.Jb=function(a,b,c,d,e){var f=1<<(b>>>a&31),h=$e(this.na&f-1);if(0===(this.na&f)){var k=$e(this.na);if(16<=k){h=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];h[b>>>a&31]=zh.Jb(a+5,b,c,d,e);for(d=c=0;;)if(32>c)0!==(this.na>>>c&1)&&(h[c]=null!=this.o[d]?zh.Jb(a+5,od(this.o[d]),this.o[d],this.o[d+1],e):this.o[d+1],d+=2),c+=1;else break;return new Ah(null,k+1,h)}a=Array(2*(k+1));Be(this.o, -0,a,0,2*h);a[2*h]=c;a[2*h+1]=d;Be(this.o,2*h,a,2*(h+1),2*(k-h));e.H=!0;return new xh(null,this.na|f,a)}var l=this.o[2*h];f=this.o[2*h+1];if(null==l)return k=f.Jb(a+5,b,c,d,e),k===f?this:new xh(null,this.na,sh(this.o,2*h+1,k));if(rh(c,l))return d===f?this:new xh(null,this.na,sh(this.o,2*h+1,d));e.H=!0;e=this.na;k=this.o;a+=5;var p=od(l);if(p===b)c=new Bh(null,p,2,[l,f,c,d]);else{var m=new qh;c=zh.Jb(a,p,l,f,m).Jb(a,b,c,d,m)}a=2*h;h=2*h+1;d=Gb(k);d[a]=null;d[h]=c;return new xh(null,e,d)}; -g.rd=function(a,b,c){var d=1<<(b>>>a&31);if(0===(this.na&d))return this;var e=$e(this.na&d-1),f=this.o[2*e],h=this.o[2*e+1];return null==f?(a=h.rd(a+5,b,c),a===h?this:null!=a?new xh(null,this.na,sh(this.o,2*e+1,a)):this.na===d?null:new xh(null,this.na^d,th(this.o,e))):rh(c,f)?new xh(null,this.na^d,th(this.o,e)):this};g.ba=function(){return new wh(this.o,0,null,null)};var zh=new xh(null,0,[]);function Ch(a,b,c){this.o=a;this.i=b;this.Lb=c} -Ch.prototype.ja=function(){for(var a=this.o.length;;){if(null!=this.Lb&&this.Lb.ja())return!0;if(this.i>>a&31];return null!=e?e.sc(a+5,b,c,d):d};g.Kb=function(a,b,c,d,e,f){var h=c>>>b&31,k=this.o[h];if(null==k)return a=uh(this,a,h,zh.Kb(a,b+5,c,d,e,f)),a.F+=1,a;b=k.Kb(a,b+5,c,d,e,f);return b===k?this:uh(this,a,h,b)}; -g.Jb=function(a,b,c,d,e){var f=b>>>a&31,h=this.o[f];if(null==h)return new Ah(null,this.F+1,sh(this.o,f,zh.Jb(a+5,b,c,d,e)));a=h.Jb(a+5,b,c,d,e);return a===h?this:new Ah(null,this.F,sh(this.o,f,a))}; -g.rd=function(a,b,c){var d=b>>>a&31,e=this.o[d];if(null!=e){a=e.rd(a+5,b,c);if(a===e)d=this;else if(null==a)if(8>=this.F)a:{e=this.o;a=e.length;b=Array(2*(this.F-1));c=0;for(var f=1,h=0;;)if(ca?d:rh(c,this.o[a])?this.o[a+1]:d}; -g.Kb=function(a,b,c,d,e,f){if(c===this.ec){b=Eh(this.o,this.F,d);if(-1===b){if(this.o.length>2*this.F)return b=2*this.F,c=2*this.F+1,a=this.Gc(a),a.o[b]=d,a.o[c]=e,f.H=!0,a.F+=1,a;c=this.o.length;b=Array(c+2);Be(this.o,0,b,0,c);b[c]=d;b[c+1]=e;f.H=!0;d=this.F+1;a===this.la?(this.o=b,this.F=d,a=this):a=new Bh(this.la,this.ec,d,b);return a}return this.o[b+1]===e?this:uh(this,a,b+1,e)}return(new xh(a,1<<(this.ec>>>b&31),[null,this,null,null])).Kb(a,b,c,d,e,f)}; -g.Jb=function(a,b,c,d,e){return b===this.ec?(a=Eh(this.o,this.F,c),-1===a?(a=2*this.F,b=Array(a+2),Be(this.o,0,b,0,a),b[a]=c,b[a+1]=d,e.H=!0,new Bh(null,this.ec,this.F+1,b)):G.c(this.o[a+1],d)?this:new Bh(null,this.ec,this.F,sh(this.o,a+1,d))):(new xh(null,1<<(this.ec>>>a&31),[null,this])).Jb(a,b,c,d,e)};g.rd=function(a,b,c){a=Eh(this.o,this.F,c);return-1===a?this:1===this.F?null:new Bh(null,this.ec,this.F-1,th(this.o,Ze(a)))};g.ba=function(){return new wh(this.o,0,null,null)}; -function Fh(a,b,c,d,e){this.meta=a;this.Mb=b;this.i=c;this.s=d;this.w=e;this.m=32374988;this.J=0}g=Fh.prototype;g.toString=function(){return fd(this)};g.equiv=function(a){return this.K(null,a)};g.indexOf=function(){var a=null;a=function(a,c){switch(arguments.length){case 1:return Ud(this,a,0);case 2:return Ud(this,a,c)}throw Error("Invalid arity: "+(arguments.length-1));};a.h=function(a){return Ud(this,a,0)};a.c=function(a,c){return Ud(this,a,c)};return a}(); -g.lastIndexOf=function(){function a(a){return Xd(this,a,H(this))}var b=null;b=function(b,d){switch(arguments.length){case 1:return a.call(this,b);case 2:return Xd(this,b,d)}throw Error("Invalid arity: "+(arguments.length-1));};b.h=a;b.c=function(a,b){return Xd(this,a,b)};return b}();g.P=function(){return this.meta};g.Ka=function(){return null==this.s?yh(this.Mb,this.i+2,null):yh(this.Mb,this.i,z(this.s))};g.U=function(){var a=this.w;return null!=a?a:this.w=a=Ad(this)}; -g.K=function(a,b){return $d(this,b)};g.oa=function(){return tc(wd,this.meta)};g.Fa=function(a,b){return ce(b,this)};g.Ga=function(a,b,c){return de(b,c,this)};g.Ia=function(){return null==this.s?new R(null,2,5,T,[this.Mb[this.i],this.Mb[this.i+1]],null):y(this.s)};g.bb=function(){var a=null==this.s?yh(this.Mb,this.i+2,null):yh(this.Mb,this.i,z(this.s));return null!=a?a:wd};g.S=function(){return this};g.T=function(a,b){return new Fh(b,this.Mb,this.i,this.s,this.w)};g.X=function(a,b){return ae(b,this)}; -Fh.prototype[Fb]=function(){return yd(this)};function yh(a,b,c){if(null==c)for(c=a.length;;)if(bthis.F?H(z(this))+1:this.F};g.U=function(){var a=this.w;return null!=a?a:this.w=a=Ad(this)};g.K=function(a,b){return $d(this,b)};g.oa=function(){return tc(wd,this.meta)};g.Fa=function(a,b){return ce(b,this)};g.Ga=function(a,b,c){return de(b,c,this)};g.Ia=function(){var a=this.stack;return null==a?null:nc(a)};g.bb=function(){var a=y(this.stack);a=Mh(this.vc?a.right:a.left,z(this.stack),this.vc);return null!=a?new Nh(null,a,this.vc,this.F-1,null):wd};g.S=function(){return this}; -g.T=function(a,b){return new Nh(b,this.stack,this.vc,this.F,this.w)};g.X=function(a,b){return ae(b,this)};Nh.prototype[Fb]=function(){return yd(this)};function Oh(a,b,c){return new Nh(null,Mh(a,null,b),b,c,null)} -function Ph(a,b,c,d){return c instanceof Qh?c.left instanceof Qh?new Qh(c.key,c.H,c.left.bc(),new Rh(a,b,c.right,d,null),null):c.right instanceof Qh?new Qh(c.right.key,c.right.H,new Rh(c.key,c.H,c.left,c.right.left,null),new Rh(a,b,c.right.right,d,null),null):new Rh(a,b,c,d,null):new Rh(a,b,c,d,null)} -function Sh(a,b,c,d){return d instanceof Qh?d.right instanceof Qh?new Qh(d.key,d.H,new Rh(a,b,c,d.left,null),d.right.bc(),null):d.left instanceof Qh?new Qh(d.left.key,d.left.H,new Rh(a,b,c,d.left.left,null),new Rh(d.key,d.H,d.left.right,d.right,null),null):new Rh(a,b,c,d,null):new Rh(a,b,c,d,null)} -function Th(a,b,c,d){if(c instanceof Qh)return new Qh(a,b,c.bc(),d,null);if(d instanceof Rh)return Sh(a,b,c,d.ud());if(d instanceof Qh&&d.left instanceof Rh)return new Qh(d.left.key,d.left.H,new Rh(a,b,c,d.left.left,null),Sh(d.key,d.H,d.left.right,d.right.ud()),null);throw Error("red-black tree invariant violation");} -function Uh(a,b,c,d){if(d instanceof Qh)return new Qh(a,b,c,d.bc(),null);if(c instanceof Rh)return Ph(a,b,c.ud(),d);if(c instanceof Qh&&c.right instanceof Rh)return new Qh(c.right.key,c.right.H,Ph(c.key,c.H,c.left.ud(),c.right.left),new Rh(a,b,c.right.right,d,null),null);throw Error("red-black tree invariant violation");} -var Vh=function Vh(a,b,c){var e=null!=a.left?function(){var e=a.left;return Vh.l?Vh.l(e,b,c):Vh.call(null,e,b,c)}():c;if(Hd(e))return e;var f=function(){var c=a.key,f=a.H;return b.l?b.l(e,c,f):b.call(null,e,c,f)}();if(Hd(f))return f;if(null!=a.right){var h=a.right;return Vh.l?Vh.l(h,b,f):Vh.call(null,h,b,f)}return f};function Rh(a,b,c,d,e){this.key=a;this.H=b;this.left=c;this.right=d;this.w=e;this.m=32402207;this.J=0}g=Rh.prototype; -g.lastIndexOf=function(){function a(a){return Xd(this,a,H(this))}var b=null;b=function(b,d){switch(arguments.length){case 1:return a.call(this,b);case 2:return Xd(this,b,d)}throw Error("Invalid arity: "+(arguments.length-1));};b.h=a;b.c=function(a,b){return Xd(this,a,b)};return b}(); -g.indexOf=function(){var a=null;a=function(a,c){switch(arguments.length){case 1:return Ud(this,a,0);case 2:return Ud(this,a,c)}throw Error("Invalid arity: "+(arguments.length-1));};a.h=function(a){return Ud(this,a,0)};a.c=function(a,c){return Ud(this,a,c)};return a}();g.Ee=function(a){return a.He(this)};g.ud=function(){return new Qh(this.key,this.H,this.left,this.right,null)};g.bc=function(){return this};g.De=function(a){return a.Ge(this)};g.replace=function(a,b,c,d){return new Rh(a,b,c,d,null)}; -g.Ge=function(a){return new Rh(a.key,a.H,this,a.right,null)};g.He=function(a){return new Rh(a.key,a.H,a.left,this,null)};g.Jc=function(a,b){return Vh(this,a,b)};g.V=function(a,b){return this.ka(null,b,null)};g.I=function(a,b,c){return this.ka(null,b,c)};g.$=function(a,b){if(0===b)return this.key;if(1===b)return this.H;throw Error("Index out of bounds");};g.ka=function(a,b,c){return 0===b?this.key:1===b?this.H:c};g.dc=function(a,b,c){return(new R(null,2,5,T,[this.key,this.H],null)).dc(null,b,c)}; -g.P=function(){return null};g.W=function(){return 2};g.fd=function(){return this.key};g.gd=function(){return this.H};g.Ac=function(){return this.H};g.Bc=function(){return new R(null,1,5,T,[this.key],null)};g.U=function(){var a=this.w;return null!=a?a:this.w=a=Ad(this)};g.K=function(a,b){return $d(this,b)};g.oa=function(){return he};g.Fa=function(a,b){return Kd(this,b)};g.Ga=function(a,b,c){return Ld(this,b,c)};g.O=function(a,b,c){return K.l(new R(null,2,5,T,[this.key,this.H],null),b,c)}; -g.yc=function(a,b){return 0===b||1===b};g.S=function(){var a=this.key;return Tb(Tb(wd,this.H),a)};g.T=function(a,b){return tc(new R(null,2,5,T,[this.key,this.H],null),b)};g.X=function(a,b){return new R(null,3,5,T,[this.key,this.H,b],null)}; -g.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.$(null,c);case 3:return this.ka(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.c=function(a,c){return this.$(null,c)};a.l=function(a,c,d){return this.ka(null,c,d)};return a}();g.apply=function(a,b){return this.call.apply(this,[this].concat(Gb(b)))};g.h=function(a){return this.$(null,a)};g.c=function(a,b){return this.ka(null,a,b)};Rh.prototype[Fb]=function(){return yd(this)}; -function Qh(a,b,c,d,e){this.key=a;this.H=b;this.left=c;this.right=d;this.w=e;this.m=32402207;this.J=0}g=Qh.prototype;g.lastIndexOf=function(){function a(a){return Xd(this,a,H(this))}var b=null;b=function(b,d){switch(arguments.length){case 1:return a.call(this,b);case 2:return Xd(this,b,d)}throw Error("Invalid arity: "+(arguments.length-1));};b.h=a;b.c=function(a,b){return Xd(this,a,b)};return b}(); -g.indexOf=function(){var a=null;a=function(a,c){switch(arguments.length){case 1:return Ud(this,a,0);case 2:return Ud(this,a,c)}throw Error("Invalid arity: "+(arguments.length-1));};a.h=function(a){return Ud(this,a,0)};a.c=function(a,c){return Ud(this,a,c)};return a}();g.Ee=function(a){return new Qh(this.key,this.H,this.left,a,null)};g.ud=function(){throw Error("red-black tree invariant violation");};g.bc=function(){return new Rh(this.key,this.H,this.left,this.right,null)}; -g.De=function(a){return new Qh(this.key,this.H,a,this.right,null)};g.replace=function(a,b,c,d){return new Qh(a,b,c,d,null)};g.Ge=function(a){return this.left instanceof Qh?new Qh(this.key,this.H,this.left.bc(),new Rh(a.key,a.H,this.right,a.right,null),null):this.right instanceof Qh?new Qh(this.right.key,this.right.H,new Rh(this.key,this.H,this.left,this.right.left,null),new Rh(a.key,a.H,this.right.right,a.right,null),null):new Rh(a.key,a.H,this,a.right,null)}; -g.He=function(a){return this.right instanceof Qh?new Qh(this.key,this.H,new Rh(a.key,a.H,a.left,this.left,null),this.right.bc(),null):this.left instanceof Qh?new Qh(this.left.key,this.left.H,new Rh(a.key,a.H,a.left,this.left.left,null),new Rh(this.key,this.H,this.left.right,this.right,null),null):new Rh(a.key,a.H,a.left,this,null)};g.Jc=function(a,b){return Vh(this,a,b)};g.V=function(a,b){return this.ka(null,b,null)};g.I=function(a,b,c){return this.ka(null,b,c)}; -g.$=function(a,b){if(0===b)return this.key;if(1===b)return this.H;throw Error("Index out of bounds");};g.ka=function(a,b,c){return 0===b?this.key:1===b?this.H:c};g.dc=function(a,b,c){return(new R(null,2,5,T,[this.key,this.H],null)).dc(null,b,c)};g.P=function(){return null};g.W=function(){return 2};g.fd=function(){return this.key};g.gd=function(){return this.H};g.Ac=function(){return this.H};g.Bc=function(){return new R(null,1,5,T,[this.key],null)}; -g.U=function(){var a=this.w;return null!=a?a:this.w=a=Ad(this)};g.K=function(a,b){return $d(this,b)};g.oa=function(){return he};g.Fa=function(a,b){return Kd(this,b)};g.Ga=function(a,b,c){return Ld(this,b,c)};g.O=function(a,b,c){return K.l(new R(null,2,5,T,[this.key,this.H],null),b,c)};g.yc=function(a,b){return 0===b||1===b};g.S=function(){var a=this.key;return Tb(Tb(wd,this.H),a)};g.T=function(a,b){return tc(new R(null,2,5,T,[this.key,this.H],null),b)}; -g.X=function(a,b){return new R(null,3,5,T,[this.key,this.H,b],null)};g.call=function(){var a=null;a=function(a,c,d){switch(arguments.length){case 2:return this.$(null,c);case 3:return this.ka(null,c,d)}throw Error("Invalid arity: "+(arguments.length-1));};a.c=function(a,c){return this.$(null,c)};a.l=function(a,c,d){return this.ka(null,c,d)};return a}();g.apply=function(a,b){return this.call.apply(this,[this].concat(Gb(b)))};g.h=function(a){return this.$(null,a)}; -g.c=function(a,b){return this.ka(null,a,b)};Qh.prototype[Fb]=function(){return yd(this)}; -var Wh=function Wh(a,b,c,d,e){if(null==b)return new Qh(c,d,null,null,null);var h=function(){var d=b.key;return a.c?a.c(c,d):a.call(null,c,d)}();if(0===h)return e[0]=b,null;if(0>h)return h=function(){var h=b.left;return Wh.Z?Wh.Z(a,h,c,d,e):Wh.call(null,a,h,c,d,e)}(),null!=h?b.De(h):null;h=function(){var h=b.right;return Wh.Z?Wh.Z(a,h,c,d,e):Wh.call(null,a,h,c,d,e)}();return null!=h?b.Ee(h):null},Xh=function Xh(a,b){if(null==a)return b;if(null==b)return a;if(a instanceof Qh){if(b instanceof Qh){var d= -function(){var d=a.right,f=b.left;return Xh.c?Xh.c(d,f):Xh.call(null,d,f)}();return d instanceof Qh?new Qh(d.key,d.H,new Qh(a.key,a.H,a.left,d.left,null),new Qh(b.key,b.H,d.right,b.right,null),null):new Qh(a.key,a.H,a.left,new Qh(b.key,b.H,d,b.right,null),null)}return new Qh(a.key,a.H,a.left,function(){var d=a.right;return Xh.c?Xh.c(d,b):Xh.call(null,d,b)}(),null)}if(b instanceof Qh)return new Qh(b.key,b.H,function(){var d=b.left;return Xh.c?Xh.c(a,d):Xh.call(null,a,d)}(),b.right,null);d=function(){var d= -a.right,f=b.left;return Xh.c?Xh.c(d,f):Xh.call(null,d,f)}();return d instanceof Qh?new Qh(d.key,d.H,new Rh(a.key,a.H,a.left,d.left,null),new Rh(b.key,b.H,d.right,b.right,null),null):Th(a.key,a.H,a.left,new Rh(b.key,b.H,d,b.right,null))},Yh=function Yh(a,b,c,d){if(null!=b){var f=function(){var d=b.key;return a.c?a.c(c,d):a.call(null,c,d)}();if(0===f)return d[0]=b,Xh(b.left,b.right);if(0>f)return f=function(){var f=b.left;return Yh.M?Yh.M(a,f,c,d):Yh.call(null,a,f,c,d)}(),null!=f||null!=d[0]?b.left instanceof -Rh?Th(b.key,b.H,f,b.right):new Qh(b.key,b.H,f,b.right,null):null;f=function(){var f=b.right;return Yh.M?Yh.M(a,f,c,d):Yh.call(null,a,f,c,d)}();return null!=f||null!=d[0]?b.right instanceof Rh?Uh(b.key,b.H,b.left,f):new Qh(b.key,b.H,b.left,f,null):null}return null},Zh=function Zh(a,b,c,d){var f=b.key,h=a.c?a.c(c,f):a.call(null,c,f);return 0===h?b.replace(f,d,b.left,b.right):0>h?b.replace(f,b.H,function(){var f=b.left;return Zh.M?Zh.M(a,f,c,d):Zh.call(null,a,f,c,d)}(),b.right):b.replace(f,b.H,b.left, -function(){var f=b.right;return Zh.M?Zh.M(a,f,c,d):Zh.call(null,a,f,c,d)}())};function $h(a,b,c,d,e){this.Bb=a;this.mc=b;this.F=c;this.meta=d;this.w=e;this.m=418776847;this.J=8192}g=$h.prototype;g.forEach=function(a){for(var b=E(this),c=null,d=0,e=0;;)if(ed?c.left:c.right}else return null}g.has=function(a){return He(this,a)};g.V=function(a,b){return this.I(null,b,null)}; -g.I=function(a,b,c){a=ai(this,b);return null!=a?a.H:c};g.Qc=function(a,b,c){return null!=this.mc?Jd(Vh(this.mc,b,c)):c};g.P=function(){return this.meta};g.W=function(){return this.F};g.Rc=function(){return 0(a.h?a.h(c):a.call(null,c))?b:c};Ai.A=function(a,b,c,d){return Mb(function(b,c){return Ai.l(a,b,c)},Ai.l(a,b,c),d)};Ai.N=function(a){var b=y(a),c=z(a);a=y(c);var d=z(c);c=y(d);d=z(d);return Ai.A(b,a,c,d)};Ai.L=3;function Bi(a,b){return new kf(null,function(){var c=E(b);if(c){var d=y(c);d=a.h?a.h(d):a.call(null,d);c=t(d)?ae(y(c),Bi(a,vd(c))):null}else c=null;return c},null,null)}function Di(a,b,c){this.i=a;this.end=b;this.step=c} -Di.prototype.ja=function(){return 0this.end};Di.prototype.next=function(){var a=this.i;this.i+=this.step;return a};function Ei(a,b,c,d,e){this.meta=a;this.start=b;this.end=c;this.step=d;this.w=e;this.m=32375006;this.J=139264}g=Ei.prototype;g.toString=function(){return fd(this)};g.equiv=function(a){return this.K(null,a)}; -g.indexOf=function(){var a=null;a=function(a,c){switch(arguments.length){case 1:return Ud(this,a,0);case 2:return Ud(this,a,c)}throw Error("Invalid arity: "+(arguments.length-1));};a.h=function(a){return Ud(this,a,0)};a.c=function(a,c){return Ud(this,a,c)};return a}(); -g.lastIndexOf=function(){function a(a){return Xd(this,a,H(this))}var b=null;b=function(b,d){switch(arguments.length){case 1:return a.call(this,b);case 2:return Xd(this,b,d)}throw Error("Invalid arity: "+(arguments.length-1));};b.h=a;b.c=function(a,b){return Xd(this,a,b)};return b}();g.$=function(a,b){if(0<=b&&bthis.end&&0===this.step)return this.start;throw Error("Index out of bounds");}; -g.ka=function(a,b,c){return 0<=b&&bthis.end&&0===this.step?this.start:c};g.ba=function(){return new Di(this.start,this.end,this.step)};g.P=function(){return this.meta};g.Ka=function(){return 0this.end?new Ei(this.meta,this.start+this.step,this.end,this.step,null):null}; -g.W=function(){return wb(this.S(null))?0:Math.ceil((this.end-this.start)/this.step)};g.U=function(){var a=this.w;return null!=a?a:this.w=a=Ad(this)};g.K=function(a,b){return $d(this,b)};g.oa=function(){return tc(wd,this.meta)};g.Fa=function(a,b){return Kd(this,b)};g.Ga=function(a,b,c){for(a=this.start;;)if(0this.end){c=b.c?b.c(c,a):b.call(null,c,a);if(Hd(c))return B(c);a+=this.step}else return c};g.Ia=function(){return null==this.S(null)?null:this.start}; -g.bb=function(){return null!=this.S(null)?new Ei(this.meta,this.start+this.step,this.end,this.step,null):wd};g.S=function(){return 0this.step?this.start>this.end?this:null:this.start===this.end?null:this};g.T=function(a,b){return new Ei(b,this.start,this.end,this.step,this.w)};g.X=function(a,b){return ae(b,this)};Ei.prototype[Fb]=function(){return yd(this)};function Fi(a,b,c){return new Ei(null,a,b,c,null)} -function Gi(a,b){return new R(null,2,5,T,[Bi(a,b),ng(a,b)],null)} -function Hi(a){var b=y;return function(){function c(c,d,e){return new R(null,2,5,T,[b.l?b.l(c,d,e):b.call(null,c,d,e),a.l?a.l(c,d,e):a.call(null,c,d,e)],null)}function d(c,d){return new R(null,2,5,T,[b.c?b.c(c,d):b.call(null,c,d),a.c?a.c(c,d):a.call(null,c,d)],null)}function e(c){return new R(null,2,5,T,[b.h?b.h(c):b.call(null,c),a.h?a.h(c):a.call(null,c)],null)}function f(){return new R(null,2,5,T,[b.B?b.B():b.call(null),a.B?a.B():a.call(null)],null)}var h=null,k=function(){function c(a,b,c,e){var f= -null;if(3lb)return Jc(a,"#");Jc(a,c);if(0===tb.h(f))E(h)&&Jc(a,function(){var a=Ki.h(f);return t(a)?a:"..."}());else{if(E(h)){var l=y(h);b.l?b.l(l,a,f):b.call(null,l,a,f)}for(var p=z(h),m=tb.h(f)-1;;)if(!p||null!=m&&0===m){E(p)&&0===m&&(Jc(a,d),Jc(a,function(){var a=Ki.h(f);return t(a)?a:"..."}()));break}else{Jc(a,d);var u=y(p);c=a;h=f;b.l?b.l(u,c,h):b.call(null,u,c,h);var w=z(p);c=m-1;p=w;m=c}}return Jc(a,e)}finally{lb=k}} -function Li(a,b){for(var c=E(b),d=null,e=0,f=0;;)if(fH(a)?a.toUpperCase():[v.h(a.substring(0,1).toUpperCase()),v.h(a.substring(1))].join("")} -function Qo(a){if("string"===typeof a)return a;a=jf(a);var b=Fo(a,/-/),c=E(b);b=y(c);c=z(c);return t(Oo.h?Oo.h(b):Oo.call(null,b))?a:Kb(v,b,ig.c(Po,c))}function Ro(a){var b=function(){var b=function(){var b=me(a);return b?(b=a.displayName,t(b)?b:a.name):b}();if(t(b))return b;b=function(){var b=null!=a?a.J&4096||q===a.Oe?!0:!1:!1;return b?jf(a):b}();if(t(b))return b;b=qe(a);return xe(b)?Tk.h(b):null}();return Do(""+v.h(b),"$",".")}var So=!1;if("undefined"===typeof To)var To=0;function Uo(a){return setTimeout(a,16)}var Vo="undefined"===typeof window||null==window.document?Uo:function(){var a=window,b=a.requestAnimationFrame;if(t(b))return b;b=a.webkitRequestAnimationFrame;if(t(b))return b;b=a.mozRequestAnimationFrame;if(t(b))return b;a=a.msRequestAnimationFrame;return t(a)?a:Uo}();function Wo(a,b){return a.cljsMountOrder-b.cljsMountOrder}if("undefined"===typeof Xo)var Xo=function(){return null};function Yo(a){this.Yd=a} -function Zo(a,b){var c=a[b];if(null==c)return null;a[b]=null;for(var d=c.length,e=0;;)if(e=d&&a.push(gq(c));return a}}(e),[b,c],a))}};if("undefined"===typeof jq)var jq=null;function kq(){if(null!=jq)return jq;if("undefined"!==typeof ReactDOM)return jq=ReactDOM;if("undefined"!==typeof require){var a=jq=require("react-dom");if(t(a))return a;throw Error("require('react-dom') failed");}throw Error("js/ReactDOM is missing");}if("undefined"===typeof lq)var lq=dg.h(Ef); -function mq(a,b,c){var d=So;So=!0;try{return kq().render(a.B?a.B():a.call(null),b,function(){return function(){var d=So;So=!1;try{return gg.M(lq,K,b,new R(null,2,5,T,[a,b],null)),Zo(bp,"afterRender"),null!=c?c.B?c.B():c.call(null):null}finally{So=d}}}(d))}finally{So=d}}function nq(a,b){return mq(a,b,null)}function oq(a,b,c){qp();return mq(function(){return gq(me(a)?a.B?a.B():a.call(null):a)},b,c)}Wp=function(a){return kq().findDOMNode(a)};function pq(a){switch(arguments.length){case 2:return oq(arguments[0],arguments[1],null);case 3:return oq(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",v.h(arguments.length)].join(""));}}function qq(a,b){return oq(a,b,null)} -da("reagent.core.force_update_all",function(){qp();qp();for(var a=E(mh(B(lq))),b=null,c=0,d=0;;)if(d=Number(c)?a:a=-1Number(a)?"-":0<=b.indexOf("+")?"+":0<=b.indexOf(" ")?" ":"";0<=Number(a)&&(d=f+d);if(isNaN(c)||d.length>=Number(c))return d;d=isNaN(e)?Math.abs(Number(a)).toString():Math.abs(Number(a)).toFixed(e);a=Number(c)-d.length-f.length;0<=b.indexOf("-",0)?d=f+d+sa(" ",a):(b=0<=b.indexOf("0",0)?"0":" ",d=f+sa(b,a)+d);return d};yq.fc.d=function(a,b,c,d,e,f,h,k){return yq.fc.f(parseInt(a,10),b,c,d,0,f,h,k)}; -yq.fc.i=yq.fc.d;yq.fc.u=yq.fc.d;function zq(a){var b=be([Vk,null]);return wg.c(t(a)?a:Ef,function(){return function e(a){return new kf(null,function(){for(var b=a;;)if(b=E(b)){if(Ae(b)){var d=Wc(b),k=H(d),l=of(k);a:for(var p=0;;)if(p=H(h)&&Vf(function(){return function(a){return!(a instanceof Xq)}}(b,c,d,e,f,h),h)))throw Error(Bq("%s is not a valid sequence schema; %s%s%s",be([a,"a valid sequence schema consists of zero or more `one` elements, ","followed by zero or more `optional` elements, followed by an optional ", -"schema that will match the remaining elements."])));return new R(null,2,5,T,[O.c(c,f),y(h)],null)} -R.prototype.xb=function(){var a=this,b=Zq(a),c=J(b,0,null),d=J(b,1,null);return Wg(O.c(function(){return function(a,b,c,d){return function m(e){return new kf(null,function(){return function(){for(;;){var a=E(e);if(a){if(Ae(a)){var b=Wc(a),c=H(b),d=of(c);return function(){for(var a=0;;)if(ac?f:c;return $r(a,ea?0:a}():function(){var a=e-b;return f>a?f:a}())} -function gs(a,b){var c=null!=a&&(a.m&64||q===a.G)?P(U,a):a,d=D.c(c,pl);d=null!=d&&(d.m&64||q===d.G)?P(U,d):d;var e=D.c(d,Aj),f=D.c(c,Yj),h=D.c(c,no);return $r(c,e>f?function(){var a=h-1,c=e+b;return a=a}}(l,p,a,c,c,d,e,f,h,k),h),l,p);return Zr(c,d)} -function it(a,b){var c=null!=a&&(a.m&64||q===a.G)?P(U,a):a,d=D.c(c,pl),e=null!=d&&(d.m&64||q===d.G)?P(U,d):d,f=D.c(e,zn),h=D.c(c,tk),k=D.c(c,fl),l=b-1;d=J(cf(Bi(function(a,b,c,d,e,f,h){return function(a){return h>a}}(l,a,c,c,d,e,f,h,k),h)),l,0);return Zr(c,d)}function jt(a){return K.l(a,im,Ve)}function kt(a){return K.l(a,im,Hr)}function lt(a,b,c){return K.l(a,b,c)}function mt(a,b,c){return Wg(O.A(jg(b,a),new R(null,1,5,T,[c],null),be([jg(H(a)-b-1,kg(b,a))])))} -function nt(a,b){var c=null!=a&&(a.m&64||q===a.G)?P(U,a):a,d=D.c(c,pl),e=null!=d&&(d.m&64||q===d.G)?P(U,d):d;d=D.c(e,zn);e=D.c(e,Aj);var f=D.c(c,fl);D.c(c,no);var h=D.c(c,Oj),k=D.c(c,Rj),l=D.c(c,$l),p=D.c(c,im);p=95b?p.h?p.h(b):p.call(null,b):b;h=tr(p,h);return G.c(f,d+1)?t(k)?K.l(Yr(zg(c,new R(null,3,5,T,[il,e,d],null),h),d+1),vk,!0):zg(c,new R(null,3,5,T,[il,e,d],null),h):Yr(Ag.Z(c,new R(null,2,5,T,[il,e],null),t(l)?mt:lt,d,h),d+1)} -function ot(a,b){var c=null!=a&&(a.m&64||q===a.G)?P(U,a):a,d=D.c(c,Rj),e=D.c(c,vk);t(t(d)?e:d)&&(c=null!=c&&(c.m&64||q===c.G)?P(U,c):c,d=D.c(c,pl),d=null!=d&&(d.m&64||q===d.G)?P(U,d):d,d=D.c(d,Aj),e=D.c(c,no),c=Yr(c,0),c=G.c(e,d+1)?Tr.h(c):$r(c,d+1));return c=nt(c,b)}function pt(a){a=null!=a&&(a.m&64||q===a.G)?P(U,a):a;var b=D.c(a,fl),c=D.c(a,no);return K.l(a,il,Wg(qg(c,Wg(qg(b,new R(null,2,5,T,[69,Ef],null))))))} -function qt(a){a=null!=a&&(a.m&64||q===a.G)?P(U,a):a;var b=D.c(a,pl);b=null!=b&&(b.m&64||q===b.G)?P(U,b):b;b=D.c(b,Aj);var c=D.c(a,fl),d=D.c(a,Oj);return zg(a,new R(null,2,5,T,[il,b],null),gr.c(c,d))}function rt(a,b,c){return Wg(O.c(jg(b,a),qg(H(a)-b,vr(c))))}function st(a,b,c){return Wg(O.c(qg(b+1,vr(c)),kg(b+1,a)))} -function tt(a){a=null!=a&&(a.m&64||q===a.G)?P(U,a):a;var b=D.c(a,pl),c=null!=b&&(b.m&64||q===b.G)?P(U,b):b;b=D.c(c,zn);c=D.c(c,Aj);var d=D.c(a,fl),e=D.c(a,Oj);--d;return Ag.Z(a,new R(null,2,5,T,[il,c],null),rt,b=k?Zr(c,k-1):c,m=Mb(D,p,new R(null,2,5,T,[pl,zn],null));return Ag.l(p,new R(null,2,5,T,[il,h],null),function(a,b,c,d,e,f,h,k,m,l,p,Q){return function(a){return Wg(O.A(jg(b,a),kg(b+c,a),be([qg(c,vr(Q))])))}}(p,m,function(){var a=k-m;return b=a}}(c,b)(b)}()))return Gu(a,b+64);throw Jt;}catch(h){if(h instanceof Error){var d=h;if(d===Jt)try{if(55===b)return Bg(a,V,ms);throw Jt;}catch(k){if(k instanceof Error){var e=k;if(e===Jt)try{if(56===b)return Bg(a,V,ns);throw Jt;}catch(l){if(l instanceof Error){var f=l;if(f===Jt)try{if(99===b)return du(a); -throw Jt;}catch(p){if(p instanceof Error){d=p;if(d===Jt)throw Jt;throw d;}throw p;}else throw f;}else throw l;}else throw e;}else throw k;}else throw d;}else throw h;}else throw Jt;}catch(h){if(h instanceof Error)if(d=h,d===Jt)try{if(35===c)try{if(56===b)return Bg(a,V,pt);throw Jt;}catch(k){if(k instanceof Error){e=k;if(e===Jt)throw Jt;throw e;}throw k;}else throw Jt;}catch(k){if(k instanceof Error)if(e=k,e===Jt)try{if(40===c)try{if(48===b)return Zt(a);throw Jt;}catch(l){if(l instanceof Error){f= -l;if(f===Jt)return $t(a);throw f;}throw l;}else throw Jt;}catch(l){if(l instanceof Error){f=l;if(f===Jt)return a;throw f;}throw l;}else throw e;else throw k;}else throw d;else throw h;}},function(a){return a},function(a){return a},Gu,function(a,b){return Cg(a,V,ot,b)},function(a,b){var c=function(){switch(b){case 64:return eu;case 65:return fu;case 66:return gu;case 67:return hu;case 68:return iu;case 69:return ju;case 70:return ku;case 71:return lu;case 72:return mu;case 73:return nu;case 74:return ou; -case 75:return pu;case 76:return su;case 77:return tu;case 80:return uu;case 83:return qu;case 84:return ru;case 87:return vu;case 88:return wu;case 90:return xu;case 96:return lu;case 97:return hu;case 100:return Du;case 101:return fu;case 102:return mu;case 103:return yu;case 104:return zu;case 108:return Au;case 109:return Cu;case 112:return Eu;case 114:return Fu;default:return null}}();return t(c)?c.h?c.h(a):c.call(null,a):a},function(a){return a},function(a,b){return K.l(a,kk,ge.c(kk.h(a),b))}, -function(a){return a},function(a,b){return K.l(a,rk,ge.c(rk.h(a),b))},function(a){return a},function(a){return a},function(a){return K.A(a,rk,he,be([kk,he]))}]);function Iu(a,b){for(var c=a,d=Tl.h(c),e=b;;){var f=y(e);if(t(f)){var h=160<=f?65:f;h=D.c(d.h?d.h(xq):d.call(null,xq),h);d=J(h,0,null);h=J(h,1,null);a:for(;;)if(E(h)){var k=y(h);k=Hu.h?Hu.h(k):Hu.call(null,k);c=k.c?k.c(c,f):k.call(null,c,f);h=z(h)}else break a;e=vd(e)}else return K.l(c,Tl,d)}} -function Ju(a,b){var c=xg(function(a){return a.codePointAt(0)},b);return Iu(a,c)} -function Ku(a,b){try{if(ze(b)&&3===H(b)){var c=Vd(b,0),d=Vd(b,1),e=Vd(b,2);return[v.h(a+8),";2;",v.h(c),";",v.h(d),";",v.h(e)].join("")}throw Jt;}catch(k){if(k instanceof Error){var f=k;if(f===Jt)try{if(t(function(){return function(){return function(a){return 8>a}}(f)(b)}()))return""+v.h(a+b);throw Jt;}catch(l){if(l instanceof Error){var h=l;if(h===Jt)try{if(t(function(){return function(){return function(a){return 16>a}}(h,f)(b)}()))return""+v.h(a+52+b);throw Jt;}catch(p){if(p instanceof Error){c= -p;if(c===Jt)return[v.h(a+8),";5;",v.h(b)].join("");throw c;}throw p;}else throw h;}else throw l;}else throw f;}else throw k;}}ag.c(Ku,30);ag.c(Ku,40);var Lu=function Lu(a){if(null!=a&&null!=a.yd)return a.yd(a);var c=Lu[n(null==a?null:a)];if(null!=c)return c.h?c.h(a):c.call(null,a);c=Lu._;if(null!=c)return c.h?c.h(a):c.call(null,a);throw Cb("Screen.lines",a);},Mu=function Mu(a){if(null!=a&&null!=a.xd)return a.xd(a);var c=Mu[n(null==a?null:a)];if(null!=c)return c.h?c.h(a):c.call(null,a);c=Mu._;if(null!=c)return c.h?c.h(a):c.call(null,a);throw Cb("Screen.cursor",a);};function Nu(a,b){var c=0parseFloat(Iv)){Hv=String(Kv);break a}}Hv=Iv}var gb={}; -function Lv(a){return fb(a,function(){for(var b=0,c=ra(String(Hv)).split("."),d=ra(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f=a.keyCode)a.keyCode=-1}catch(b){}};var Uv="closure_listenable_"+(1E6*Math.random()|0),Vv=0;function Wv(a,b,c,d,e){this.listener=a;this.Xd=null;this.src=b;this.type=c;this.capture=!!d;this.Ub=e;this.key=++Vv;this.$c=this.Fd=!1}function Xv(a){a.$c=!0;a.listener=null;a.Xd=null;a.src=null;a.Ub=null};function Yv(a){this.src=a;this.rb={};this.wd=0}Yv.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.rb[f];a||(a=this.rb[f]=[],this.wd++);var h=Zv(a,b,d,e);-1e.keyCode||void 0!=e.returnValue)){a:{var f=!1;if(0==e.keyCode)try{e.keyCode=-1;break a}catch(l){f=!0}if(f||void 0==e.returnValue)e.returnValue=!0}e=[];for(f=c.currentTarget;f;f=f.parentNode)e.push(f);f=a.type;for(var h=e.length-1;!c.Kc&&0<=h;h--){c.currentTarget=e[h];var k=nw(e[h],f,!0,c);d=d&&k}for(h=0;!c.Kc&& -h>>0);function fw(a){if(ha(a))return a;a[pw]||(a[pw]=function(b){return a.handleEvent(b)});return a[pw]};function qw(){wv.call(this);this.Ib=new Yv(this);this.ff=this;this.ve=null}qa(qw,wv);qw.prototype[Uv]=!0;g=qw.prototype;g.addEventListener=function(a,b,c,d){dw(this,a,b,c,d)};g.removeEventListener=function(a,b,c,d){lw(this,a,b,c,d)}; -g.dispatchEvent=function(a){var b,c=this.ve;if(c)for(b=[];c;c=c.ve)b.push(c);c=this.ff;var d=a.type||a;if(ca(a))a=new Sv(a,c);else if(a instanceof Sv)a.target=a.target||c;else{var e=a;a=new Sv(d,c);Ia(a,e)}e=!0;if(b)for(var f=b.length-1;!a.Kc&&0<=f;f--){var h=a.currentTarget=b[f];e=rw(h,d,!0,a)&&e}a.Kc||(h=a.currentTarget=c,e=rw(h,d,!0,a)&&e,a.Kc||(e=rw(h,d,!1,a)&&e));if(b)for(f=0;!a.Kc&&fthis.head?(Yw(this.o,this.fa,a,0,this.o.length-this.fa),Yw(this.o,0,a,this.o.length-this.fa,this.head),this.fa=0,this.head=this.length,this.o=a):this.fa===this.head?(this.head=this.fa=0,this.o=a):null};function ax(a,b){for(var c=a.length,d=0;;)if(da)){a+=1;continue}break}hx=!1;return 0c)return a;a:for(;;){var e=cMath.random()&&15>d)d+=1;else break a;if(d>this.level){for(var e=this.level+1;;)if(e<=d+1)c[e]=this.header,e+=1;else break;this.level=d}for(d=Ex(a,b,Array(d));;)return 0<=this.level?(c=c[0].forward,d.forward[0]=c[0],c[0]=d):null}; -Gx.prototype.remove=function(a){var b=Array(15),c=Fx(this.header,a,this.level,b);c=0===c.forward.length?null:c.forward[0];if(null!=c&&c.key===a){for(a=0;;)if(a<=this.level){var d=b[a].forward;c===(ad)return c===b.header?null:c;var e;a:for(e=c;;){e=d=a)break a}null!=e?(--d,c=e):--d}}Gx.prototype.S=function(){return function(a){return function d(c){return new kf(null,function(){return function(){return null==c?null:ae(new R(null,2,5,T,[c.key,c.H],null),d(c.forward[0]))}}(a),null,null)}}(this)(this.header.forward[0])}; -Gx.prototype.R=function(a,b,c){return Y(b,function(){return function(a){return Y(b,Qi,""," ","",c,a)}}(this),"{",", ","}",c,this)};var Ix=new Gx(Ex(null,null,0),0);function Jx(a){var b=(new Date).valueOf()+a,c=Hx(b),d=t(t(c)?c.keya:b)?a+8:a,[v.h(c),v.h(a)].join("")):null} -function Vy(a){var b=J(a,0,null),c=J(a,1,null);a=J(a,2,null);return["rgb(",v.h(b),",",v.h(c),",",v.h(a),")"].join("")} -var Wy=hj(function(a){a=null!=a&&(a.m&64||q===a.G)?P(U,a):a;var b=D.c(a,Nk),c=D.c(a,pl);a=K.l(a,Nk,t(c)?wb(b):b);var d=null!=a&&(a.m&64||q===a.G)?P(U,a):a,e=D.c(d,Ok),f=D.c(d,Tn);b=D.c(d,Kj);var h=D.c(d,dk);c=D.c(d,Vl);var k=D.c(d,Nk),l=D.c(d,Yn);d=D.c(d,pl);var p=t(k)?t(e)?e:"fg":f;e=Uy(t(k)?t(f)?f:"bg":e,b,"fg-");h=Uy(p,h,"bg-");c=vg(ub,new R(null,6,5,T,[e,h,t(b)?"bright":null,t(l)?"italic":null,t(c)?"underline":null,t(d)?"cursor":null],null));if(E(c))a:for(b=new cb,c=E(c);;)if(null!=c)b.append(""+ -v.h(y(c))),c=z(c),null!=c&&b.append(" ");else{b=b.toString();break a}else b=null;l=null!=a&&(a.m&64||q===a.G)?P(U,a):a;a=D.c(l,Ok);c=D.c(l,Tn);h=D.c(l,Nk);l=t(h)?c:a;a=t(h)?a:c;a=hi.A(be([t(ze.h?ze.h(l):ze.call(null,l))?new r(null,1,[ik,Vy(l)],null):null,t(ze.h?ze.h(a):ze.call(null,a))?new r(null,1,[al,Vy(a)],null):null]));return hi.A(be([t(b)?new r(null,1,[vn,b],null):null,t(a)?new r(null,1,[fm,a],null):null]))}); -function Xy(a,b){var c=J(a,0,null),d=J(a,1,null);d=Bg(d,pl,function(){return function(a){return t(a)?B(b):a}}(a,c,d));return new R(null,3,5,T,[ro,Wy.h?Wy.h(d):Wy.call(null,d),c],null)}function Yy(a,b){var c=J(a,0,null),d=J(a,1,null),e=jg(b,c);e=E(e)?new R(null,2,5,T,[Eo(e),d],null):null;var f=K.l(d,pl,!0);f=new R(null,2,5,T,[Vd(c,b),f],null);c=kg(b+1,c);d=E(c)?new R(null,2,5,T,[Eo(c),d],null):null;return vg(ub,new R(null,3,5,T,[e,f,d],null))} -function Zy(a,b){for(var c=he,d=a,e=b;;)if(E(d)){var f=y(d),h=J(f,0,null);J(f,1,null);h=H(h);if(h<=e)c=ge.c(c,f),d=vd(d),e-=h;else return O.A(c,Yy(f,e),be([vd(d)]))}else return c}function $y(a,b,c){a=t(B(b))?Zy(B(a),B(b)):B(a);return new R(null,2,5,T,[Lm,Ii(bg(function(){return function(a,b){return pe(new R(null,3,5,T,[Xy,b,c],null),new r(null,1,[mk,a],null))}}(a),a))],null)}var qA=new ti(null,new r(null,3,["small",null,"medium",null,"big",null],null),null); -function rA(a,b,c,d,e){var f=yp(function(){var a=B(c);return t(qA.h?qA.h(a):qA.call(null,a))?["font-",v.h(a)].join(""):null}),h=yp(function(){return function(){var d=B(a),e=B(b),f=B(c);f=t(qA.h?qA.h(f):qA.call(null,f))?null:new r(null,1,[wk,f],null);return hi.A(be([new r(null,2,[fl,[v.h(d),"ch"].join(""),no,[v.h(1.3333333333*e),"em"].join("")],null),f]))}}(f)),k=yp(function(){return function(){return Lu(B(d))}}(f,h)),l=yp(function(a,c,d){return function(){return xg(function(a,b,c){return function(d){return yp(function(a, -b,c){return function(){return D.c(B(c),d)}}(a,b,c))}}(a,c,d),Fi(0,B(b),1))}}(f,h,k)),p=yp(function(){return function(){return Mu(B(d))}}(f,h,k,l)),m=yp(function(a,b,c,d,e){return function(){return zn.h(B(e))}}(f,h,k,l,p)),u=yp(function(a,b,c,d,e){return function(){return Aj.h(B(e))}}(f,h,k,l,p,m)),w=yp(function(a,b,c,d,e){return function(){return On.h(B(e))}}(f,h,k,l,p,m,u));return function(a,b,c,d,f,h,k,l){return function(){return new R(null,3,5,T,[Gm,new r(null,2,[vn,B(a),fm,B(b)],null),bg(function(a, -b,c,d,f,h,k,l){return function(m,p){var u=yp(function(a,b,c,d,e,f,h,k){return function(){var a=B(k);return t(a)?(a=G.c(m,B(h)))?B(f):a:a}}(a,b,c,d,f,h,k,l));return pe(new R(null,4,5,T,[$y,p,u,e],null),new r(null,1,[mk,m],null))}}(a,b,c,d,f,h,k,l),B(d))],null)}}(f,h,k,l,p,m,u,w)} -function sA(){return new R(null,2,5,T,[Ym,new r(null,4,[Mn,"1.1",Fl,"0 0 866.0254037844387 866.0254037844387",vn,"icon",mo,new r(null,1,[An,'\x3cdefs\x3e \x3cmask id\x3d"small-triangle-mask"\x3e \x3crect width\x3d"100%" height\x3d"100%" fill\x3d"white"/\x3e \x3cpolygon points\x3d"508.01270189221935 433.01270189221935, 208.0127018922194 259.8076211353316, 208.01270189221927 606.217782649107" fill\x3d"black"\x3e\x3c/polygon\x3e \x3c/mask\x3e \x3c/defs\x3e \x3cpolygon points\x3d"808.0127018922194 433.01270189221935, 58.01270189221947 -1.1368683772161603e-13, 58.01270189221913 866.0254037844386" mask\x3d"url(#small-triangle-mask)" fill\x3d"white"\x3e\x3c/polygon\x3e \x3cpolyline points\x3d"481.2177826491071 333.0127018922194, 134.80762113533166 533.0127018922194" stroke\x3d"white" stroke-width\x3d"90"\x3e\x3c/polyline\x3e'],null)], -null)],null)}function tA(){return new R(null,3,5,T,[Ym,new r(null,3,[Mn,"1.1",Fl,"0 0 12 12",vn,"icon"],null),new R(null,2,5,T,[Fj,new r(null,1,[pn,"M1,0 L11,6 L1,12 Z"],null)],null)],null)}function uA(){return new R(null,4,5,T,[Ym,new r(null,3,[Mn,"1.1",Fl,"0 0 12 12",vn,"icon"],null),new R(null,2,5,T,[Fj,new r(null,1,[pn,"M1,0 L4,0 L4,12 L1,12 Z"],null)],null),new R(null,2,5,T,[Fj,new r(null,1,[pn,"M8,0 L11,0 L11,12 L8,12 Z"],null)],null)],null)} -function vA(){return new R(null,4,5,T,[Ym,new r(null,3,[Mn,"1.1",Fl,"0 0 12 12",vn,"icon"],null),new R(null,2,5,T,[Fj,new r(null,1,[pn,"M12,0 L7,0 L9,2 L7,4 L8,5 L10,3 L12,5 Z"],null)],null),new R(null,2,5,T,[Fj,new r(null,1,[pn,"M0,12 L0,7 L2,9 L4,7 L5,8 L3,10 L5,12 Z"],null)],null)],null)} -function wA(){return new R(null,4,5,T,[Ym,new r(null,3,[Mn,"1.1",Fl,"0 0 12 12",vn,"icon"],null),new R(null,2,5,T,[Fj,new r(null,1,[pn,"M7,5 L7,0 L9,2 L11,0 L12,1 L10,3 L12,5 Z"],null)],null),new R(null,2,5,T,[Fj,new r(null,1,[pn,"M5,7 L0,7 L2,9 L0,11 L1,12 L3,10 L5,12 Z"],null)],null)],null)}function xA(a,b){return function(b){return function(){return new R(null,3,5,T,[cl,new r(null,1,[Sl,b],null),new R(null,1,5,T,[t(B(a))?uA:tA],null)],null)}}(Ty(b,new fy(null,null,null)))} -function yA(a){return 10>a?["0",v.h(a)].join(""):a}function zA(a){var b=Math.floor((a%60+60)%60);return[v.h(yA(Math.floor(a/60))),":",v.h(yA(b))].join("")}function AA(a,b){var c=T,d=new R(null,2,5,T,[Yk,zA(B(a))],null),e=T;var f=B(a);var h=B(b);f=["-",v.h(zA(h-f))].join("");return new R(null,3,5,c,[Ml,d,new R(null,2,5,e,[co,f],null)],null)} -function BA(){function a(a){a.preventDefault();return Ry(a.currentTarget.parentNode.parentNode.parentNode)}return function(){return new R(null,4,5,T,[un,new r(null,1,[Sl,a],null),new R(null,1,5,T,[vA],null),new R(null,1,5,T,[wA],null)],null)}} -function CA(a,b){var c=Sy(b,function(a){var b=a.currentTarget.offsetWidth,c=a.currentTarget.getBoundingClientRect();return cy(Nu(a.clientX-c.left,b)/b)}),d=yp(function(){return function(){return[v.h(100*B(a)),"%"].join("")}}(c));return function(a,b){return function(){return new R(null,2,5,T,[Vj,new R(null,3,5,T,[Bl,new r(null,1,[Ql,a],null),new R(null,2,5,T,[Cj,new R(null,2,5,T,[ro,new r(null,1,[fm,new r(null,1,[fl,B(b)],null)],null)],null)],null)],null)],null)}}(c,d)} -function DA(a,b,c,d){return function(e){return function(){return new R(null,5,5,T,[Kk,new R(null,3,5,T,[xA,a,d],null),new R(null,3,5,T,[AA,b,c],null),new R(null,1,5,T,[BA],null),new R(null,3,5,T,[CA,e,d],null)],null)}}(yp(function(){return B(b)/B(c)}))} -function EA(a){return function(a){return function(){return new R(null,3,5,T,[ol,new r(null,1,[Sl,a],null),new R(null,2,5,T,[Xk,new R(null,2,5,T,[km,new R(null,2,5,T,[ro,new R(null,1,5,T,[sA],null)],null)],null)],null)],null)}}(Ty(a,new fy(null,null,null)))}function FA(){return new R(null,2,5,T,[Ek,new R(null,1,5,T,[xn],null)],null)}function GA(a){return Wf(function(b){return a[b]},new R(null,4,5,T,["altKey","shiftKey","metaKey","ctrlKey"],null))} -function HA(a){var b=t(GA(a))?null:function(){switch(a.key){case " ":return new fy(null,null,null);case "f":return bm;case "0":return cy(0);case "1":return cy(.1);case "2":return cy(.2);case "3":return cy(.3);case "4":return cy(.4);case "5":return cy(.5);case "6":return cy(.6);case "7":return cy(.7);case "8":return cy(.8);case "9":return cy(.9);default:return null}}();if(t(b))return b;switch(a.key){case "\x3e":return new ey(null,null,null);case "\x3c":return new dy(null,null,null);default:return null}} -function IA(a){if(t(GA(a)))return null;switch(a.which){case 37:return new ay(null,null,null);case 39:return new $x(null,null,null);default:return null}}function JA(a){var b=HA(a);return t(b)?(a.preventDefault(),G.c(b,bm)?(Ry(a.currentTarget),null):b):null}function KA(a){var b=IA(a);return t(b)?(a.preventDefault(),b):null} -function LA(a,b,c,d){a=t(a)?['"',v.h(a),'"'].join(""):"untitled";return new R(null,4,5,T,[dl,t(d)?new R(null,2,5,T,[jo,new r(null,1,[zl,d],null)],null):null,a,t(b)?new R(null,3,5,T,[ro," by ",t(c)?new R(null,3,5,T,[lo,new r(null,1,[ho,c],null),b],null):b],null):null],null)} -function MA(a){var b=Mx(1,ig.h(iy)),c=Kx(1);lx(function(c){return function(){var d=function(){return function(a){return function(){function b(b){for(;;){a:try{for(;;){var c=a(b);if(!N(c,Z)){var d=c;break a}}}catch(x){if(x instanceof Object)b[5]=x,Cx(b),d=Z;else throw x;}if(!N(d,Z))return d}}function c(){var a=[null,null,null,null,null,null,null,null,null,null,null,null];a[0]=d;a[1]=1;return a}var d=null;d=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return b.call(this,a)}throw Error("Invalid arity: "+ -(arguments.length-1));};d.B=c;d.h=b;return d}()}(function(){return function(c){var d=c[1];if(7===d)return c[7]=c[2],Ax(c,12,b,!1);if(1===d)return c[2]=null,c[1]=2,Z;if(4===d)return c[8]=c[2],Ax(c,5,b,!0);if(6===d)return d=Jx(3E3),Ux(c,8,new R(null,2,5,T,[a,d],null));if(3===d)return Bx(c,c[2]);if(12===d)return c[9]=c[2],c[2]=null,c[1]=2,Z;if(2===d)return zx(c,4,a);if(11===d)return c[2]=c[2],c[1]=7,Z;if(9===d)return c[2]=null,c[1]=6,Z;if(5===d)return c[10]=c[2],c[2]=null,c[1]=6,Z;if(10===d)return c[2]= -null,c[1]=11,Z;if(8===d){var e=c[2];d=J(e,0,null);e=J(e,1,null);e=G.c(e,a);c[11]=d;c[1]=e?9:10;return Z}return null}}(c),c)}(),f=function(){var a=d.B?d.B():d.call(null);a[6]=c;return a}();return yx(f)}}(c));return b} -function NA(a,b){var c=dg.h(b),d=Kx(1);lx(function(b,c){return function(){var d=function(){return function(a){return function(){function b(b){for(;;){a:try{for(;;){var c=a(b);if(!N(c,Z)){var d=c;break a}}}catch(F){if(F instanceof Object)b[5]=F,Cx(b),d=Z;else throw F;}if(!N(d,Z))return d}}function c(){var a=[null,null,null,null,null,null,null,null,null,null,null,null,null];a[0]=d;a[1]=1;return a}var d=null;d=function(a){switch(arguments.length){case 0:return c.call(this);case 1:return b.call(this, -a)}throw Error("Invalid arity: "+(arguments.length-1));};d.B=c;d.h=b;return d}()}(function(b,c){return function(d){var e=d[1];if(7===e){var f=d[7],h=wb(null==f);d[8]=d[2];d[1]=h?8:9;return Z}if(20===e)return f=d[7],d[1]=t(q===f.Fe)?23:24,Z;if(27===e)return d[2]=!1,d[1]=28,Z;if(1===e)return d[2]=null,d[1]=2,Z;if(24===e)return f=d[7],d[1]=t(!f.Tc)?26:27,Z;if(4===e){f=d[7];var k=d[9];h=d[2];var l=J(h,0,null),m=J(h,1,null);d[10]=m;d[7]=l;d[9]=h;d[1]=t(null==l)?5:6;return Z}return 15===e?(d[2]=!1,d[1]= -16,Z):21===e?(f=d[7],h=Ab(Yx,f),d[2]=h,d[1]=22,Z):31===e?(d[11]=d[2],d[2]=null,d[1]=2,Z):13===e?(d[2]=d[2],d[1]=10,Z):22===e?(d[1]=t(d[2])?29:30,Z):29===e?(f=d[7],h=B(a),h=Zx(f,h),h=gg.l(c,wo,h),d[2]=h,d[1]=31,Z):6===e?(d[2]=null,d[1]=7,Z):28===e?(d[2]=d[2],d[1]=25,Z):25===e?(d[2]=d[2],d[1]=22,Z):17===e?(m=d[10],f=d[7],k=d[9],h=gg.c(a,function(){return function(a,b){return function(a){return Xx(b,a)}}(k,f,m,m,f,k,e,b,c)}()),d[2]=h,d[1]=19,Z):3===e?Bx(d,d[2]):12===e?(f=d[7],d[1]=t(!f.Tc)?14:15,Z): -2===e?(h=B(c),h=E(h),Ux(d,4,h)):23===e?(d[2]=!0,d[1]=25,Z):19===e?(f=d[7],h=wb(null==f),d[12]=d[2],d[1]=h?20:21,Z):11===e?(d[2]=!0,d[1]=13,Z):9===e?(f=d[7],h=Ab(Wx,f),d[2]=h,d[1]=10,Z):5===e?(m=d[10],h=gg.l(c,re,m),d[2]=h,d[1]=7,Z):14===e?(f=d[7],h=Ab(Wx,f),d[2]=h,d[1]=16,Z):26===e?(f=d[7],h=Ab(Yx,f),d[2]=h,d[1]=28,Z):16===e?(d[2]=d[2],d[1]=13,Z):30===e?(d[2]=null,d[1]=31,Z):10===e?(d[1]=t(d[2])?17:18,Z):18===e?(d[2]=null,d[1]=19,Z):8===e?(f=d[7],d[1]=t(q===f.sb)?11:12,Z):null}}(b,c),b,c)}(),e=function(){var a= -d.B?d.B():d.call(null);a[6]=b;return a}();return yx(e)}}(d,c));return d} -function OA(a,b,c){c=Ty(c,!0);var d=Sy(b,JA),e=Sy(b,KA),f=yp(function(){return function(){return Hm.h(B(a))}}(c,d,e)),h=yp(function(){return function(){return el.h(B(a))}}(c,d,e,f)),k=yp(function(a,b,c,d,e){return function(){var a=B(d);return t(a)?a:B(e)}}(c,d,e,f,h)),l=yp(function(b,c,d,e,f,h){return function(){var b=Gk.h(B(a));b=t(b)?b:wb(B(h));return t(b)?"hud":null}}(c,d,e,f,h,k)),p=yp(function(){return function(){return["asciinema-theme-",v.h(gm.h(B(a)))].join("")}}(c,d,e,f,h,k,l)),m=yp(function(){return function(){var b= -fl.h(B(a));return t(b)?b:80}}(c,d,e,f,h,k,l,p)),u=yp(function(){return function(){var b=no.h(B(a));return t(b)?b:24}}(c,d,e,f,h,k,l,p,m)),w=yp(function(){return function(){return wk.h(B(a))}}(c,d,e,f,h,k,l,p,m,u)),x=yp(function(){return function(){return V.h(B(a))}}(c,d,e,f,h,k,l,p,m,u,w)),C=yp(function(){return function(){return ml.h(B(a))}}(c,d,e,f,h,k,l,p,m,u,w,x)),F=yp(function(){return function(){return jn.h(B(a))}}(c,d,e,f,h,k,l,p,m,u,w,x,C)),I=yp(function(){return function(){return Uj.h(B(a))}}(c, -d,e,f,h,k,l,p,m,u,w,x,C,F)),M=yp(function(){return function(){return wl.h(B(a))}}(c,d,e,f,h,k,l,p,m,u,w,x,C,F,I)),S=B(a),X=null!=S&&(S.m&64||q===S.G)?P(U,S):S,Ga=D.c(X,ki),db=D.c(X,li),Q=D.c(X,mi),xb=D.c(X,ni);return function(a,c,d,e,f,h,k,l,m,p,u,w,x,C,F,I,M,S,Q,X,Ga,db){return function(){return new R(null,3,5,T,[Cn,new r(null,5,[Jj,-1,Zj,c,Rn,d,Vm,a,vn,B(k)],null),new R(null,7,5,T,[Sm,new r(null,1,[vn,B(l)],null),new R(null,6,5,T,[rA,m,p,u,w,x],null),new R(null,5,5,T,[DA,C,F,I,b],null),t(t(Q)?Q: -X)?new R(null,5,5,T,[LA,Q,X,Ga,db],null):null,t(B(h))?null:new R(null,2,5,T,[EA,b],null),t(B(e))?new R(null,1,5,T,[FA],null):null],null)],null)}}(c,d,e,f,h,k,l,p,m,u,w,x,C,F,I,M,S,X,Ga,db,Q,xb)} -function PA(a){var b=Kx(null),c=Kx(new dx(bx(1),1));return function(b,c){return function(){return Pp(new r(null,4,[ln,"asciinema-player",Dm,function(b,c){return function(){return OA(a,b,c)}}(b,c),$k,function(b,c){return function(){var d=ty(Gl.h(B(a))),e=MA(c);Tx(e,b);return NA(a,Je([b,d]))}}(b,c),Wm,function(){return function(){return uy(Gl.h(B(a)))}}(b,c)],null))}}(b,c)};function QA(a,b){var c=null!=b&&(b.m&64||q===b.G)?P(U,b):b,d=D.c(c,Ak),e=D.c(c,Gl);d=a.h?a.h(d):a.call(null,d);zy(e,d);return K.l(c,Ak,d)}$x.prototype.sb=q;$x.prototype.qb=function(a,b){var c=null!=b&&(b.m&64||q===b.G)?P(U,b):b,d=D.c(c,Uj),e=D.c(c,wl),f=D.c(c,Gl);t(e)&&yy(f,Nu(d+5,e));return c};ay.prototype.sb=q;ay.prototype.qb=function(a,b){var c=null!=b&&(b.m&64||q===b.G)?P(U,b):b,d=D.c(c,Uj),e=D.c(c,wl),f=D.c(c,Gl);t(e)&&yy(f,Nu(d+-5,e));return c};by.prototype.sb=q; -by.prototype.qb=function(a,b){var c=null!=b&&(b.m&64||q===b.G)?P(U,b):b,d=D.c(c,wl),e=D.c(c,Gl);t(d)&&(d*=nn.h(this),yy(e,d));return c};dy.prototype.sb=q;dy.prototype.qb=function(a,b){return QA(function(){return function(a){return a/2}}(this),b)};ey.prototype.sb=q;ey.prototype.qb=function(a,b){return QA(function(){return function(a){return 2*a}}(this),b)};fy.prototype.sb=q;fy.prototype.qb=function(a,b){xy(Gl.h(b));return b};gy.prototype.sb=q;gy.prototype.qb=function(a,b){return K.l(b,ml,so.h(this))}; -hy.prototype.sb=q;hy.prototype.qb=function(a,b){return K.l(b,Gk,so.h(this))};jy.prototype.sb=q;jy.prototype.qb=function(a,b){var c=null!=a&&(a.m&64||q===a.G)?P(U,a):a;D.c(c,fl);D.c(c,no);D.c(c,wl);c=null!=b&&(b.m&64||q===b.G)?P(U,b):b;var d=D.c(c,fl),e=D.c(c,no),f=null!=this&&(this.m&64||q===this.G)?P(U,this):this,h=D.c(f,fl),k=D.c(f,no);f=D.c(f,wl);return K.A(c,fl,t(d)?d:h,be([no,t(e)?e:k,wl,f]))};ky.prototype.sb=q;ky.prototype.qb=function(a,b){return K.l(b,Hm,Hm.h(this))};oy.prototype.sb=q; -oy.prototype.qb=function(a,b){var c=null!=b&&(b.m&64||q===b.G)?P(U,b):b,d=D.c(c,oi);t(d)&&(ap(bp),d.B?d.B():d.call(null));return c};ry.prototype.sb=q;ry.prototype.qb=function(a,b){return K.l(b,Uj,Zk.h(this))};function RA(){return ig.l(function(a,b){return new R(null,2,5,T,[a,new gy(b,null,null,null)],null)},rg(function(a){return a+.5},.5),og(new R(null,2,5,T,[!1,!0],null)))}function SA(a){var b=Dy(RA());return K.l(K.l(a,ml,!0),Ol,b)} -function TA(a){a=null!=a&&(a.m&64||q===a.G)?P(U,a):a;var b=D.c(a,Ol);Tw(b);return K.l(K.l(a,ml,!0),Ol,null)}function UA(a){a=null!=a&&(a.m&64||q===a.G)?P(U,a):a;a=D.c(a,Ol);return t(a)?Je([a]):vi}my.prototype.sb=q; -my.prototype.qb=function(a,b){var c=null!=a&&(a.m&64||q===a.G)?P(U,a):a;D.c(c,jn);var d=null!=b&&(b.m&64||q===b.G)?P(U,b):b,e=D.c(d,jn);c=D.c(d,pi);var f=D.c(d,qi),h=null!=this&&(this.m&64||q===this.G)?P(U,this):this;h=D.c(h,jn);if(G.c(e,h))return d;d=K.A(d,jn,h,be([el,!0]));if(t(h))return t(c)&&(c.B?c.B():c.call(null)),SA(d);t(f)&&(f.B?f.B():f.call(null));return TA(d)};my.prototype.Fe=q;my.prototype.de=function(a,b){return UA(b)};py.prototype.sb=q; -py.prototype.qb=function(a,b){var c=K.l(b,V,V.h(this));c=null!=c&&(c.m&64||q===c.G)?P(U,c):c;var d=D.c(c,Ol);return t(d)?SA(TA(c)):c};py.prototype.Fe=q;py.prototype.de=function(a,b){return UA(b)};function VA(a){return t(a)?(a=ig.c(parseFloat,Fo(""+v.h(a),/:/)),a=ig.l(Ye,cf(a),rg(function(){return function(a){return 60*a}}(a),1)),P(Xe,a)):null} -function WA(a,b,c){t(a)?"string"===typeof a?t(0===a.indexOf("data:app/json;base64,"))?(b=a.substring(29).replace(RegExp("\\s","g"),""),b=JSON.parse(atob(b)),b=fj(b),b=new r(null,1,[V,new r(null,1,[il,b],null)],null)):t(0===a.indexOf("data:text/plain,"))?(a=a.substring(16),b=Ju(Ot(t(b)?b:80,t(c)?c:24),a),b=new r(null,1,[V,b],null)):b=t(0===a.indexOf("npt:"))?new r(null,1,[Zk,VA(a.substring(4))],null):null:b=new r(null,1,[V,new r(null,1,[il,a],null)],null):b=null;return b} -var XA=new r(null,2,[pl,new r(null,1,[On,!1],null),il,he],null); -function YA(a,b){var c=null!=b&&(b.m&64||q===b.G)?P(U,b):b,d=D.c(c,no),e=D.l(c,wk,"small"),f=D.l(c,Ak,1),h=D.c(c,Hk),k=D.c(c,fl),l=D.c(c,rl),p=D.l(c,cm,!1),m=D.l(c,gm,"asciinema"),u=D.c(c,qm),w=D.c(c,Bm),x=D.l(c,vm,!1),C=D.l(c,Em,!1),F=function(){var a=VA(h);return t(a)?a:0}();w=WA(w,k,d);var I=null!=w&&(w.m&64||q===w.G)?P(U,w):w;w=D.c(I,V);I=D.c(I,Zk);var M=t(I)?I:wb(w)&&0 import("./components/session/GuacdMonitor")); +const GuacdPlayback = React.lazy(() => import("./components/session/GuacdPlayback")); +const TermMonitor = React.lazy(() => import("./components/session/TermMonitor")); +const TermPlayback = React.lazy(() => import("./components/session/TermPlayback")); -class App extends Component { +const BatchCommand = React.lazy(() => import("./components/devops/BatchCommand")); +const LoginPolicyDetail = React.lazy(() => import("./components/security/LoginPolicyDetail")); +const Login = React.lazy(() => import("./components/Login")); +const Dashboard = React.lazy(() => import("./components/dashboard/Dashboard")); +const Monitoring = React.lazy(() => import("./components/dashboard/Monitoring")); - state = { - collapsed: false, - current: sessionStorage.getItem('current'), - openKeys: sessionStorage.getItem('openKeys') ? JSON.parse(sessionStorage.getItem('openKeys')) : [], - user: { - 'nickname': '未定义' - }, - package: NT_PACKAGE(), - triggerMenu: true, - logo: LogoWithName, - logoWidth: 140 - }; +const Asset = React.lazy(() => import("./components/asset/Asset")); +const AssetDetail = React.lazy(() => import("./components/asset/AssetDetail")); +const MyFile = React.lazy(() => import("./components/worker/MyFile")); +const AccessGateway = React.lazy(() => import("./components/asset/AccessGateway")); +const MyAsset = React.lazy(() => import("./components/worker/MyAsset")); +const MyCommand = React.lazy(() => import("./components/worker/MyCommand")); +const MyInfo = React.lazy(() => import("./components/worker/MyInfo")); - onCollapse = () => { - let collapsed = !this.state.collapsed; - if (collapsed) { - this.setState({ - logo: Logo, - logoWidth: 46, - collapsed: collapsed, - }); - } else { - this.setState({ - logo: LogoWithName, - logoWidth: 140, - collapsed: collapsed, - }); +const Access = React.lazy(() => import("./components/access/Access")); +const Term = React.lazy(() => import("./components/access/Term")); + +const User = React.lazy(() => import("./components/user/user/User")); +const UserDetailPage = React.lazy(() => import("./components/user/user/UserDetailPage")); +const Role = React.lazy(() => import("./components/user/Role")); +const RoleDetail = React.lazy(() => import("./components/user/RoleDetail")); +const UserGroup = React.lazy(() => import("./components/user/UserGroup")); +const UserGroupDetail = React.lazy(() => import("./components/user/UserGroupDetail")); + +const Strategy = React.lazy(() => import("./components/authorised/Strategy")); +const StrategyDetail = React.lazy(() => import("./components/authorised/StrategyDetail")); +const Info = React.lazy(() => import("./components/Info")); + +const OnlineSession = React.lazy(() => import("./components/session/OnlineSession")); +const OfflineSession = React.lazy(() => import("./components/session/OfflineSession")); +const Command = React.lazy(() => import("./components/asset/Command")); +const ExecuteCommand = React.lazy(() => import("./components/devops/ExecuteCommand")); +const Credential = React.lazy(() => import("./components/asset/Credential")); + +const Job = React.lazy(() => import("./components/devops/Job")); +const LoginLog = React.lazy(() => import("./components/log-audit/LoginLog")); +const StorageLog = React.lazy(() => import("./components/log-audit/StorageLog")); +const Security = React.lazy(() => import("./components/security/Security")); +const Storage = React.lazy(() => import("./components/devops/Storage")); + +const Setting = React.lazy(() => import("./components/setting/Setting")); +const LoginPolicy = React.lazy(() => import("./components/security/LoginPolicy")); + +const App = () => { + + const navigate = useNavigate(); + + useQuery('getUserInfo', accountApi.getUserInfo, { + onSuccess: (data) => { + setCurrentUser(data); + if (data?.type === 'user') { + navigate('/my-asset'); + } } - }; + }); - componentDidMount() { - let hash = window.location.hash; - let current = hash.replace('#/', ''); - if (isEmpty(current)) { - current = 'dashboard'; - } - this.setCurrent(current); - this.getInfo(); - } + return ( + + }> + + + }> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + - async getInfo() { + }> + }/> + }/> + }/> - let result = await request.get('/account/info'); - if (result['code'] === 1) { - sessionStorage.setItem('user', JSON.stringify(result['data'])); - this.setState({ - user: result['data'], - triggerMenu: true - }) - } else { - message.error(result['message']); - } - } + }/> + }/> + }/> + }/> + }/> + }/> - updateUser = (user) => { - this.setState({ - user: user - }) - } + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + }/> + - setCurrent = (key) => { - this.setState({ - current: key - }) - sessionStorage.setItem('current', key); - } - - subMenuChange = (openKeys) => { - this.setState({ - openKeys: openKeys - }) - sessionStorage.setItem('openKeys', JSON.stringify(openKeys)); - } - - confirm = async () => { - let result = await request.post('/account/logout'); - if (result['code'] !== 1) { - message.error(result['message']); - } else { - message.success('退出登录成功,即将跳转至登录页面。'); - window.location.reload(); - } - } - - render() { - - const menu = ( - - - - - 个人中心 - - - - - - - - 退出登录 - - - - - ); - - return ( - - - - - - - - - - { - isAdmin() ? - <> - -
- logo -
- - this.setCurrent(e.key)} - selectedKeys={[this.state.current]} - onOpenChange={this.subMenuChange} - defaultOpenKeys={this.state.openKeys} - theme="dark" mode="inline" defaultSelectedKeys={['dashboard']} - inlineCollapsed={this.state.collapsed} - style={{lineHeight: '64px'}}> - - }> - - 控制面板 - - - - }> - }> - - 资产列表 - - - }> - - 授权凭证 - - - }> - - 动态指令 - - - }> - - 接入网关 - - - - - }> - }> - - 在线会话 - - - - }> - - 历史会话 - - - - }> - }> - - 登录日志 - - - - }> - - 计划任务 - - - - }> - - 访问安全 - - - }> - - 磁盘空间 - - - - - }> - }> - - 用户管理 - - - }> - - 用户组管理 - - - }> - - 授权策略 - - - - }> - - 我的文件 - - - }> - - 个人中心 - - - }> - - 系统设置 - - - -
- - -
-
-
- {React.createElement(this.state.collapsed ? MenuUnfoldOutlined : MenuFoldOutlined, { - className: 'trigger', - onClick: this.onCollapse, - })} -
- -
-
- - - -
-
- -
- -
- {getCurrentUser()['nickname']}   -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - -
- Copyright © 2020-2022 dushixiang, All Rights Reserved. - Version:{this.state.package['version']} -
-
- : - <> -
-
-
- - logo - - - - - - - - - -
-
- - - {getCurrentUser()['nickname']} - - -
-
-
- - - - - - - - - - -
- Copyright © 2020-2022 dushixiang, All Rights Reserved. - Version:{this.state.package['version']} -
- - } - - -
-
-
- - ); - } + }> + }/> + }/> + }/> + }/> + +
+ ); } export default App; diff --git a/web/src/Arco.css b/web/src/Arco.css new file mode 100644 index 0000000..e69de29 diff --git a/web/src/api/access-gateway.js b/web/src/api/access-gateway.js new file mode 100644 index 0000000..9c1a6f0 --- /dev/null +++ b/web/src/api/access-gateway.js @@ -0,0 +1,10 @@ +import Api from "./api"; + +class AccessGatewayApi extends Api{ + constructor() { + super("access-gateways"); + } +} + +let accessGatewayApi = new AccessGatewayApi(); +export default accessGatewayApi; \ No newline at end of file diff --git a/web/src/api/account.js b/web/src/api/account.js new file mode 100644 index 0000000..1d77c7e --- /dev/null +++ b/web/src/api/account.js @@ -0,0 +1,78 @@ +import request from "../common/request"; +import qs from "qs"; + +class AccountApi { + + group = 'account'; + + logout = async () => { + let result = await request.post('/account/logout'); + return result['code'] === 1 + } + + getUserInfo = async () => { + let result = await request.get(`/${this.group}/info`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + assetPaging = async (params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/assets?${paramsStr}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + getAccessToken = async () => { + let result = await request.get(`/${this.group}/access-token`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + createAccessToken = async () => { + let result = await request.post(`/${this.group}/access-token`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + deleteAccessToken = async () => { + let result = await request.delete(`/${this.group}/access-token`); + return result['code'] === 1; + } + + changePassword = async (values) => { + let result = await request.post(`/${this.group}/change-password`, values); + return result.code === 1; + } + + reloadTotp = async () => { + let result = await request.get('/account/reload-totp'); + if (result.code === 1) { + return result.data; + } else { + return {} + } + } + + confirmTotp = async (values) => { + let result = await request.post(`/${this.group}/confirm-totp`, values); + return result.code === 1; + } + + + resetTotp = async () => { + let result = await request.post(`/${this.group}/reset-totp`); + return result.code === 1; + } +} + +let accountApi = new AccountApi(); +export default accountApi; \ No newline at end of file diff --git a/web/src/api/api.js b/web/src/api/api.js new file mode 100644 index 0000000..6602edc --- /dev/null +++ b/web/src/api/api.js @@ -0,0 +1,50 @@ +import request from "../common/request"; +import qs from "qs"; + +export default class Api { + group = ""; + + constructor(group) { + this.group = group; + } + + getById = async (id) => { + let result = await request.get(`/${this.group}/${id}`); + if (result['code'] !== 1) { + return; + } + return result['data']; + } + + getPaging = async (params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/paging?${paramsStr}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + getAll = async () => { + let result = await request.get(`/${this.group}`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } + + create = async (data) => { + const result = await request.post(`/${this.group}`, data); + return result['code'] === 1; + } + + updateById = async (id, data) => { + const result = await request.put(`/${this.group}/${id}`, data); + return result['code'] === 1; + } + + deleteById = async (id) => { + const result = await request.delete(`/${this.group}/${id}`); + return result['code'] === 1; + } +} \ No newline at end of file diff --git a/web/src/api/asset.js b/web/src/api/asset.js new file mode 100644 index 0000000..1534660 --- /dev/null +++ b/web/src/api/asset.js @@ -0,0 +1,42 @@ +import Api from "./api"; +import request from "../common/request"; + +class AssetApi extends Api { + constructor() { + super("assets"); + } + + GetAll = async (protocol = '') => { + let result = await request.get(`/${this.group}?protocol=${protocol}`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } + + connTest = async (id) => { + let result = await request.post(`/${this.group}/${id}/tcping`); + if (result.code !== 1) { + return [false, result.message]; + } + return [result['data']['active'], result['data']['message']]; + } + + importAsset = async (file) => { + const formData = new FormData(); + formData.append("file", file,); + let result = await request.post(`/${this.group}/import`, formData, {'Content-Type': 'multipart/form-data'}); + if (result.code !== 1) { + return [false, result.message]; + } + return [true, result['data']]; + } + + changeOwner = async (id, owner) => { + let result = await request.post(`/${this.group}/${id}/change-owner?owner=${owner}`); + return result['code'] === 1; + } +} + +const assetApi = new AssetApi(); +export default assetApi; \ No newline at end of file diff --git a/web/src/api/authorised.js b/web/src/api/authorised.js new file mode 100644 index 0000000..4c29a1e --- /dev/null +++ b/web/src/api/authorised.js @@ -0,0 +1,66 @@ +import qs from "qs"; +import request from "../common/request"; + +class AuthorisedApi { + + group = "authorised"; + + GetAssetPaging = async (params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/assets/paging?${paramsStr}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + GetUserPaging = async (params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/users/paging?${paramsStr}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + GetUserGroupPaging = async (params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/user-groups/paging?${paramsStr}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + AuthorisedAssets = async (data) => { + const result = await request.post(`/${this.group}/assets`, data); + return result['code'] === 1; + } + + AuthorisedUsers = async (data) => { + const result = await request.post(`/${this.group}/users`, data); + return result['code'] === 1; + } + + AuthorisedUserGroups = async (data) => { + const result = await request.post(`/${this.group}/user-groups`, data); + return result['code'] === 1; + } + + GetSelected = async (params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/selected?${paramsStr}`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } + + DeleteById = async (id) => { + const result = await request.delete(`/${this.group}/${id}`); + return result['code'] === 1; + } +} + +const authorisedApi = new AuthorisedApi(); +export default authorisedApi; \ No newline at end of file diff --git a/web/src/api/branding.js b/web/src/api/branding.js new file mode 100644 index 0000000..35165ca --- /dev/null +++ b/web/src/api/branding.js @@ -0,0 +1,15 @@ +import request from "../common/request"; + +class BrandingApi { + + getBranding = async () => { + let result = await request.get(`/branding`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } +} + +let brandingApi = new BrandingApi(); +export default brandingApi; \ No newline at end of file diff --git a/web/src/api/command-filter-rule.js b/web/src/api/command-filter-rule.js new file mode 100644 index 0000000..f014b84 --- /dev/null +++ b/web/src/api/command-filter-rule.js @@ -0,0 +1,10 @@ +import Api from "./api"; + +class CommandFilterRuleApi extends Api{ + constructor() { + super("command-filter-rules"); + } +} + +const commandFilterRuleApi = new CommandFilterRuleApi(); +export default commandFilterRuleApi; \ No newline at end of file diff --git a/web/src/api/command-filter.js b/web/src/api/command-filter.js new file mode 100644 index 0000000..ab53ff0 --- /dev/null +++ b/web/src/api/command-filter.js @@ -0,0 +1,38 @@ +import request from "../common/request"; +import Api from "./api"; + +class CommandFilterApi extends Api{ + + constructor() { + super("command-filters"); + } + + Bind = async (id, data) => { + const result = await request.post(`/${this.group}/${id}/bind`, data); + return result['code'] === 1; + } + + Unbind = async (id, data) => { + const result = await request.post(`/${this.group}/${id}/unbind`, data); + return result['code'] === 1; + } + + GetAssetIdByCommandFilterId = async (commandFilterId) => { + let result = await request.get(`/${this.group}/${commandFilterId}/assets/id`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } + + GetAll = async () => { + let result = await request.get(`/${this.group}`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +const commandFilterApi = new CommandFilterApi(); +export default commandFilterApi; \ No newline at end of file diff --git a/web/src/api/command.js b/web/src/api/command.js new file mode 100644 index 0000000..b0a0953 --- /dev/null +++ b/web/src/api/command.js @@ -0,0 +1,16 @@ +import Api from "./api"; +import request from "../common/request"; + +class CommandApi extends Api{ + constructor() { + super("commands"); + } + + changeOwner = async (id, owner) => { + let result = await request.post(`/${this.group}/${id}/change-owner?owner=${owner}`); + return result['code'] === 1; + } +} + +let commandApi = new CommandApi(); +export default commandApi; \ No newline at end of file diff --git a/web/src/api/credential.js b/web/src/api/credential.js new file mode 100644 index 0000000..d8621a7 --- /dev/null +++ b/web/src/api/credential.js @@ -0,0 +1,19 @@ +import Api from "./api"; +import request from "../common/request"; + +class CredentialApi extends Api{ + constructor() { + super("credentials"); + } + + getAll = async () => { + let result = await request.get(`/${this.group}`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +let credentialApi = new CredentialApi(); +export default credentialApi; \ No newline at end of file diff --git a/web/src/api/job.js b/web/src/api/job.js new file mode 100644 index 0000000..b5b3655 --- /dev/null +++ b/web/src/api/job.js @@ -0,0 +1,36 @@ +import Api from "./api"; +import request from "../common/request"; +import qs from "qs"; + +class JobApi extends Api { + constructor() { + super("jobs"); + } + + changeStatus = async (id, status) => { + let result = await request.post(`/${this.group}/${id}/change-status?status=${status}`); + return result['code'] !== 1; + } + + exec = async (id) => { + let result = await request.post(`/${this.group}/${id}/exec`); + return result['code'] !== 1; + } + + getLogPaging = async (id, params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/${id}/logs/paging?${paramsStr}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + deleteLogByJobId = async (id) => { + let result = await request.delete(`/${this.group}/${id}/logs`); + return result['code'] !== 1; + } +} + +let jobApi = new JobApi(); +export default jobApi; \ No newline at end of file diff --git a/web/src/api/license.js b/web/src/api/license.js new file mode 100644 index 0000000..3a89150 --- /dev/null +++ b/web/src/api/license.js @@ -0,0 +1,17 @@ +import request from "../common/request"; + +export const GetLicense = async () => { + let result = await request.get('/license'); + if (result['code'] !== 1) { + return; + } + return result['data']; +} + +export const GetMachineId = async () => { + let result = await request.get('/license/machine-id'); + if (result['code'] !== 1) { + return; + } + return result['data']; +} \ No newline at end of file diff --git a/web/src/api/login-log.js b/web/src/api/login-log.js new file mode 100644 index 0000000..7ea57b8 --- /dev/null +++ b/web/src/api/login-log.js @@ -0,0 +1,16 @@ +import Api from "./api"; +import request from "../common/request"; + +class LoginLogApi extends Api{ + constructor() { + super("login-logs"); + } + + Clear = async () => { + const result = await request.post(`/${this.group}/clear`); + return result['code'] === 1; + } +} + +let loginLogApi = new LoginLogApi(); +export default loginLogApi; \ No newline at end of file diff --git a/web/src/api/login-policy.js b/web/src/api/login-policy.js new file mode 100644 index 0000000..4341b7e --- /dev/null +++ b/web/src/api/login-policy.js @@ -0,0 +1,40 @@ +import request from "../common/request"; +import qs from "qs"; +import Api from "./api"; + +class LoginPolicyApi extends Api{ + + constructor() { + super("login-policies"); + } + + Bind = async (id, data) => { + const result = await request.post(`/${this.group}/${id}/bind`, data); + return result['code'] === 1; + } + + Unbind = async (id, data) => { + const result = await request.post(`/${this.group}/${id}/unbind`, data); + return result['code'] === 1; + } + + GetUserPagingByForbiddenCommandId = async (id, params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/${id}/users/paging?${paramsStr}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + GetUserIdByLoginPolicyId = async (id) => { + let result = await request.get(`/${this.group}/${id}/users/id`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +const loginPolicyApi = new LoginPolicyApi(); +export default loginPolicyApi; \ No newline at end of file diff --git a/web/src/api/monitor.js b/web/src/api/monitor.js new file mode 100644 index 0000000..ece4980 --- /dev/null +++ b/web/src/api/monitor.js @@ -0,0 +1,37 @@ +import request from "../common/request"; + +class MonitorApi { + getData = async () => { + let result = await request.get('/overview/ps'); + if (result['code'] !== 1) { + return {}; + } + let data = result['data']; + let netIO = []; + for (let i = 0; i < data['netIO'].length; i++) { + let item = data['netIO'][i]; + netIO.push({ + time: item['time'], + read: item['read'] / 1024 / 1024 / 1024, + write: item['write'] / 1024 / 1024 / 1024, + }); + } + data['netIO'] = netIO; + + let diskIO = []; + for (let i = 0; i < data['diskIO'].length; i++) { + let item = data['diskIO'][i]; + diskIO.push({ + time: item['time'], + read: item['read'] / 1024 / 1024 / 1024, + write: item['write'] / 1024 / 1024 / 1024, + }); + } + data['diskIO'] = diskIO; + + return data + } +} + +let monitorApi = new MonitorApi(); +export default monitorApi; \ No newline at end of file diff --git a/web/src/api/permission.js b/web/src/api/permission.js new file mode 100644 index 0000000..8b2ddb1 --- /dev/null +++ b/web/src/api/permission.js @@ -0,0 +1,16 @@ +import request from "../common/request"; + +class PermissionApi { + group = "permissions"; + + getMenus = async () => { + let result = await request.get(`/menus`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +let permissionApi = new PermissionApi(); +export default permissionApi; \ No newline at end of file diff --git a/web/src/api/role.js b/web/src/api/role.js new file mode 100644 index 0000000..d25dcc4 --- /dev/null +++ b/web/src/api/role.js @@ -0,0 +1,19 @@ +import request from "../common/request"; +import Api from "./api"; + +class RoleApi extends Api { + constructor() { + super("roles"); + } + + GetAll = async () => { + let result = await request.get(`/${this.group}`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +let roleApi = new RoleApi(); +export default roleApi; \ No newline at end of file diff --git a/web/src/api/security.js b/web/src/api/security.js new file mode 100644 index 0000000..53e0116 --- /dev/null +++ b/web/src/api/security.js @@ -0,0 +1,10 @@ +import Api from "./api"; + +class SecurityApi extends Api { + constructor() { + super("securities"); + } +} + +let securityApi = new SecurityApi(); +export default securityApi; \ No newline at end of file diff --git a/web/src/api/session.js b/web/src/api/session.js new file mode 100644 index 0000000..962a6ab --- /dev/null +++ b/web/src/api/session.js @@ -0,0 +1,52 @@ +import Api from "./api"; +import qs from "qs"; +import request from "../common/request"; + +class SessionApi extends Api { + constructor() { + super("sessions"); + } + + GetCommandPagingBySessionId = async (sessionId, params) => { + let paramsStr = qs.stringify(params); + let result = await request.get(`/${this.group}/${sessionId}/commands/paging?${paramsStr}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + create = async (assetsId, mode) => { + let result = await request.post(`/${this.group}?assetId=${assetsId}&mode=${mode}`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } + + connect = async (sessionId) => { + let result = await request.post(`/${this.group}/${sessionId}/connect`); + return result['code'] === 1; + } + + disconnect = async (sessionId) => { + let result = await request.post(`/${this.group}/${sessionId}/disconnect`); + return result['code'] === 1; + } + + clear = async () => { + let result = await request.post(`/${this.group}/clear`); + return result['code'] === 1; + } + + stats = async (sessionId) => { + let result = await request.get(`/${this.group}/${sessionId}/stats`); + if (result['code'] !== 1) { + return {}; + } + return result['data']; + } +} + +const sessionApi = new SessionApi(); +export default sessionApi; \ No newline at end of file diff --git a/web/src/api/storage-log.js b/web/src/api/storage-log.js new file mode 100644 index 0000000..d90c8b5 --- /dev/null +++ b/web/src/api/storage-log.js @@ -0,0 +1,23 @@ +import Api from "./api"; +import request from "../common/request"; + +class StorageLogApi extends Api { + constructor() { + super("storage-logs"); + } + + create = () => { + } + getById = () => { + } + updateById = () => { + } + + Clear = async () => { + const result = await request.post(`/${this.group}/clear`); + return result['code'] === 1; + } +} + +const storageLogApi = new StorageLogApi(); +export default storageLogApi; \ No newline at end of file diff --git a/web/src/api/storage.js b/web/src/api/storage.js new file mode 100644 index 0000000..2964bb5 --- /dev/null +++ b/web/src/api/storage.js @@ -0,0 +1,10 @@ +import Api from "./api"; + +class StorageApi extends Api{ + constructor() { + super("storages"); + } +} + +let storageApi = new StorageApi(); +export default storageApi; \ No newline at end of file diff --git a/web/src/api/strategy.js b/web/src/api/strategy.js new file mode 100644 index 0000000..b97249e --- /dev/null +++ b/web/src/api/strategy.js @@ -0,0 +1,19 @@ +import Api from "./api"; +import request from "../common/request"; + +class StrategyApi extends Api { + constructor() { + super("strategies"); + } + + GetAll = async () => { + let result = await request.get(`/${this.group}`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +const strategyApi = new StrategyApi(); +export default strategyApi; \ No newline at end of file diff --git a/web/src/api/tag.js b/web/src/api/tag.js new file mode 100644 index 0000000..19ee86a --- /dev/null +++ b/web/src/api/tag.js @@ -0,0 +1,15 @@ +import request from "../common/request"; + +class TagApi { + + getAll = async () => { + let result = await request.get(`/tags`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +let tagApi = new TagApi(); +export default tagApi; \ No newline at end of file diff --git a/web/src/api/user-group.js b/web/src/api/user-group.js new file mode 100644 index 0000000..a719aa8 --- /dev/null +++ b/web/src/api/user-group.js @@ -0,0 +1,19 @@ +import Api from "./api"; +import request from "../common/request"; + +class UserGroupApi extends Api { + constructor() { + super("user-groups"); + } + + GetAll = async () => { + let result = await request.get(`/${this.group}`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +const userGroupApi = new UserGroupApi(); +export default userGroupApi; \ No newline at end of file diff --git a/web/src/api/user.js b/web/src/api/user.js new file mode 100644 index 0000000..28b08c1 --- /dev/null +++ b/web/src/api/user.js @@ -0,0 +1,28 @@ +import Api from "./api"; +import request from "../common/request"; + +class UserApi extends Api { + constructor() { + super("users"); + } + + resetTotp = async (id) => { + let result = await request.post(`/${this.group}/${id}/reset-totp`); + return result['code'] === 1; + } + + changePassword = async (id, password) => { + let formData = new FormData(); + formData.set('password', password); + let result = await request.post(`/${this.group}/${id}/change-password`, formData); + return result['code'] === 1; + } + + changeStatus = async (id, status) => { + let result = await request.patch(`/${this.group}/${id}/status?status=${status}`); + return result['code'] !== 1; + } +} + +const userApi = new UserApi(); +export default userApi; \ No newline at end of file diff --git a/web/src/api/worker/asset.js b/web/src/api/worker/asset.js new file mode 100644 index 0000000..e6bf528 --- /dev/null +++ b/web/src/api/worker/asset.js @@ -0,0 +1,19 @@ +import Api from "../api"; +import request from "../../common/request"; + +class WorkAssetApi extends Api{ + constructor() { + super("worker/assets"); + } + + tags = async () => { + let result = await request.get(`/${this.group}/tags`); + if (result['code'] !== 1) { + return []; + } + return result['data']; + } +} + +let workAssetApi = new WorkAssetApi(); +export default workAssetApi; \ No newline at end of file diff --git a/web/src/api/worker/command.js b/web/src/api/worker/command.js new file mode 100644 index 0000000..6bf8747 --- /dev/null +++ b/web/src/api/worker/command.js @@ -0,0 +1,10 @@ +import Api from "../api"; + +class WorkCommandApi extends Api{ + constructor() { + super("worker/commands"); + } +} + +let workCommandApi = new WorkCommandApi(); +export default workCommandApi; \ No newline at end of file diff --git a/web/src/common/auth.js b/web/src/common/auth.js new file mode 100644 index 0000000..db0027f --- /dev/null +++ b/web/src/common/auth.js @@ -0,0 +1,8 @@ +export const HasPermission = (permission) => { + let permissionsStr = sessionStorage.getItem('permissions'); + let permissions = JSON.parse(permissionsStr); + if (!permissions) { + return false; + } + return permissions.includes(permission); +} \ No newline at end of file diff --git a/web/src/common/request.js b/web/src/common/request.js index 8384553..22f4b84 100644 --- a/web/src/common/request.js +++ b/web/src/common/request.js @@ -28,6 +28,14 @@ const handleResult = (result) => { if (result['code'] === 401) { window.location.href = '#/login'; return false; + }if (result['code'] === 403) { + window.location.href = '#/permission-denied'; + return false; + } else if (result['code'] === 100) { + return true; + } else if (result['code'] !== 1) { + message.error(result['message']); + return false; } return true; } @@ -40,8 +48,9 @@ const request = { return new Promise((resolve, reject) => { axios.get(url, {headers: headers}) .then((response) => { - if (!handleResult(response.data)) { - return; + let contentType = response.headers['content-type']; + if (contentType !== '' && contentType.includes('application/json')) { + handleResult(response.data); } resolve(response.data); }) @@ -54,16 +63,20 @@ const request = { }) }, - post: function (url, params) { + post: function (url, params, header) { const headers = getHeaders(); + if (header) { + for (const k in header) { + headers[k] = header[k]; + } + } + return new Promise((resolve, reject) => { axios.post(url, params, {headers: headers}) .then((response) => { - if (!handleResult(response.data)) { - return; - } + handleResult(response.data); resolve(response.data); }) .catch((error) => { @@ -82,9 +95,7 @@ const request = { return new Promise((resolve, reject) => { axios.put(url, params, {headers: headers}) .then((response) => { - if (!handleResult(response.data)) { - return; - } + handleResult(response.data); resolve(response.data); }) .catch((error) => { @@ -102,9 +113,7 @@ const request = { return new Promise((resolve, reject) => { axios.delete(url, {headers: headers}) .then((response) => { - if (!handleResult(response.data)) { - return; - } + handleResult(response.data); resolve(response.data); }) .catch((error) => { @@ -122,9 +131,7 @@ const request = { return new Promise((resolve, reject) => { axios.patch(url, params, {headers: headers}) .then((response) => { - if (!handleResult(response.data)) { - return; - } + handleResult(response.data); resolve(response.data); }) .catch((error) => { diff --git a/web/src/common/router.js b/web/src/common/router.js new file mode 100644 index 0000000..82ed19d --- /dev/null +++ b/web/src/common/router.js @@ -0,0 +1,11 @@ +import {useLocation, useNavigate, useParams, useSearchParams} from "react-router-dom"; + +export const withRouter = (Component) => { + return (props) => { + const location = useLocation(); + const navigate = useNavigate(); + const params = useParams(); + const searchParams = useSearchParams(); + return ; + }; +} \ No newline at end of file diff --git a/web/src/components/AccessToken.js b/web/src/components/AccessToken.js new file mode 100644 index 0000000..460040d --- /dev/null +++ b/web/src/components/AccessToken.js @@ -0,0 +1,51 @@ +import React from 'react'; +import {Button, Descriptions, Space, Typography} from "antd"; +import {useQuery} from "react-query"; +import accountApi from "../api/account"; + + +const {Title, Text} = Typography; + +const AccessToken = () => { + + let tokenQuery = useQuery('getAccessToken', accountApi.getAccessToken); + + const genAccessToken = async () => { + await accountApi.createAccessToken(); + await tokenQuery.refetch(); + } + + const clearAccessToken = async () => { + let success = await accountApi.deleteAccessToken(); + if (success) { + await tokenQuery.refetch(); + } + } + + return ( +
+ 授权令牌 +
+ + + {tokenQuery.data?.token} + + + {tokenQuery.data?.created} + + + + + + + +
+ ); +}; + +export default AccessToken; \ No newline at end of file diff --git a/web/src/components/Info.js b/web/src/components/Info.js new file mode 100644 index 0000000..9b3cd15 --- /dev/null +++ b/web/src/components/Info.js @@ -0,0 +1,118 @@ +import React, {useState} from 'react'; +import {Button, Form, Input, Layout, message, Tabs, Typography} from "antd"; +import accountApi from "../api/account"; +import Totp from "./Totp"; + +const {Content} = Layout; +const {Title} = Typography; + +const Info = () => { + + let [newPassword1, setNewPassword1] = useState(''); + let [newPassword2, setNewPassword2] = useState(''); + let [newPasswordStatus, setNewPasswordStatus] = useState({}); + + const onNewPasswordChange = (value) => { + setNewPassword1(value.target.value); + setNewPasswordStatus(validateNewPassword(value.target.value, newPassword2)); + } + + const onNewPassword2Change = (value) => { + setNewPassword2(value.target.value); + setNewPasswordStatus(validateNewPassword(newPassword1, value.target.value)); + } + + const validateNewPassword = (newPassword1, newPassword2) => { + if (newPassword2 === newPassword1) { + return { + validateStatus: 'success', + errorMsg: null, + }; + } + return { + validateStatus: 'error', + errorMsg: '两次输入的密码不一致', + }; + } + + const changePassword = async (values) => { + let success = await accountApi.changePassword(values); + if (success) { + message.success('密码修改成功,即将跳转至登录页面'); + window.location.href = '/#'; + } + } + + return ( + <> + + + + 修改密码 +
+
+ + + + + + onNewPasswordChange(value)} style={{width: 240}}/> + + + onNewPassword2Change(value)} style={{width: 240}}/> + + + + +
+
+ + {/**/} + {/* */} + {/**/} + + + + +
+
+ + ); +} + +export default Info; diff --git a/web/src/components/Landing.js b/web/src/components/Landing.js new file mode 100644 index 0000000..cd51b8e --- /dev/null +++ b/web/src/components/Landing.js @@ -0,0 +1,20 @@ +import React from 'react'; + +const Landing = () => { + return ( +
+
正在努力加载中...
+
+ ); +}; + +export default Landing; \ No newline at end of file diff --git a/web/src/components/Login.css b/web/src/components/Login.css index e39f8e5..06b7946 100644 --- a/web/src/components/Login.css +++ b/web/src/components/Login.css @@ -14,7 +14,7 @@ .login-card { position: absolute; left: 50%; - top: 50%; + top: 40%; margin-left: -175px; margin-top: -189px; } \ No newline at end of file diff --git a/web/src/components/Login.js b/web/src/components/Login.js index 9397924..5e2f679 100644 --- a/web/src/components/Login.js +++ b/web/src/components/Login.js @@ -1,162 +1,124 @@ -import React, {Component} from 'react'; -import {Button, Card, Checkbox, Form, Input, Modal, Typography} from "antd"; +import React, {useEffect, useState} from 'react'; +import {Button, Card, Checkbox, Form, Input, message, Modal, Typography} from "antd"; import './Login.css' import request from "../common/request"; -import {message} from "antd/es"; -import {withRouter} from "react-router-dom"; -import {LockOutlined, OneToOneOutlined, UserOutlined} from '@ant-design/icons'; -import Background from '../images/bg.jpg' +import {LockOutlined, LockTwoTone, UserOutlined} from '@ant-design/icons'; import {setToken} from "../utils/utils"; +import accountApi from "../api/account"; +import brandingApi from "../api/branding"; +import strings from "../utils/strings"; const {Title} = Typography; -class LoginForm extends Component { +const LoginForm = () => { - formRef = React.createRef(); - totpInputRef = React.createRef(); + let [inLogin, setInLogin] = useState(false); + let [branding, setBranding] = useState({}); - state = { - inLogin: false, - height: window.innerHeight, - width: window.innerWidth, - loginAccount: undefined, - totpModalVisible: false, - confirmLoading: false - }; + useEffect(() => { + const x = async () => { + let branding = await brandingApi.getBranding(); + document.title = branding['name']; + setBranding(branding); + } + x(); + }, []); - componentDidMount() { - window.addEventListener('resize', () => { - this.setState({ - height: window.innerHeight, - width: window.innerWidth - }) + const afterLoginSuccess = async (token) => { + // 跳转登录 + sessionStorage.removeItem('current'); + sessionStorage.removeItem('openKeys'); + setToken(token); + + let user = await accountApi.getUserInfo(); + if (user) { + if (user['type'] === 'user') { + window.location.href = "/my-asset" + } else { + window.location.href = "/" + } + } + } + + const login = async (values) => { + let result = await request.post('/login', values); + if (result['code'] === 1) { + Modal.destroyAll(); + await afterLoginSuccess(result['data']); + } + } + + const handleOk = (loginAccount, totp) => { + if (!strings.hasText(totp)) { + message.warn("请输入双因素认证码"); + return false; + } + loginAccount['totp'] = totp; + login(loginAccount); + return false; + } + + const showTOTP = (loginAccount) => { + let value = ''; + Modal.confirm({ + title: '双因素认证', + icon: , + content: value = e.target.value} onPressEnter={() => handleOk(loginAccount, value)} + placeholder="请输入双因素认证码"/>, + onOk: () => handleOk(loginAccount, value), }); } - handleSubmit = async params => { - this.setState({ - inLogin: true - }); + const handleSubmit = async params => { + setInLogin(true); try { let result = await request.post('/login', params); - - if (result.code === 0) { - // 进行双因子认证 - this.setState({ - loginAccount: params, - totpModalVisible: true - }) - - this.totpInputRef.current.focus(); + if (result.code === 100) { + // 进行双因素认证 + showTOTP(params); return; } if (result.code !== 1) { - throw new Error(result.message); - } - - // 跳转登录 - sessionStorage.removeItem('current'); - sessionStorage.removeItem('openKeys'); - setToken(result['data']); - // this.props.history.push(); - window.location.href = "/" - } catch (e) { - message.error(e.message); - } finally { - this.setState({ - inLogin: false - }); - } - }; - - handleOk = async (values) => { - this.setState({ - confirmLoading: true - }) - let loginAccount = this.state.loginAccount; - loginAccount['totp'] = values['totp']; - try { - let result = await request.post('/loginWithTotp', loginAccount); - - if (result['code'] !== 1) { - message.error(result['message']); return; } - // 跳转登录 - sessionStorage.removeItem('current'); - sessionStorage.removeItem('openKeys'); - setToken(result['data']); - // this.props.history.push(); - window.location.href = "/" + afterLoginSuccess(result['data']); } catch (e) { message.error(e.message); } finally { - this.setState({ - confirmLoading: false - }); + setInLogin(false); } - } + }; - handleCancel = () => { - this.setState({ - totpModalVisible: false - }) - } + return ( +
+ +
+ {branding['name']} + {/*一个轻量级的堡垒机系统*/} +
+
+ + } placeholder="登录账号"/> + + + } placeholder="登录密码"/> + + + 保持登录 + + + + +
+
+
- render() { - return ( -
- -
- Next Terminal -
-
- - } placeholder="登录账号"/> - - - } placeholder="登录密码"/> - - - 记住登录 - - - - -
-
- - { - this.formRef.current - .validateFields() - .then(values => { - this.handleOk(values); - // this.formRef.current.resetFields(); - }); - }} - onCancel={this.handleCancel}> - -
- - - } placeholder="请输入双因素认证APP中显示的授权码"/> - -
-
-
- - ); - } + ); } -export default withRouter(LoginForm); +export default LoginForm; diff --git a/web/src/components/NoMatch.js b/web/src/components/NoMatch.js new file mode 100644 index 0000000..3bfbae3 --- /dev/null +++ b/web/src/components/NoMatch.js @@ -0,0 +1,22 @@ +import React from 'react'; +import {Button, Layout, Result} from "antd"; +import {Link} from "react-router-dom"; + +const {Content} = Layout; + +const NoMatch = () => { + return ( +
+ + 回到首页} + /> + +
+ ); +}; + +export default NoMatch; \ No newline at end of file diff --git a/web/src/components/NoPermission.js b/web/src/components/NoPermission.js new file mode 100644 index 0000000..2cbbde6 --- /dev/null +++ b/web/src/components/NoPermission.js @@ -0,0 +1,33 @@ +import React from 'react'; +import {Button, Layout, Result, Space} from "antd"; +import {Link, useNavigate} from "react-router-dom"; + +const {Content} = Layout; + +const NoPermission = () => { + + const navigate = useNavigate(); + + return ( +
+ + + + + + } + /> + +
+ ); +}; + +export default NoPermission; \ No newline at end of file diff --git a/web/src/components/Totp.js b/web/src/components/Totp.js new file mode 100644 index 0000000..7a74188 --- /dev/null +++ b/web/src/components/Totp.js @@ -0,0 +1,131 @@ +import React, {useState} from 'react'; +import {Button, Form, Image, Input, message, Modal, Result, Space, Typography} from "antd"; +import {ExclamationCircleOutlined, ReloadOutlined} from "@ant-design/icons"; +import accountApi from "../api/account"; +import {useQuery} from "react-query"; + +const {Title} = Typography; + +const Totp = () => { + + let infoQuery = useQuery('infoQuery', accountApi.getUserInfo); + let [totp, setTotp] = useState({}); + + const resetTOTP = async () => { + let totp = await accountApi.reloadTotp(); + setTotp(totp); + } + + const confirmTOTP = async (values) => { + values['secret'] = totp['secret']; + let success = await accountApi.confirmTotp(values); + if (success) { + message.success('TOTP启用成功'); + await infoQuery.refetch(); + setTotp({}); + } + } + + const renderBindingTotpPage = (qr) => { + if (!qr) { + return undefined; + } + return + } + + return ( +
+ 双因素认证 + + + { + renderBindingTotpPage(totp.qr) + } + +
+ ); +}; + +export default Totp; \ No newline at end of file diff --git a/web/src/components/access/Access.css b/web/src/components/access/Access.css index e69de29..72f9724 100644 --- a/web/src/components/access/Access.css +++ b/web/src/components/access/Access.css @@ -0,0 +1,13 @@ +.xterm-viewport.xterm-viewport { + scrollbar-width: thin; +} +.xterm-viewport::-webkit-scrollbar { + width: 10px; +} +.xterm-viewport::-webkit-scrollbar-track { + opacity: 0; +} +.xterm-viewport::-webkit-scrollbar-thumb { + min-height: 20px; + background-color: #ffffff20; +} \ No newline at end of file diff --git a/web/src/components/access/Access.js b/web/src/components/access/Access.js index ba90990..a791716 100644 --- a/web/src/components/access/Access.js +++ b/web/src/components/access/Access.js @@ -64,9 +64,17 @@ class Access extends Component { }; async componentDidMount() { - let urlParams = new URLSearchParams(this.props.location.search); + let href = window.location.href; + let search = href.split('?')[1]; + let urlParams = new URLSearchParams(search); let assetId = urlParams.get('assetId'); document.title = urlParams.get('assetName'); + + if (!assetId) { + this.showMessage('获取资产ID失败'); + return; + } + let protocol = urlParams.get('protocol'); let width = urlParams.get('width'); let height = urlParams.get('height'); @@ -789,7 +797,7 @@ class Access extends Component { }} visible={this.state.statsVisible} > - + { diff --git a/web/src/components/access/AccessMonitor.js b/web/src/components/access/AccessMonitor.js deleted file mode 100644 index 6ced443..0000000 --- a/web/src/components/access/AccessMonitor.js +++ /dev/null @@ -1,174 +0,0 @@ -import React, {Component} from 'react'; -import Guacamole from 'guacamole-common-js'; -import {Modal, Result, Spin} from 'antd' -import qs from "qs"; -import {wsServer} from "../../common/env"; -import {getToken} from "../../utils/utils"; -import './Access.css' - -const STATE_IDLE = 0; -const STATE_CONNECTING = 1; -const STATE_WAITING = 2; -const STATE_CONNECTED = 3; -const STATE_DISCONNECTING = 4; -const STATE_DISCONNECTED = 5; - -class AccessMonitor extends Component { - - state = { - client: {}, - containerOverflow: 'hidden', - width: 0, - height: 0, - rate: 1, - loading: false, - tip: '', - closed: false, - }; - - async componentDidMount() { - const sessionId = this.props.sessionId; - let rate = this.props.rate; - let protocol = this.props.protocol; - let width = this.props.width; - let height = this.props.height; - - if (protocol === 'ssh' || protocol === 'telnet') { - rate = rate * 0.5; - width = width * 2; - height = height * 2; - } - this.setState({ - width: width * rate, - height: height * rate, - rate: rate, - }) - this.renderDisplay(sessionId); - } - - componentWillUnmount() { - if (this.state.client) { - this.state.client.disconnect(); - } - } - - onTunnelStateChange = (state) => { - console.log('onTunnelStateChange', state); - if (state === Guacamole.Tunnel.State.CLOSED) { - this.setState({ - loading: false, - closed: true, - }); - } - }; - - onClientStateChange = (state) => { - switch (state) { - case STATE_IDLE: - this.setState({ - loading: true, - tip: '正在初始化中...' - }); - break; - case STATE_CONNECTING: - this.setState({ - loading: true, - tip: '正在努力连接中...' - }); - break; - case STATE_WAITING: - this.setState({ - loading: true, - tip: '正在等待服务器响应...' - }); - break; - case STATE_CONNECTED: - this.setState({ - loading: false - }); - if (this.state.client) { - this.state.client.getDisplay().scale(this.state.rate); - } - break; - case STATE_DISCONNECTING: - - break; - case STATE_DISCONNECTED: - - break; - default: - break; - } - }; - - showMessage(message) { - Modal.error({ - title: '提示', - content: message, - }); - } - - async renderDisplay(sessionId, protocol) { - - let tunnel = new Guacamole.WebSocketTunnel(`${wsServer}/sessions/${sessionId}/tunnel-monitor`); - - tunnel.onstatechange = this.onTunnelStateChange; - let client = new Guacamole.Client(tunnel); - - // 处理客户端的状态变化事件 - client.onstatechange = this.onClientStateChange; - const display = document.getElementById("display"); - - // Add client to display div - const element = client.getDisplay().getElement(); - display.appendChild(element); - - let token = getToken(); - - let params = { - 'X-Auth-Token': token - }; - - let paramStr = qs.stringify(params); - - // Connect - client.connect(paramStr); - - // Disconnect on close - window.onunload = function () { - client.disconnect(); - }; - - this.setState({ - client: client - }) - } - - render() { - - return ( - -
- { - this.state.closed ? - : -
- -
-
- } - - -
- - ); - } -} - -export default AccessMonitor; diff --git a/web/src/components/access/Stats.js b/web/src/components/access/Stats.js index 2d2cc76..de8c478 100644 --- a/web/src/components/access/Stats.js +++ b/web/src/components/access/Stats.js @@ -1,232 +1,197 @@ -import React, {Component} from 'react'; +import React, {useState} from 'react'; import {Col, Descriptions, Progress, Row} from "antd"; -import request from "../../common/request"; import {renderSize} from "../../utils/utils"; import './Stats.css' +import {useQuery} from "react-query"; +import sessionApi from "../../api/session"; -class Stats extends Component { - - state = { - sessionId: undefined, - stats: { - uptime: 0, - load1: 0, - load5: 0, - load10: 0, - memTotal: 0, - memFree: 0, - memAvailable: 0, - memBuffers: 0, - memCached: 0, - swapTotal: 0, - swapFree: 0, - network: {}, - fileSystems: [], - cpu: { - user: 0, - system: 0, - nice: 0, - idle: 0, - ioWait: 0, - irq: 0, - softIrq: 0, - guest: 0 - } - }, - prevStats: {}, - interval: undefined +const defaultStats = { + uptime: 0, + load1: 0, + load5: 0, + load10: 0, + memTotal: 0, + memFree: 0, + memAvailable: 0, + memBuffers: 0, + memCached: 0, + swapTotal: 0, + swapFree: 0, + network: {}, + fileSystems: [], + cpu: { + user: 0, + system: 0, + nice: 0, + idle: 0, + ioWait: 0, + irq: 0, + softIrq: 0, + guest: 0 } - - componentDidMount() { - this.props.onRef(this); - let sessionId = this.props.sessionId; - this.setState({ - sessionId: sessionId - }, () => { - this.getStats(); - }); - this.addInterval(); - } - - getStats = async () => { - let result = await request.get(`/sessions/${this.state.sessionId}/stats`); - if (result['code'] !== 1) { - return - } - let data = result['data']; - this.setState({ - stats: data, - prevStats: this.state.stats - }); - } - - addInterval = () => { - let interval = setInterval(this.getStats, 5000); - this.setState({ - interval: interval - }); - } - - delInterval = () => { - if (this.state.interval) { - clearInterval(this.state.interval); - this.setState({ - interval: undefined - }) - } - } - - render() { - const upDays = parseInt((this.state.stats.uptime / 1000 / 60 / 60 / 24).toString()); - const memUsage = ((this.state.stats.memTotal - this.state.stats.memAvailable) * 100 / this.state.stats.memTotal).toFixed(2); - let network = this.state.stats.network; - let fileSystems = this.state.stats.fileSystems; - - let swapUsage = 0; - if (this.state.stats.swapTotal !== 0) { - swapUsage = ((this.state.stats.swapTotal - this.state.stats.swapFree) * 100 / this.state.stats.swapTotal).toFixed(2) - } - - return ( -
- - {this.state.stats.hostname} - {upDays}天 - - - - - - -
- -
- -
- -
- -
-
- -
- -
-
-
- -
- - - - - {this.state.stats.cpu['user'].toFixed(2)}% - - - {this.state.stats.cpu['system'].toFixed(2)}% - - - {this.state.stats.cpu['idle'].toFixed(2)}% - - - {this.state.stats.cpu['ioWait'].toFixed(2)}% - - - {this.state.stats.cpu['irq'].toFixed(2)}% - - - {this.state.stats.cpu['softIrq'].toFixed(2)}% - - - {this.state.stats.cpu['nice'].toFixed(2)}% - - - {this.state.stats.cpu['guest'].toFixed(2)}% - - - - - {renderSize(this.state.stats.memTotal)} - {renderSize(this.state.stats.memFree)} - {renderSize(this.state.stats.memAvailable)} - -
- -
-
- {renderSize(this.state.stats.memBuffers)} / {renderSize(this.state.stats.memCached)} - {renderSize(this.state.stats.swapTotal)} - {renderSize(this.state.stats.swapFree)} - -
- -
-
-
- - - { - fileSystems.map((item, index) => { - return ( - - - {item['mountPoint']} - - - {renderSize(item['used'])} - - - {renderSize(item['free'])} - - -
- -
-
-
- ); - }) - } -
- - - { - Object.keys(network).map((key, index) => { - let prevNetwork = this.state.prevStats.network; - let rxOfSeconds = 0, txOfSeconds = 0; - if (prevNetwork[key] !== undefined) { - rxOfSeconds = (network[key]['rx'] - prevNetwork[key]['rx']) / 5; - } - if (prevNetwork[key] !== undefined) { - txOfSeconds = (network[key]['tx'] - prevNetwork[key]['tx']) / 5; - } - - return ( - - {key} - - {network[key]['ipv4']} - - - {renderSize(network[key]['rx'])}   {renderSize(rxOfSeconds)}/秒 - - - {renderSize(network[key]['tx'])}   {renderSize(txOfSeconds)}/秒 - - - ); - }) - } - -
- ); - } - } +const Stats = ({sessionId, visible, queryInterval = 5000}) => { + + let [stats, setStats] = useState(defaultStats); + let [prevStats, setPrevStats] = useState({}); + + useQuery("stats", () => sessionApi.stats(sessionId), { + refetchInterval: queryInterval, + enabled: visible, + onSuccess: (data) => { + setPrevStats(stats); + setStats(data); + } + }); + + const upDays = parseInt((stats.uptime / 1000 / 60 / 60 / 24).toString()); + const memUsage = ((stats.memTotal - stats.memAvailable) * 100 / stats.memTotal).toFixed(2); + let network = stats.network; + let fileSystems = stats.fileSystems; + + let swapUsage = 0; + if (stats.swapTotal !== 0) { + swapUsage = ((stats.swapTotal - stats.swapFree) * 100 / stats.swapTotal).toFixed(2) + } + + return ( +
+ + {stats.hostname} + {upDays}天 + + + + + + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+ +
+ + + + + {stats.cpu['user'].toFixed(2)}% + + + {stats.cpu['system'].toFixed(2)}% + + + {stats.cpu['idle'].toFixed(2)}% + + + {stats.cpu['ioWait'].toFixed(2)}% + + + {stats.cpu['irq'].toFixed(2)}% + + + {stats.cpu['softIrq'].toFixed(2)}% + + + {stats.cpu['nice'].toFixed(2)}% + + + {stats.cpu['guest'].toFixed(2)}% + + + + + {renderSize(stats.memTotal)} + {renderSize(stats.memFree)} + {renderSize(stats.memAvailable)} + +
+ +
+
+ {renderSize(stats.memBuffers)} / {renderSize(stats.memCached)} + {renderSize(stats.swapTotal)} + {renderSize(stats.swapFree)} + +
+ +
+
+
+ + + { + fileSystems.map((item, index) => { + return ( + + + {item['mountPoint']} + + + {renderSize(item['used'])} + + + {renderSize(item['free'])} + + +
+ +
+
+
+ ); + }) + } +
+ + + { + Object.keys(network).map((key, index) => { + let prevNetwork = prevStats.network; + let rxOfSeconds = 0, txOfSeconds = 0; + if (prevNetwork[key] !== undefined) { + rxOfSeconds = (network[key]['rx'] - prevNetwork[key]['rx']) / 5; + } + if (prevNetwork[key] !== undefined) { + txOfSeconds = (network[key]['tx'] - prevNetwork[key]['tx']) / 5; + } + + return ( + + {key} + + {network[key]['ipv4']} + + + {renderSize(network[key]['rx'])}   {renderSize(rxOfSeconds)}/秒 + + + {renderSize(network[key]['tx'])}   {renderSize(txOfSeconds)}/秒 + + + ); + }) + } + +
+ ); +}; + export default Stats; \ No newline at end of file diff --git a/web/src/components/access/Term.css b/web/src/components/access/Term.css deleted file mode 100644 index 26e8819..0000000 --- a/web/src/components/access/Term.css +++ /dev/null @@ -1,22 +0,0 @@ -.xterm .xterm-viewport { - /* On OS X this is required in order for the scroll bar to appear fully opaque */ - background-color: transparent; - overflow-y: scroll; - cursor: default; - position: absolute; - right: 0; - left: 0; - top: 0; - bottom: 0; - --scrollbar-color: var(--highlight) var(--dark); - --scrollbar-width: thin; -} - -.xterm-viewport::-webkit-scrollbar { - background-color: var(--dark); - width: 5px; -} - -.xterm-viewport::-webkit-scrollbar-thumb { - background: var(--highlight); -} \ No newline at end of file diff --git a/web/src/components/access/Term.js b/web/src/components/access/Term.js index 9cbfd83..143ed50 100644 --- a/web/src/components/access/Term.js +++ b/web/src/components/access/Term.js @@ -1,57 +1,117 @@ -import React, {Component} from 'react'; -import "xterm/css/xterm.css" +import React, {useEffect, useState} from 'react'; +import {useSearchParams} from "react-router-dom"; import {Terminal} from "xterm"; +import {FitAddon} from "xterm-addon-fit"; +import {getToken} from "../../utils/utils"; +import request from "../../common/request"; +import {Affix, Button, Drawer, Dropdown, Menu, message, Select, Space, Typography} from "antd"; +import Message from "./Message"; import qs from "qs"; import {wsServer} from "../../common/env"; -import {getToken, isEmpty} from "../../utils/utils"; -import {FitAddon} from 'xterm-addon-fit'; -import "./Access.css" -import request from "../../common/request"; -import {Affix, Button, Drawer, Dropdown, Menu, message, Modal, Tooltip} from "antd"; -import {CodeOutlined, ExclamationCircleOutlined, FolderOutlined, LineChartOutlined} from "@ant-design/icons"; import Draggable from "react-draggable"; +import {CodeOutlined, FolderOutlined, LineChartOutlined} from "@ant-design/icons"; import FileSystem from "../devops/FileSystem"; +import "xterm/css/xterm.css" import Stats from "./Stats"; -import Message from "./Message"; +import {debounce} from "../../utils/fun"; +import commandApi from "../../api/command"; +import strings from "../../utils/strings"; +import workCommandApi from "../../api/worker/command"; +import {xtermScrollPretty} from "../../utils/xterm-scroll-pretty"; -class Term extends Component { +const {Text} = Typography; - statsRef = undefined; +const Term = () => { - state = { - width: window.innerWidth, - height: window.innerHeight, - term: undefined, - webSocket: undefined, - fitAddon: undefined, - sessionId: undefined, - session: {}, - enterBtnIndex: 1001, - commands: [] + const [searchParams] = useSearchParams(); + const assetId = searchParams.get('assetId'); + const assetName = searchParams.get('assetName'); + const isWorker = searchParams.get('isWorker'); + const [box, setBox] = useState({width: window.innerWidth, height: window.innerHeight}); + + let [commands, setCommands] = useState([]); + + let [term, setTerm] = useState(); + let [fitAddon, setFitAddon] = useState(); + let [websocket, setWebsocket] = useState(); + let [session, setSession] = useState({}); + + let [fileSystemVisible, setFileSystemVisible] = useState(false); + let [statsVisible, setStatsVisible] = useState(false); + let [enterBtnZIndex, setEnterBtnZIndex] = useState(999); + let [queryInterval, setQueryInterval] = useState(5000); + + const createSession = async (assetsId) => { + let result = await request.post(`/sessions?assetId=${assetsId}&mode=native`); + if (result['code'] !== 1) { + return [undefined, result['message']]; + } + return [result['data'], '']; + } + + const writeErrorMessage = (term, message) => { + term.writeln(`\x1B[1;3;31m${message}\x1B[0m `); + } + + const updateSessionStatus = async (sessionId) => { + let result = await request.post(`/sessions/${sessionId}/connect`); + if (result['code'] !== 1) { + message.error(result['message']); + } + } + + const writeCommand = (command) => { + if (websocket) { + websocket.send(new Message(Message.Data, command)); + } + } + + const getCommands = async () => { + if (strings.hasText(isWorker)) { + let items = await workCommandApi.getAll(); + setCommands(items); + } else { + let items = await commandApi.getAll(); + setCommands(items); + } + } + + const focus = () => { + if (term) { + term.focus(); + } + } + + const fit = () => { + if (fitAddon) { + fitAddon.fit(); + } + } + + useEffect(() => { + if (term && websocket && fitAddon && websocket.readyState === WebSocket.OPEN) { + fit(); + focus(); + let terminalSize = { + cols: term.cols, + rows: term.rows + } + websocket.send(new Message(Message.Resize, window.btoa(JSON.stringify(terminalSize))).toString()); + } + + }, [box.width, box.height]); + + const onWindowResize = () => { + setBox({width: window.innerWidth, height: window.innerHeight}); }; - componentDidMount = async () => { - - let urlParams = new URLSearchParams(this.props.location.search); - let assetId = urlParams.get('assetId'); - document.title = urlParams.get('assetName'); - - let session = await this.createSession(assetId); - if (!session) { - return; - } - let sessionId = session['id']; - if (isEmpty(sessionId)) { - return; - } - + const init = async (assetId) => { let term = new Terminal({ fontFamily: 'monaco, Consolas, "Lucida Console", monospace', fontSize: 15, theme: { background: '#1b1b1b' }, - rightClickSelectsWord: true, }); let elementTerm = document.getElementById('terminal'); term.open(elementTerm); @@ -60,56 +120,41 @@ class Term extends Component { fitAddon.fit(); term.focus(); - term.writeln('Trying to connect to the server ...'); + if (!assetId) { + writeErrorMessage(term, `参数缺失,请关闭此页面后重新打开。`) + return; + } - term.onSelectionChange(async () => { - let selection = term.getSelection(); - this.setState({ - selection: selection - }) - if (navigator.clipboard) { - await navigator.clipboard.writeText(selection); - } - }); + let [session, errMsg] = await createSession(assetId); + if (!session) { + writeErrorMessage(term, `创建会话失败,${errMsg}`) + return; + } - term.attachCustomKeyEventHandler((e) => { - if (e.ctrlKey && e.key === 'c' && this.state.selection) { - return false; - } - return !(e.ctrlKey && e.key === 'v'); - }); + let sessionId = session['id']; + + term.writeln('trying to connect to the server ...'); document.body.oncopy = (event) => { event.preventDefault(); - if (this.state.session['copy'] === '0') { - // message.warn('禁止复制') + if (session['copy'] === '0') { + message.warn('禁止复制') return false; - }else { - if (event.clipboardData) { - return event.clipboardData.setData('text', ''); - } else { - // 兼容IE - return window.clipboardData.setData("text", ''); - } + } else { + return true; } } document.body.onpaste = (event) => { event.preventDefault(); - if (this.state.session['paste'] === '0') { - // message.warn('禁止粘贴') + if (session['paste'] === '0') { + message.warn('禁止粘贴') return false; + } else { + return true; } - return true; } - term.onData(data => { - let webSocket = this.state.webSocket; - if (webSocket !== undefined) { - webSocket.send(new Message(Message.Data, data).toString()); - } - }); - let token = getToken(); let params = { 'cols': term.cols, @@ -125,32 +170,40 @@ class Term extends Component { webSocket.onopen = (e => { pingInterval = setInterval(() => { webSocket.send(new Message(Message.Ping, "").toString()); - }, 1000); + }, 10000); + xtermScrollPretty(); }); webSocket.onerror = (e) => { - term.writeln("Failed to connect to server."); + writeErrorMessage(term, `websocket error ${e.data}`) } + webSocket.onclose = (e) => { - term.writeln("Connection is closed."); + term.writeln("connection is closed."); if (pingInterval) { clearInterval(pingInterval); } } + term.onData(data => { + if (webSocket !== undefined) { + webSocket.send(new Message(Message.Data, data).toString()); + } + }); + webSocket.onmessage = (e) => { let msg = Message.parse(e.data); switch (msg['type']) { case Message.Connected: term.clear(); - this.updateSessionStatus(sessionId); - this.getCommands(); + updateSessionStatus(sessionId); + getCommands(); break; case Message.Data: term.write(msg['content']); break; case Message.Closed: - term.writeln(`\x1B[1;3;31m${msg['content']}\x1B[0m `) + term.writeln(`\x1B[1;3;31m${msg['content']}\x1B[0m `); webSocket.close(); break; default: @@ -158,232 +211,147 @@ class Term extends Component { } } - this.setState({ - term: term, - webSocket: webSocket, - fitAddon: fitAddon, - sessionId: sessionId, - session: session - }); - - window.addEventListener('resize', this.onWindowResize); - window.addEventListener('beforeunload', this.handleUnload); - window.onunload = function () { - webSocket.close(); - }; + setSession(session); + setTerm(term); + setFitAddon(fitAddon); + setWebsocket(webSocket); } - componentWillUnmount() { - let webSocket = this.state.webSocket; - if (webSocket) { - webSocket.close() - } - window.removeEventListener('beforeunload', this.handleUnload); - } - - getCommands = async () => { - let result = await request.get('/commands'); - if (result.code !== 1) { - message.error(result.message); - return; - } - this.setState({ - commands: result['data'] - }) - } - - showMessage(msg) { - message.destroy(); - Modal.confirm({ - title: '提示', - icon: , - content: msg, - centered: true, - okText: '重新连接', - cancelText: '关闭页面', - onOk() { - window.location.reload(); - }, - onCancel() { - window.close(); - }, - }); - } - - async createSession(assetsId) { - let result = await request.post(`/sessions?assetId=${assetsId}&mode=native`); - if (result['code'] !== 1) { - this.showMessage(result['message']); - return undefined; - } - return result['data']; - } - - updateSessionStatus = async (sessionId) => { - let result = await request.post(`/sessions/${sessionId}/connect`); - if (result['code'] !== 1) { - message.error(result['message']); - } - } - - terminalSize() { - return { - cols: Math.floor(this.state.width / 7.5), - rows: Math.floor(window.innerHeight / 17), - } - } - - onWindowResize = (e) => { - let term = this.state.term; - let fitAddon = this.state.fitAddon; - let webSocket = this.state.webSocket; - - this.setState({ - width: window.innerWidth, - height: window.innerHeight, - }, () => { - if (webSocket && webSocket.readyState === WebSocket.OPEN) { - fitAddon.fit(); - this.focus(); - let terminalSize = { - cols: term.cols, - rows: term.rows - } - webSocket.send(new Message(Message.Resize, window.btoa(JSON.stringify(terminalSize))).toString()); - } - }); - }; - - handleUnload(e) { - var message = "要离开网站吗?"; + const handleUnload = (e) => { + const message = "要离开网站吗?"; (e || window.event).returnValue = message; //Gecko + IE return message; } - writeCommand = (command) => { - let webSocket = this.state.webSocket; - if (webSocket !== undefined) { - webSocket.send(new Message(Message.Data, command)); - } - this.focus(); - } + useEffect(() => { + document.title = assetName; + window.addEventListener('beforeunload', handleUnload); - focus = () => { - let term = this.state.term; - if (term) { - term.focus(); - } - } + init(assetId); - onRef = (statsRef) => { - this.statsRef = statsRef; - } - - render() { - - const cmdMenuItems = this.state.commands.map(item => { - return - { - this.writeCommand(item['content']) - }} key={'i-' + item['id']}>{item['name']} - ; + let resize = debounce(() => { + onWindowResize(); }); - const cmdMenu = ( - - {cmdMenuItems} - - ); + window.addEventListener('resize', resize); - return ( -
-
+ return () => { + if (websocket) { + websocket.close(); + } + window.removeEventListener('resize', resize); + window.removeEventListener('beforeunload', handleUnload); + } + }, [assetId]); - - -
- ); + const handleCmdMenuClick = (e) => { + for (const command of commands) { + if (command['id'] === e.key) { + writeCommand(command['content']); + } + } } -} -export default Term; + return ( +
+
+ + + +
+ ); +}; + +export default Term; \ No newline at end of file diff --git a/web/src/components/access/TermMonitor.js b/web/src/components/access/TermMonitor.js deleted file mode 100644 index da914b0..0000000 --- a/web/src/components/access/TermMonitor.js +++ /dev/null @@ -1,83 +0,0 @@ -import React, {Component} from 'react'; -import {Terminal} from "xterm"; -import Message from "./Message"; -import {getToken} from "../../utils/utils"; -import qs from "qs"; -import {wsServer} from "../../common/env"; -import {FitAddon} from "xterm-addon-fit"; - -class TermMonitor extends Component { - - componentDidMount() { - let sessionId = this.props.sessionId; - - let term = new Terminal({ - fontFamily: 'monaco, Consolas, "Lucida Console", monospace', - fontSize: 14, - theme: { - background: '#1b1b1b' - }, - rightClickSelectsWord: true, - }); - - term.open(document.getElementById('terminal')); - term.writeln("等待用户输入中...") - const fitAddon = new FitAddon(); - term.loadAddon(fitAddon); - fitAddon.fit(); - term.focus(); - - term.onData(data => { - - }); - - let token = getToken(); - let params = { - 'X-Auth-Token': token - }; - - let paramStr = qs.stringify(params); - - let webSocket = new WebSocket(`${wsServer}/sessions/${sessionId}/ssh-monitor?${paramStr}`); - webSocket.onmessage = (e) => { - let msg = Message.parse(e.data); - switch (msg['type']) { - case Message.Connected: - term.clear(); - break; - case Message.Data: - term.write(msg['content']); - break; - case Message.Closed: - term.writeln(`\x1B[1;3;31m${msg['content']}\x1B[0m `) - webSocket.close(); - break; - default: - break; - } - } - this.setState({ - term: term, - webSocket: webSocket, - }); - } - - componentWillUnmount() { - let webSocket = this.state.webSocket; - if (webSocket) { - webSocket.close() - } - } - - render() { - return ( -
-
-
- ); - } -} - -export default TermMonitor; \ No newline at end of file diff --git a/web/src/components/asset/AccessGateway.js b/web/src/components/asset/AccessGateway.js index 69d748d..0176211 100644 --- a/web/src/components/asset/AccessGateway.js +++ b/web/src/components/asset/AccessGateway.js @@ -1,283 +1,51 @@ -import React, {Component} from 'react'; +import React, {useState} from 'react'; -import {Badge, Button, Col, Divider, Input, Layout, Modal, Row, Space, Table, Tag, Tooltip, Typography} from "antd"; -import qs from "qs"; -import request from "../../common/request"; -import {message} from "antd/es"; -import {DeleteOutlined, ExclamationCircleOutlined, PlusOutlined, SyncOutlined, UndoOutlined} from '@ant-design/icons'; +import {Badge, Button, Layout, Popconfirm, Tag, Tooltip} from "antd"; +import accessGatewayApi from "../../api/access-gateway"; +import {ProTable} from "@ant-design/pro-components"; import AccessGatewayModal from "./AccessGatewayModal"; -import {hasPermission} from "../../service/permission"; -import dayjs from "dayjs"; +import ColumnState, {useColumnState} from "../../hook/column-state"; +import Show from "../../dd/fi/show"; -const confirm = Modal.confirm; const {Content} = Layout; -const {Title, Text} = Typography; -const {Search} = Input; -class AccessGateway extends Component { +const api = accessGatewayApi; - inputRefOfName = React.createRef(); - inputRefOfIp = React.createRef(); +const actionRef = React.createRef(); - state = { - items: [], - total: 0, - queryParams: { - pageIndex: 1, - pageSize: 10 +const AccessGateway = () => { + let [visible, setVisible] = useState(false); + let [confirmLoading, setConfirmLoading] = useState(false); + let [selectedRowKey, setSelectedRowKey] = useState(undefined); + + const [columnsStateMap, setColumnsStateMap] = useColumnState(ColumnState.ACCESS_GATEWAY); + + const columns = [ + { + dataIndex: 'index', + valueType: 'indexBorder', + width: 48, }, - loading: false, - modalVisible: false, - modalTitle: '', - modalConfirmLoading: false, - selectedRow: undefined, - selectedRowKeys: [], - }; - - componentDidMount() { - this.loadTableData(); - } - - async delete(id) { - const result = await request.delete('/access-gateways/' + id); - if (result.code === 1) { - message.success('删除成功'); - this.loadTableData(this.state.queryParams); - } else { - message.error(result.message, 10); - } - - } - - async loadTableData(queryParams) { - this.setState({ - loading: true - }); - - queryParams = queryParams || this.state.queryParams; - - // queryParams - let paramsStr = qs.stringify(queryParams); - - let data = { - items: [], - total: 0 - }; - - try { - let result = await request.get('/access-gateways/paging?' + paramsStr); - if (result.code === 1) { - data = result.data; - } else { - message.error(result.message); - } - } catch (e) { - - } finally { - const items = data.items.map(item => { - return {'key': item['id'], ...item} - }) - this.setState({ - items: items, - total: data.total, - queryParams: queryParams, - loading: false - }); - } - } - - handleChangPage = async (pageIndex, pageSize) => { - let queryParams = this.state.queryParams; - queryParams.pageIndex = pageIndex; - queryParams.pageSize = pageSize; - - this.setState({ - queryParams: queryParams - }); - - await this.loadTableData(queryParams) - }; - - handleSearchByName = name => { - let query = { - ...this.state.queryParams, - 'pageIndex': 1, - 'pageSize': this.state.queryParams.pageSize, - 'name': name, - } - this.loadTableData(query); - }; - - handleSearchByIp = ip => { - let query = { - ...this.state.queryParams, - 'pageIndex': 1, - 'pageSize': this.state.queryParams.pageSize, - 'ip': ip, - } - this.loadTableData(query); - }; - - showDeleteConfirm(id, content) { - let self = this; - confirm({ - title: '您确定要删除此任务吗?', - content: content, - okText: '确定', - okType: 'danger', - cancelText: '取消', - onOk() { - self.delete(id); - } - }); - }; - - async update(id) { - let result = await request.get(`/access-gateways/${id}`); - if (result.code !== 1) { - message.error(result.message, 10); - return; - } - await this.showModal('更新接入网关', result.data); - } - - showModal(title, obj) { - this.setState({ - modalTitle: title, - modalVisible: true, - model: obj - }); - }; - - handleCancelModal = e => { - this.setState({ - modalTitle: '', - modalVisible: false - }); - }; - - handleOk = async (formData) => { - // 弹窗 form 传来的数据 - this.setState({ - modalConfirmLoading: true - }); - - try { - if (formData.id) { - // 向后台提交数据 - const result = await request.put('/access-gateways/' + formData.id, formData); - if (result.code === 1) { - message.success('更新成功'); - - this.setState({ - modalVisible: false - }); - this.loadTableData(this.state.queryParams); - } else { - message.error('更新失败 :( ' + result.message, 10); - } - } else { - // 向后台提交数据 - const result = await request.post('/access-gateways', formData); - if (result.code === 1) { - message.success('新增成功'); - - this.setState({ - modalVisible: false - }); - this.loadTableData(this.state.queryParams); - } else { - message.error('新增失败 :( ' + result.message, 10); - } - } - } finally { - this.setState({ - modalConfirmLoading: false - }); - } - }; - - batchDelete = async () => { - this.setState({ - delBtnLoading: true - }) - try { - let result = await request.delete('/access-gateways/' + this.state.selectedRowKeys.join(',')); - if (result.code === 1) { - message.success('操作成功', 3); - this.setState({ - selectedRowKeys: [] - }) - await this.loadTableData(this.state.queryParams); - } else { - message.error(result.message, 10); - } - } finally { - this.setState({ - delBtnLoading: false - }) - } - } - - handleTableChange = (pagination, filters, sorter) => { - let query = { - ...this.state.queryParams, - 'order': sorter.order, - 'field': sorter.field - } - - this.loadTableData(query); - } - - render() { - - const columns = [{ - title: '序号', - dataIndex: 'id', - key: 'id', - render: (id, record, index) => { - return index + 1; - } - }, { + { title: '名称', dataIndex: 'name', - key: 'name', - render: (name, record) => { - let short = name; - if (short && short.length > 20) { - short = short.substring(0, 20) + " ..."; - } - - if (hasPermission(record['owner'])) { - return ( - - ); - } else { - return ( - - {short} - - ); - } - }, - sorter: true, - }, { + }, + { title: 'IP', dataIndex: 'ip', key: 'ip', sorter: true, + hideInSearch: true }, { title: '端口', dataIndex: 'port', key: 'port', + hideInSearch: true }, { title: '账户类型', dataIndex: 'accountType', key: 'accountType', + hideInSearch: true, render: (accountType) => { if (accountType === 'private-key') { return ( @@ -293,10 +61,12 @@ class AccessGateway extends Component { title: '授权账户', dataIndex: 'username', key: 'username', + hideInSearch: true }, { title: '状态', dataIndex: 'connected', key: 'connected', + hideInSearch: true, render: (text, record) => { if (text) { return ( @@ -307,173 +77,132 @@ class AccessGateway extends Component { } else { return ( - + ) } } - }, { + }, + { title: '创建时间', - dataIndex: 'created', key: 'created', - render: (text, record) => { - return ( - - {dayjs(text).fromNow()} - - ) - }, - sorter: true, - }, { + dataIndex: 'created', + hideInSearch: true, + }, + { title: '操作', - key: 'action', - render: (text, record, index) => { - - return ( -
- - - - -
- ) - }, - } - ]; - - const selectedRowKeys = this.state.selectedRowKeys; - const rowSelection = { - selectedRowKeys: this.state.selectedRowKeys, - onChange: (selectedRowKeys, selectedRows) => { - this.setState({selectedRowKeys}); - }, - }; - const hasSelected = selectedRowKeys.length > 0; - - return ( - <> - - -
- - - 接入网关 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - `总计 ${total} 条` + valueType: 'option', + key: 'option', + render: (text, record, _, action) => [ + + { + setVisible(true); + setSelectedRowKey(record['id']); }} - loading={this.state.loading} - onChange={this.handleTableChange} - /> + > + 编辑 + + , + + { + await api.deleteById(record.id); + actionRef.current.reload(); + }} + okText="确认" + cancelText="取消" + > + 删除 + + , + ], + }, + ]; - { - this.state.modalVisible ? - - : undefined + return ( + { + + let field = ''; + let order = ''; + if (Object.keys(sort).length > 0) { + field = Object.keys(sort)[0]; + order = Object.values(sort)[0]; + } + + let queryParams = { + pageIndex: params.current, + pageSize: params.pageSize, + name: params.name, + field: field, + order: order + } + let result = await api.getPaging(queryParams); + return { + data: result['items'], + success: true, + total: result['total'] + }; + }} + rowKey="id" + search={{ + labelWidth: 'auto', + }} + pagination={{ + defaultPageSize: 10, + }} + dateFormatter="string" + headerTitle="接入网关列表" + toolBarRender={() => [ + + + , + ]} + /> + + { + setVisible(false); + setSelectedRowKey(undefined); + }} + handleOk={async (values) => { + setConfirmLoading(true); + + try { + let success; + if (values['id']) { + success = await api.updateById(values['id'], values); + } else { + success = await api.create(values); } - - - ); - } + if (success) { + setVisible(false); + } + actionRef.current.reload(); + } finally { + setConfirmLoading(false); + } + }} + /> + + ); } export default AccessGateway; diff --git a/web/src/components/asset/AccessGatewayModal.js b/web/src/components/asset/AccessGatewayModal.js index 796a675..172e64e 100644 --- a/web/src/components/asset/AccessGatewayModal.js +++ b/web/src/components/asset/AccessGatewayModal.js @@ -1,5 +1,6 @@ -import React, {useState} from 'react'; -import {Form, Input, InputNumber, Modal, Select} from "antd/lib/index"; +import React, {useEffect, useState} from 'react'; +import {Form, Input, InputNumber, Modal, Select} from "antd"; +import accessGatewayApi from "../../api/access-gateway"; const formItemLayout = { labelCol: {span: 6}, @@ -7,46 +8,73 @@ const formItemLayout = { }; const {TextArea} = Input; +const api = accessGatewayApi; -const AccessGatewayModal = ({title, visible, handleOk, handleCancel, confirmLoading, model}) => { +const AccessGatewayModal = ({ + visible, + handleOk, + handleCancel, + confirmLoading, + id, + }) => { const [form] = Form.useForm(); - - if (model['accountType'] === undefined) { - model['accountType'] = 'password'; - } - - if (model['port'] === undefined) { - model['port'] = 22; - } - - let [accountType, setAccountType] = useState(model.accountType); + let [accountType, setAccountType] = useState('password'); const handleAccountTypeChange = v => { setAccountType(v); } + useEffect(() => { + + const getItem = async () => { + let data = await api.getById(id); + if (data) { + form.setFieldsValue(data); + setAccountType(data['accountType']); + } + } + + if (visible) { + if(id){ + getItem(); + }else { + form.setFieldsValue({ + accountType: 'password', + port: 22, + }); + } + } else { + form.resetFields(); + } + }, [visible]); + return ( { form .validateFields() - .then(values => { - form.resetFields(); - handleOk(values); + .then(async values => { + let ok = await handleOk(values); + if (ok) { + form.resetFields(); + } }); }} - onCancel={handleCancel} + onCancel={() => { + form.resetFields(); + handleCancel(); + }} confirmLoading={confirmLoading} okText='确定' cancelText='取消' > -
+ diff --git a/web/src/components/asset/Asset.js b/web/src/components/asset/Asset.js index 6d77fc1..9bc9c09 100644 --- a/web/src/components/asset/Asset.js +++ b/web/src/components/asset/Asset.js @@ -1,462 +1,121 @@ -import React, {Component} from 'react'; +import React, {useState} from 'react'; import { - Alert, Badge, Button, - Col, - Divider, - Dropdown, - Form, - Input, Layout, - Menu, Modal, notification, - Row, + Popconfirm, + Popover, Select, - Space, Table, Tag, Tooltip, - Typography + Upload } from "antd"; -import qs from "qs"; -import AssetModal from "./AssetModal"; -import request from "../../common/request"; -import {message} from "antd/es"; -import {getHeaders, isEmpty} from "../../utils/utils"; -import dayjs from 'dayjs'; -import { - DeleteOutlined, - DownOutlined, - ExclamationCircleOutlined, - ImportOutlined, - PlusOutlined, - SyncOutlined, - UndoOutlined, - UploadOutlined -} from '@ant-design/icons'; +import {Link} from "react-router-dom"; +import {ProTable, TableDropdown} from "@ant-design/pro-components"; +import assetApi from "../../api/asset"; +import tagApi from "../../api/tag"; import {PROTOCOL_COLORS} from "../../common/constants"; +import strings from "../../utils/strings"; +import AssetModal from "./AssetModal"; +import ColumnState, {useColumnState} from "../../hook/column-state"; +import {useQuery} from "react-query"; +import Show from "../../dd/fi/show"; +import {hasMenu} from "../../service/permission"; +import ChangeOwner from "./ChangeOwner"; -import {hasPermission} from "../../service/permission"; -import Upload from "antd/es/upload"; -import axios from "axios"; -import {server} from "../../common/env"; - - -const confirm = Modal.confirm; -const {Search} = Input; +const api = assetApi; const {Content} = Layout; -const {Title, Text} = Typography; -class Asset extends Component { +const actionRef = React.createRef(); - inputRefOfName = React.createRef(); - inputRefOfIp = React.createRef(); - changeOwnerFormRef = React.createRef(); +function downloadImportExampleCsv() { + let csvString = 'name,ssh,127.0.0.1,22,username,password,privateKey,passphrase,description,tag1|tag2|tag3'; + //前置的"\uFEFF"为“零宽不换行空格”,可处理中文乱码问题 + const blob = new Blob(["\uFEFF" + csvString], {type: 'text/csv;charset=gb2312;'}); + let a = document.createElement('a'); + a.download = 'sample.csv'; + a.href = URL.createObjectURL(blob); + a.click(); +} - state = { - items: [], - total: 0, - queryParams: { - pageIndex: 1, - pageSize: 10, - protocol: '', - tags: '' +const importExampleContent = <> + 下载示例 + + +const Asset = () => { + let [visible, setVisible] = useState(false); + let [confirmLoading, setConfirmLoading] = useState(false); + let [selectedRowKey, setSelectedRowKey] = useState(undefined); + let [items, setItems] = useState([]); + let [selectedRowKeys, setSelectedRowKeys] = useState([]); + let [copied, setCopied] = useState(false); + + let [selectedRow, setSelectedRow] = useState(undefined); + let [changeOwnerVisible, setChangeOwnerVisible] = useState(false); + + const [columnsStateMap, setColumnsStateMap] = useColumnState(ColumnState.ASSET); + + const tagQuery = useQuery('getAllTag', tagApi.getAll); + + const columns = [ + { + dataIndex: 'index', + valueType: 'indexBorder', + width: 48, }, - loading: false, - modalVisible: false, - modalTitle: '', - modalConfirmLoading: false, - credentials: [], - tags: [], - selectedTags: [], - model: {}, - selectedRowKeys: [], - delBtnLoading: false, - changeOwnerModalVisible: false, - changeOwnerConfirmLoading: false, - users: [], - selected: {}, - selectedSharers: [], - importModalVisible: false, - fileList: [], - uploading: false, - }; - - async componentDidMount() { - - this.loadTableData(); - - let result = await request.get('/tags'); - if (result['code'] === 1) { - this.setState({ - tags: result['data'] - }) - } - } - - async delete(id) { - const result = await request.delete('/assets/' + id); - if (result['code'] === 1) { - message.success('删除成功'); - await this.loadTableData(this.state.queryParams); - } else { - message.error(result.message, 10); - } - - } - - async loadTableData(queryParams) { - this.setState({ - loading: true - }); - - queryParams = queryParams || this.state.queryParams; - - // queryParams - let paramsStr = qs.stringify(queryParams); - - let data = { - items: [], - total: 0 - }; - - try { - let result = await request.get('/assets/paging?' + paramsStr); - if (result['code'] === 1) { - data = result['data']; - } else { - message.error(result['message']); - } - } catch (e) { - - } finally { - const items = data.items.map(item => { - return {'key': item['id'], ...item} - }) - this.setState({ - items: items, - total: data.total, - queryParams: queryParams, - loading: false - }); - } - } - - handleChangPage = async (pageIndex, pageSize) => { - let queryParams = this.state.queryParams; - queryParams.pageIndex = pageIndex; - queryParams.pageSize = pageSize; - - this.setState({ - queryParams: queryParams - }); - - await this.loadTableData(queryParams) - }; - - handleSearchByName = name => { - let query = { - ...this.state.queryParams, - 'pageIndex': 1, - 'pageSize': this.state.queryParams.pageSize, - 'name': name, - } - - this.loadTableData(query); - }; - - handleSearchByIp = ip => { - let query = { - ...this.state.queryParams, - 'pageIndex': 1, - 'pageSize': this.state.queryParams.pageSize, - 'ip': ip, - } - - this.loadTableData(query); - }; - - handleTagsChange = tags => { - this.setState({ - selectedTags: tags - }) - let query = { - ...this.state.queryParams, - 'pageIndex': 1, - 'pageSize': this.state.queryParams.pageSize, - 'tags': tags.join(','), - } - - this.loadTableData(query); - } - - handleSearchByProtocol = protocol => { - let query = { - ...this.state.queryParams, - 'pageIndex': 1, - 'pageSize': this.state.queryParams.pageSize, - 'protocol': protocol, - } - this.loadTableData(query); - } - - showDeleteConfirm(id, content) { - let self = this; - confirm({ - title: '您确定要删除此资产吗?', - content: content, - okText: '确定', - okType: 'danger', - cancelText: '取消', - onOk() { - self.delete(id); - } - }); - }; - - async update(id) { - let result = await request.get(`/assets/${id}`); - if (result.code !== 1) { - message.error(result.message, 10); - return; - } - await this.showModal('更新资产', result.data); - } - - async copy(id) { - let result = await request.get(`/assets/${id}`); - if (result.code !== 1) { - message.error(result.message, 10); - return; - } - result.data['id'] = undefined; - await this.showModal('复制资产', result.data); - } - - async connTest(id) { - message.info({content: '正在测试中...', key: id, duration: 5}); - let result = await request.post(`/assets/${id}/tcping`); - if (result.code !== 1) { - message.error({content: result.message, key: id, duration: 10}); - return; - } - if (result['data']['active'] === true) { - message.success({content: '连通性测试完成,当前资产在线。', key: id, duration: 3}); - } else { - message.warning({content: `连通性测试完成,当前资产离线,原因: ${result['data']['message']}。`, key: id, duration: 10}); - } - this.loadTableData(this.state.queryParams); - } - - async showModal(title, asset = {}) { - // 并行请求 - let getCredentials = request.get('/credentials'); - let getTags = request.get('/tags'); - - let credentials = []; - let tags = []; - - let r1 = await getCredentials; - let r2 = await getTags; - - if (r1['code'] === 1) { - credentials = r1['data']; - } - - if (r2['code'] === 1) { - tags = r2['data']; - } - - if (asset['tags'] && typeof (asset['tags']) === 'string') { - if (asset['tags'] === '' || asset['tags'] === '-') { - asset['tags'] = []; - } else { - asset['tags'] = asset['tags'].split(','); - } - } else { - asset['tags'] = []; - } - - asset['use-ssl'] = asset['use-ssl'] === 'true'; - asset['ignore-cert'] = asset['ignore-cert'] === 'true'; - asset['enable-drive'] = asset['enable-drive'] === 'true'; - asset['socks-proxy-enable'] = asset['socks-proxy-enable'] === 'true'; - asset['force-lossless'] = asset['force-lossless'] === 'true'; - - this.setState({ - modalTitle: title, - modalVisible: true, - credentials: credentials, - tags: tags, - model: asset - }); - }; - - handleCancelModal = e => { - this.setState({ - modalTitle: '', - modalVisible: false - }); - }; - - handleOk = async (formData) => { - // 弹窗 form 传来的数据 - this.setState({ - modalConfirmLoading: true - }); - - if (formData['tags']) { - formData.tags = formData['tags'].join(','); - } - - if (formData['accessGatewayId'] === undefined) { - formData['accessGatewayId'] = "-" - } - - if (formData.id) { - // 向后台提交数据 - const result = await request.put('/assets/' + formData.id, formData); - if (result.code === 1) { - message.success('操作成功', 3); - - this.setState({ - modalVisible: false - }); - await this.loadTableData(this.state.queryParams); - } else { - message.error(result.message, 10); - } - } else { - // 向后台提交数据 - const result = await request.post('/assets', formData); - if (result.code === 1) { - message.success('操作成功', 3); - - this.setState({ - modalVisible: false - }); - await this.loadTableData(this.state.queryParams); - } else { - message.error(result.message, 10); - } - } - - this.setState({ - modalConfirmLoading: false - }); - }; - - batchDelete = async () => { - this.setState({ - delBtnLoading: true - }) - try { - let result = await request.delete('/assets/' + this.state.selectedRowKeys.join(',')); - if (result.code === 1) { - message.success('操作成功', 3); - this.setState({ - selectedRowKeys: [] - }) - await this.loadTableData(this.state.queryParams); - } else { - message.error(result.message, 10); - } - } finally { - this.setState({ - delBtnLoading: false - }) - } - } - - handleSearchByNickname = async nickname => { - const result = await request.get(`/users/paging?pageIndex=1&pageSize=100&nickname=${nickname}`); - if (result.code !== 1) { - message.error(result.message, 10); - return; - } - - const items = result['data']['items'].map(item => { - return {'key': item['id'], ...item} - }) - - this.setState({ - users: items - }) - } - - handleCancelUpdateAttr = () => { - this.setState({ - attrVisible: false, - selected: {}, - attributes: {} - }); - } - - handleTableChange = (pagination, filters, sorter) => { - let query = { - ...this.state.queryParams, - 'order': sorter.order, - 'field': sorter.field - } - - this.loadTableData(query); - } - - render() { - - const columns = [{ - title: '序号', - dataIndex: 'id', - key: 'id', - render: (id, record, index) => { - return index + 1; - } - }, { - title: '资产名称', + { + title: '名称', dataIndex: 'name', - key: 'name', - render: (name, record) => { - let short = name; - if (short && short.length > 15) { - short = short.substring(0, 15) + " ..."; + render: (text, record) => { + if (record['description'] === '-') { + record['description'] = ''; } - if (hasPermission(record['owner'])) { - return ( - - ); - } else { - return ( - - {short} - - ); + let view =
{text}
; + if (hasMenu('asset-detail')) { + view = {text}; } + return
+ {view} +
{record['description']}
+
}, - sorter: true, }, { title: '协议', dataIndex: 'protocol', key: 'protocol', render: (text, record) => { - const title = `${record['ip'] + ':' + record['port']}` return ( - - {text} - + {text} ) - } + }, + renderFormItem: (item, {type, defaultRender, ...rest}, form) => { + if (type === 'form') { + return null; + } + + return ( + + ); + }, }, { title: '网络', dataIndex: 'network', key: 'network', + hideInSearch: true, render: (text, record) => { return `${record['ip'] + ':' + record['port']}`; } @@ -465,449 +124,363 @@ class Asset extends Component { dataIndex: 'tags', key: 'tags', render: tags => { - if (!isEmpty(tags)) { - return this.renderTags(tags); + if (strings.hasText(tags)) { + return tags.split(',').filter(tag => tag !== '-').map(tag => {tag}); } - } + }, + renderFormItem: (item, {type, defaultRender, ...rest}, form) => { + if (type === 'form') { + return null; + } + + return ( + + ); + }, }, { title: '状态', dataIndex: 'active', key: 'active', - render: text => { + render: (text, record) => { + if (record['testing'] === true) { + return ( + + + + ) + } if (text) { return ( - + ) } else { return ( - + ) } - } + }, + renderFormItem: (item, {type, defaultRender, ...rest}, form) => { + if (type === 'form') { + return null; + } + + return ( + + ); + }, }, { title: '所有者', dataIndex: 'ownerName', - key: 'ownerName' - }, { - title: '创建日期', - dataIndex: 'created', - key: 'created', - render: (text, record) => { - return ( - - {dayjs(text).fromNow()} - - ) - }, - sorter: true, + key: 'ownerName', + hideInSearch: true, }, - { - title: '操作', - key: 'action', - render: (text, record) => { + { + title: '创建时间', + key: 'created', + dataIndex: 'created', + hideInSearch: true, + }, + { + title: '操作', + valueType: 'option', + key: 'option', + render: (text, record, index, action) => { + const id = record['id']; + const protocol = record['protocol']; + const name = record['name']; + let url = ''; + if (protocol === 'ssh') { + url = `#/term?assetId=${id}&assetName=${name}`; + } else { + url = `#/access?assetId=${id}&assetName=${name}&protocol=${protocol}`; + } - const menu = ( - - - - - - - - - - - - - - - - - - - - ); - - const id = record['id']; - const protocol = record['protocol']; - const name = record['name']; - const sshMode = record['sshMode']; - let url = ''; - if (protocol === 'ssh' && (sshMode === 'native' || sshMode === 'naive')) { - url = `#/term?assetId=${id}&assetName=${name}`; - } else { - url = `#/access?assetId=${id}&assetName=${name}&protocol=${protocol}`; - } - - return ( -
- - - - -
- ) - }, - } - ]; - - const selectedRowKeys = this.state.selectedRowKeys; - const rowSelection = { - selectedRowKeys: this.state.selectedRowKeys, - onChange: (selectedRowKeys, selectedRows) => { - this.setState({selectedRowKeys}); + return [ + + + 接入 + + , + + { + setVisible(true); + setSelectedRowKey(record['id']); + }} + > + 编辑 + + , + + { + await api.deleteById(record.id); + actionRef.current.reload(); + }} + okText="确认" + cancelText="取消" + > + 删除 + + , + { + switch (key) { + case "copy": + setCopied(true); + setVisible(true); + setSelectedRowKey(record['id']); + break; + case "test": + connTest(record['id'], index); + break; + case "change-owner": + handleChangeOwner(record); + break; + } + }} + menus={[ + {key: 'copy', name: '复制', disabled: !hasMenu('asset-copy')}, + {key: 'test', name: '连通性测试', disabled: !hasMenu('asset-conn-test')}, + {key: 'change-owner', name: '更换所有者', disabled: !hasMenu('asset-change-owner')}, + ]} + />, + ] }, - }; - const hasSelected = selectedRowKeys.length > 0; + }, + ]; - return ( - <> - -
- -
- 资产列表 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
`总计 ${total} 条` - }} - loading={this.state.loading} - onChange={this.handleTableChange} - /> - - { - this.state.modalVisible ? - - : null - } - - { - this.state.importModalVisible ? - { - const formData = new FormData(); - formData.append("file", this.state.fileList[0]); - - let headers = getHeaders(); - headers['Content-Type'] = 'multipart/form-data'; - - axios - .post(server + "/assets/import", formData, { - headers: headers - }) - .then((resp) => { - console.log("上传成功", resp); - this.setState({ - importModalVisible: false - }) - let result = resp.data; - if (result['code'] === 1) { - let data = result['data']; - let successCount = data['successCount']; - let errorCount = data['errorCount']; - if (errorCount === 0) { - notification['success']({ - message: '导入资产成功', - description: '共导入成功' + successCount + '条资产。', - }); - } else { - notification['info']({ - message: '导入资产完成', - description: `共导入成功${successCount}条资产,失败${errorCount}条资产。`, - }); - } - } else { - notification['error']({ - message: '导入资产失败', - description: result['message'], - }); - } - this.loadTableData(); - }); - }} - onCancel={() => { - this.setState({ - importModalVisible: false - }) - }} - okButtonProps={{ - disabled: this.state.fileList.length === 0 - }} - > - - { - this.setState(state => { - const index = state.fileList.indexOf(file); - const newFileList = state.fileList.slice(); - newFileList.splice(index, 1); - return { - fileList: newFileList, - }; - }); - }} - beforeUpload={(file) => { - this.setState(state => ({ - fileList: [file], - })); - return false; - }} - fileList={this.state.fileList} - > - - - - - - - - : undefined - } - - 更换资源「{this.state.selected['name']}」的所有者 - } - visible={this.state.changeOwnerModalVisible} - confirmLoading={this.state.changeOwnerConfirmLoading} - - onOk={() => { - this.setState({ - changeOwnerConfirmLoading: true - }); - - let changeOwnerModalVisible = false; - this.changeOwnerFormRef - .current - .validateFields() - .then(async values => { - let result = await request.post(`/assets/${this.state.selected['id']}/change-owner?owner=${values['owner']}`); - if (result['code'] === 1) { - message.success('操作成功'); - this.loadTableData(); - } else { - message.error(result['message'], 10); - changeOwnerModalVisible = true; - } - }) - .catch(info => { - - }) - .finally(() => { - this.setState({ - changeOwnerConfirmLoading: false, - changeOwnerModalVisible: changeOwnerModalVisible - }) - }); - }} - onCancel={() => { - this.setState({ - changeOwnerModalVisible: false - }) - }} - > - - - - - - - - - - - - - ); + const connTest = async (id, index) => { + items[index]['testing'] = true; + setItems(items.slice()); + let [active, msg] = await assetApi.connTest(id); + items[index]['active'] = active; + items[index]['activeMessage'] = msg; + items[index]['testing'] = false; + setItems(items.slice()); } - renderTags(tags) { - let tagDocuments = [] - let tagArr = tags.split(','); - for (let i = 0; i < tagArr.length; i++) { - if (tags[i] === '-') { - continue; + const connTestInBatch = async () => { + for (let i = 0; i < items.length; i++) { + let item = items[i]; + if (selectedRowKeys.includes(item['id'])) { + connTest(item['id'], i); } - tagDocuments.push({tagArr[i]}) } - return tagDocuments; + setSelectedRowKeys([]); } + + const handleImportAsset = (file) => { + + let [success, data] = api.importAsset(file); + if (success === false) { + notification['error']({ + message: '导入资产失败', + description: data, + }); + return false; + } + + let successCount = data['successCount']; + let errorCount = data['errorCount']; + if (errorCount === 0) { + notification['success']({ + message: '导入资产成功', + description: '共导入成功' + successCount + '条资产。', + }); + } else { + notification['info']({ + message: '导入资产完成', + description: `共导入成功${successCount}条资产,失败${errorCount}条资产。`, + }); + } + actionRef.current.reload(); + return true; + } + + const handleChangeOwner = (row) => { + setSelectedRow(row); + setChangeOwnerVisible(true); + } + + return ( + { + + let field = ''; + let order = ''; + if (Object.keys(sort).length > 0) { + field = Object.keys(sort)[0]; + order = Object.values(sort)[0]; + } + + let queryParams = { + pageIndex: params.current, + pageSize: params.pageSize, + name: params.name, + type: params.type, + protocol: params.protocol, + active: params.active, + 'tags': params.tags?.join(','), + field: field, + order: order + } + let result = await api.getPaging(queryParams); + setItems(result['items']) + return { + data: items, + success: true, + total: result['total'] + }; + }} + rowSelection={{ + // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom + // 注释该行则默认不显示下拉选项 + selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT], + selectedRowKeys: selectedRowKeys, + onChange: (keys) => { + setSelectedRowKeys(keys); + } + }} + dataSource={items} + rowKey="id" + search={{ + labelWidth: 'auto', + }} + pagination={{ + defaultPageSize: 10, + }} + dateFormatter="string" + headerTitle="资产列表" + toolBarRender={() => { + return [ + + + , + + + + + + + , + + + , + + + + ]; + }} + /> + + { + setVisible(false); + setSelectedRowKey(undefined); + setCopied(false); + }} + handleOk={async (values) => { + setConfirmLoading(true); + + try { + let success; + if (values['id']) { + success = await api.updateById(values['id'], values); + } else { + success = await api.create(values); + } + if (success) { + setVisible(false); + } + actionRef.current.reload(); + } finally { + setConfirmLoading(false); + } + }} + /> + + { + let success = await api.changeOwner(selectedRow?.id, owner); + if (success) { + setChangeOwnerVisible(false); + actionRef.current.reload(); + } + }} + handleCancel={() => { + setChangeOwnerVisible(false); + }} + /> + + ); } export default Asset; diff --git a/web/src/components/asset/AssetDetail.js b/web/src/components/asset/AssetDetail.js new file mode 100644 index 0000000..b906254 --- /dev/null +++ b/web/src/components/asset/AssetDetail.js @@ -0,0 +1,52 @@ +import React, {useState} from 'react'; +import {useParams, useSearchParams} from "react-router-dom"; +import {Tabs} from "antd"; +import AssetInfo from "./AssetInfo"; +import AssetUser from "./AssetUser"; +import AssetUserGroup from "./AssetUserGroup"; +import {hasMenu} from "../../service/permission"; + +const {TabPane} = Tabs; + +const AssetDetail = () => { + let params = useParams(); + const id = params['assetId']; + const [searchParams, setSearchParams] = useSearchParams(); + let key = searchParams.get('activeKey'); + key = key ? key : 'info'; + + let [activeKey, setActiveKey] = useState(key); + + const handleTagChange = (key) => { + setActiveKey(key); + setSearchParams({'activeKey': key}); + } + + return ( +
+ + { + hasMenu('asset-detail') && + + + + } + + { + hasMenu('asset-authorised-user') && + + + + } + { + hasMenu('asset-authorised-user-group') && + + + + } + +
+ ); +}; + +export default AssetDetail; \ No newline at end of file diff --git a/web/src/components/asset/AssetInfo.js b/web/src/components/asset/AssetInfo.js new file mode 100644 index 0000000..ad4b5d8 --- /dev/null +++ b/web/src/components/asset/AssetInfo.js @@ -0,0 +1,39 @@ +import React, {useEffect, useState} from 'react'; + +import assetApi from "../../api/asset"; +import {Descriptions} from "antd"; + +const api = assetApi; + +const AssetInfo = ({active, id}) => { + + let [item, setItem] = useState({}); + + useEffect(() => { + const getItem = async (id) => { + let item = await api.getById(id); + if (item) { + setItem(item); + } + }; + if (active && id) { + getItem(id); + } + }, [active]); + + return ( +
+ + {item['name']} + {item['protocol']} + {item['ip']} + {item['port']} + {item['tags']} + {/*{item['type'] === 'regexp' ? '正则表达式' : '命令'}*/} + {item['created']} + +
+ ); +}; + +export default AssetInfo; \ No newline at end of file diff --git a/web/src/components/asset/AssetModal.css b/web/src/components/asset/AssetModal.css new file mode 100644 index 0000000..349d58f --- /dev/null +++ b/web/src/components/asset/AssetModal.css @@ -0,0 +1,3 @@ +.asset-modal .ant-modal-body{ + padding-top: 0 !important; +} \ No newline at end of file diff --git a/web/src/components/asset/AssetModal.js b/web/src/components/asset/AssetModal.js index b2622f9..d044615 100644 --- a/web/src/components/asset/AssetModal.js +++ b/web/src/components/asset/AssetModal.js @@ -1,21 +1,13 @@ import React, {useEffect, useState} from 'react'; -import { - Alert, - Col, - Collapse, - Form, - Input, - InputNumber, - Modal, - Radio, - Row, - Select, - Switch, - Tooltip, - Typography -} from "antd/lib/index"; -import {isEmpty} from "../../utils/utils"; +import {Collapse, Form, Input, InputNumber, Modal, Radio, Select, Switch, Tabs, Tooltip, Typography} from "antd"; import request from "../../common/request"; +import assetApi from "../../api/asset"; +import tagApi from "../../api/tag"; +import credentialApi from "../../api/credential"; +import arrays from "../../utils/array"; +import strings from "../../utils/strings"; +import {ControlOutlined, DesktopOutlined} from "@ant-design/icons"; +import './AssetModal.css' const {TextArea} = Input; const {Option} = Select; @@ -38,75 +30,145 @@ const protocolMapping = { const formLayout = { labelCol: {span: 6}, - wrapperCol: {span: 18}, -}; - -const TELENETFormItemLayout = { - labelCol: {span: 8}, wrapperCol: {span: 16}, }; -const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoading, credentials, tags, model}) { +const TELENETFormItemLayout = { + labelCol: {span: 6}, + wrapperCol: {span: 14}, +}; + +const AssetModal = function ({ + visible, + handleOk, + handleCancel, + confirmLoading, + id, + copied + }) { const [form] = Form.useForm(); - if (model.accountType === undefined) { - model.accountType = 'rdp'; - } + let [accountType, setAccountType] = useState('custom'); + let [protocol, setProtocol] = useState('rdp'); + let [protocolOptions, setProtocolOptions] = useState(protocolMapping['rdp']); + let [useSSL, setUseSSL] = useState(false); + let [storages, setStorages] = useState([]); + let [enableDrive, setEnableDrive] = useState(false); + let [socksProxyEnable, setSocksProxyEnable] = useState(false); - let [accountType, setAccountType] = useState(model.accountType); - let [protocol, setProtocol] = useState(model.protocol); - let [sshMode, setSshMode] = useState(model['ssh-mode']); + let [accessGateways, setAccessGateways] = useState([]); + let [tags, setTags] = useState([]); + let [credentials, setCredentials] = useState([]); - let initAccountTypes = [] - if (model.protocol) { - initAccountTypes = protocolMapping[model.protocol]; - } - let [accountTypes, setAccountTypes] = useState(initAccountTypes); - let [useSSL, setUseSSL] = useState(model['use-ssl']); + const [current, setCurrent] = useState(0); - for (let key in model) { - if (model.hasOwnProperty(key)) { - if (model[key] === '-') { - model[key] = ''; - } + const getStorages = async () => { + const result = await request.get('/storages/shares'); + if (result.code === 1) { + setStorages(result['data']); } } + const handleStepChange = (value) => { + console.log('onChange:', current); + setCurrent(value); + }; + + useEffect(() => { + + const getItem = async () => { + let asset = await assetApi.getById(id); + if (asset) { + asset['use-ssl'] = asset['use-ssl'] === 'true'; + asset['ignore-cert'] = asset['ignore-cert'] === 'true'; + asset['enable-drive'] = asset['enable-drive'] === 'true'; + asset['socks-proxy-enable'] = asset['socks-proxy-enable'] === 'true'; + asset['force-lossless'] = asset['force-lossless'] === 'true'; + for (let key in asset) { + if (asset.hasOwnProperty(key)) { + if (asset[key] === '-') { + asset[key] = ''; + } + } + } + if (strings.hasText(asset['tags'])) { + asset['tags'] = asset['tags'].split(','); + } else { + asset['tags'] = []; + } + setAccountType(asset['accountType']); + if (asset['accountType'] === 'credential') { + getCredentials(); + } + setProtocolOptions(protocolMapping[asset['protocol']]); + setProtocol(asset['protocol']); + setUseSSL(asset['use-ssl']); + setEnableDrive(asset['enable-drive']); + setSocksProxyEnable(asset['socks-proxy-enable']); + form.setFieldsValue(asset); + } + } + + const getAccessGateways = async () => { + const result = await request.get('/access-gateways'); + if (result.code === 1) { + setAccessGateways(result['data']); + } + } + + const getTags = async () => { + let tags = await tagApi.getAll(); + setTags(tags); + } + + if (visible) { + if (id) { + getItem(); + } + getTags(); + getAccessGateways(); + } else { + form.setFieldsValue({ + 'accountType': accountType, + 'protocol': protocol, + 'port': 3389, + 'enable-drive': false, + 'force-lossless': false, + 'socks-proxy-enable': false, + 'ignore-cert': false, + 'use-ssl': false, + }); + } + + }, [visible]); + const handleProtocolChange = e => { setProtocol(e.target.value) let port; switch (e.target.value) { case 'ssh': port = 22; - setAccountTypes(protocolMapping['ssh']); - form.setFieldsValue({ - accountType: 'custom', - }); + setProtocolOptions(protocolMapping['ssh']); + form.setFieldsValue({accountType: 'custom',}); handleAccountTypeChange('custom'); break; case 'rdp': port = 3389; - setAccountTypes(protocolMapping['rdp']); - form.setFieldsValue({ - accountType: 'custom', - }); + setProtocolOptions(protocolMapping['rdp']); + form.setFieldsValue({accountType: 'custom',}); handleAccountTypeChange('custom'); break; case 'vnc': port = 5900; - setAccountTypes(protocolMapping['vnc']); - form.setFieldsValue({ - accountType: 'custom', - }); + setProtocolOptions(protocolMapping['vnc']); + form.setFieldsValue({accountType: 'custom',}); handleAccountTypeChange('custom'); break; case 'telnet': port = 23; - setAccountTypes(protocolMapping['telnet']); - form.setFieldsValue({ - accountType: 'custom', - }); + setProtocolOptions(protocolMapping['telnet']); + form.setFieldsValue({accountType: 'custom',}); handleAccountTypeChange('custom'); break; case 'kubernetes': @@ -121,726 +183,655 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa }); }; - const handleAccountTypeChange = v => { - setAccountType(v); - model.accountType = v; + const getCredentials = async () => { + let items = await credentialApi.getAll(); + setCredentials(items); } - let [enableDrive, setEnableDrive] = useState(model['enable-drive']); - let [socksProxyEnable, setSocksProxyEnable] = useState(model['socks-proxy-enable']); - - let [storages, setStorages] = useState([]); - useEffect(() => { - const getStorages = async () => { - const result = await request.get('/storages/shares'); - if (result.code === 1) { - setStorages(result['data']); - } + const handleAccountTypeChange = v => { + setAccountType(v); + if (v === 'credential') { + getCredentials(); } - getStorages(); - }, []); + } - let [accessGateways, setAccessGateways] = useState([]); - useEffect(() => { - const getAccessGateways = async () => { - const result = await request.get('/access-gateways'); - if (result.code === 1) { - setAccessGateways(result['data']); - } + const basicView =
+ + + + + + + RDP + SSH + VNC + Telnet + Kubernetes + + + + + + + + + + + + + + + + + { + protocol === 'kubernetes' ? <> + + + + + + + + + + + + : <> + + + + + + { + accountType === 'credential' ? + <> + + + + + : null + } + + { + accountType === 'custom' ? + <> + + + + + + + + + + : null + } + + { + accountType === 'private-key' ? + <> + + + + + +