From d999a5c0e6f60aa6f6a81a23722e109a7921d09d Mon Sep 17 00:00:00 2001 From: root Date: Thu, 17 Sep 2026 12:02:35 +0800 Subject: [PATCH] Initial commit Co-Authored-By: Claude Opus 5 (1M context) --- .cursor/rules/commit-standards.mdc | 12 + .cursor/settings.json | 7 + .cursor/skills/README.md | 45 + .cursor/skills/commit-convention/SKILL.md | 97 + .cursor/skills/vue2-api-integration/SKILL.md | 63 + .../skills/vue2-api-integration/checklist.md | 30 + .../skills/vue2-api-integration/examples.md | 78 + .cursor/skills/vue2-element-dev/SKILL.md | 70 + .cursor/skills/vue2-element-dev/checklist.md | 25 + .cursor/skills/vue2-element-dev/examples.md | 127 + .cursor/skills/vue2-route-permission/SKILL.md | 56 + .../skills/vue2-route-permission/checklist.md | 28 + .../skills/vue2-route-permission/examples.md | 65 + .env.build | 2 + .env.test | 2 + .gitignore | 21 + README.md | 2 + babel.config.js | 5 + package-lock.json | 15800 ++++++++++++++ package.json | 87 + prod_build.sh | 6 + project.md | 162 + public/ai-image-v12.html | 2913 +++ public/ai-image-v16.html | 17597 ++++++++++++++++ public/favicon1.ico | Bin 0 -> 6510 bytes public/gif.worker.js | 3 + public/icon.ico | Bin 0 -> 41608 bytes public/index.html | 26 + public/robots.txt | 2 + src/App.vue | 37 + src/api/activeManagement.js | 439 + src/api/actressManagement.js | 32 + src/api/administrators.js | 53 + src/api/advertisingManagement.js | 79 + src/api/agentDistrictProvider.js | 260 + src/api/ai.js | 230 + src/api/angentManagement.js | 42 + src/api/animation.js | 340 + src/api/author.js | 38 + src/api/avComment.js | 28 + src/api/balance.js | 14 + src/api/businessman.js | 169 + src/api/channelBackground.js | 57 + src/api/channelManagement.js | 131 + src/api/contentReview.js | 123 + src/api/discountAreaManagement.js | 71 + src/api/fiction.js | 126 + src/api/groupChatManagement.js | 86 + src/api/home.js | 46 + src/api/hotManagement.js | 40 + src/api/index.js | 121 + src/api/landPage.js | 88 + src/api/login.js | 45 + src/api/loufeng.js | 121 + src/api/lsjMediaLib.js | 143 + src/api/marquee.js | 37 + src/api/mediaLib.js | 48 + src/api/moduleConfig.js | 178 + src/api/nakedChatManage.js | 104 + src/api/officialWebsite.js | 171 + src/api/productManagement.js | 458 + src/api/robot.js | 57 + src/api/shortVideoRecommend.js | 97 + src/api/signin.js | 125 + src/api/statistics.js | 98 + src/api/systemManagement.js | 70 + src/api/systemMessage.js | 104 + src/api/tagConfigList.js | 30 + src/api/transactionManagement.js | 250 + src/api/user.js | 556 + src/api/videoManagement.js | 813 + src/assets/images/1.png | Bin 0 -> 7528 bytes src/assets/images/2.png | Bin 0 -> 13502 bytes src/assets/images/3.png | Bin 0 -> 12505 bytes src/assets/images/5.jpg | Bin 0 -> 57908 bytes src/assets/images/bg.jpeg | Bin 0 -> 74170 bytes src/assets/images/bind.png | Bin 0 -> 1701 bytes src/assets/images/czje.png | Bin 0 -> 3280 bytes src/assets/images/czrs.png | Bin 0 -> 2912 bytes src/assets/images/dl.png | Bin 0 -> 1014 bytes src/assets/images/dsp.png | Bin 0 -> 971 bytes src/assets/images/fzsj.png | Bin 0 -> 1706 bytes src/assets/images/gm.png | Bin 0 -> 2160 bytes src/assets/images/header-bg.png | Bin 0 -> 14116 bytes src/assets/images/icon.png | Bin 0 -> 41608 bytes src/assets/images/jb.png | Bin 0 -> 2451 bytes src/assets/images/jbtx.png | Bin 0 -> 971 bytes src/assets/images/timg.jpeg | Bin 0 -> 16969 bytes src/assets/images/tx.png | Bin 0 -> 1189 bytes src/assets/images/user.png | Bin 0 -> 2275 bytes src/assets/images/vip.png | Bin 0 -> 734 bytes src/assets/images/welcome.jpg | Bin 0 -> 89348 bytes src/assets/images/xf.png | Bin 0 -> 2909 bytes src/assets/images/xfz.png | Bin 0 -> 1437 bytes src/assets/images/yq.png | Bin 0 -> 1716 bytes src/assets/images/zj.png | Bin 0 -> 1298 bytes src/assets/images/zxyh.png | Bin 0 -> 1728 bytes src/assets/scss/base.scss | 291 + src/assets/scss/element-variables.scss | 7 + src/components/ConfigForms/index.vue | 233 + src/components/ConfigTable/index.vue | 363 + src/components/Gallery/index.vue | 85 + src/components/LongText.vue | 77 + src/components/ShowVideo/index.vue | 122 + src/components/VueDplayerHls/index.vue | 140 + src/components/baseUpload.vue | 274 + src/components/baseUploadNew.vue | 203 + src/components/baseUploadOld.vue | 198 + src/components/batchTagsPopup.vue | 152 + src/components/clipboardPic.vue | 140 + src/components/commentAction.vue | 134 + src/components/cropper.vue | 186 + src/components/decrypt-img/index.vue | 64 + src/components/decrypt-img/tool.js | 60 + src/components/globalUploader.vue | 389 + src/components/imgLoad.vue | 50 + src/components/imgsUpload.vue | 245 + src/components/media-popup.vue | 161 + src/components/mediaTagSelector.vue | 128 + src/components/multipleChannels.vue | 154 + src/components/radioChannel.vue | 151 + src/components/reasonAction.vue | 240 + src/components/rich-editor/index.vue | 418 + src/components/rich-preview/content.vue | 152 + src/components/rich-preview/index.vue | 89 + src/components/selectReasonAction.vue | 292 + src/components/tagSelector.vue | 143 + src/main.js | 58 + src/permission.js | 67 + src/plugins/LoginPlugin.js | 145 + src/router/activity.js | 184 + src/router/actress.js | 25 + src/router/administrators.js | 29 + src/router/advertising.js | 36 + src/router/agent.js | 53 + src/router/agentDistrictProvider.js | 59 + src/router/ai.js | 91 + src/router/animation.js | 106 + src/router/avcomment.js | 33 + src/router/baseRouter.js | 40 + src/router/business.js | 38 + src/router/channel.js | 68 + src/router/channelBack.js | 45 + src/router/cinema.js | 85 + src/router/contentReview.js | 44 + src/router/discountAreaManagement.js | 27 + src/router/fiction.js | 52 + src/router/gathering.js | 30 + src/router/groupChatManagement.js | 36 + src/router/hotSpot.js | 30 + src/router/index.js | 15 + src/router/land.js | 29 + src/router/loufeng.js | 50 + src/router/lsjMediaLibRouter.js | 48 + src/router/mainChild.js | 76 + src/router/mediaLibRouter.js | 22 + src/router/moduleConfig.js | 52 + src/router/nakedChat.js | 36 + src/router/officialWebsite.js | 101 + src/router/permissionRouter.js | 143 + src/router/product.js | 149 + src/router/robot.js | 27 + src/router/signin.js | 45 + src/router/statistics.js | 108 + src/router/system.js | 43 + src/router/systemMessage.js | 27 + src/router/transaction.js | 83 + src/router/user.js | 129 + src/router/video.js | 177 + src/stroe/actions.js | 41 + src/stroe/getters.js | 8 + src/stroe/index.js | 20 + src/stroe/modules/index.js | 6 + src/stroe/modules/login.js | 100 + src/stroe/mutations.js | 72 + src/stroe/state.js | 11 + src/utils/common.js | 20 + src/utils/compressImage.js | 265 + src/utils/contentReview.js | 31 + src/utils/eventBus.js | 3 + src/utils/filter.js | 560 + src/utils/gloabalComponents.js | 19 + src/utils/global.js | 168 + src/utils/index.js | 13 + src/utils/localStroage.js | 31 + src/utils/phone.js | 7 + src/utils/picTobase64.js | 22 + src/utils/previewImages.js | 33 + src/utils/request.js | 213 + src/utils/safeJsonParse.js | 19 + src/utils/secretFn.js | 25 + src/utils/serverUrlConfig.js | 22 + src/utils/uploadConfig.js | 8 + src/utils/validator.js | 227 + .../numberManagement/components/addTag.vue | 123 + .../numberManagement/index.vue | 73 + .../buyPage/components/codeAction.vue | 229 + .../buyPage/components/joinNum.vue | 81 + .../activityManagement/buyPage/index.vue | 234 + .../components/addContent.vue | 322 + .../components/previewPicture.vue | 155 + .../configurationList/index.vue | 424 + .../dailyTaskList/components/addContent.vue | 457 + .../dailyTaskList/index.vue | 341 + .../activityManagement/goldeneggLog/index.vue | 316 + .../growingTaskList/components/addContent.vue | 392 + .../components/detailDialog.vue | 125 + .../growingTaskList/index.vue | 346 + .../listOfPrizes/components/addContent.vue | 208 + .../activityManagement/listOfPrizes/index.vue | 172 + .../activityManagement/lotteryList/index.vue | 157 + .../newActivityList/index.vue | 547 + .../oneTaskList/components/addContent.vue | 395 + .../activityManagement/oneTaskList/index.vue | 325 + .../components/prizeListAction.vue | 185 + .../prizepoolList/index.vue | 156 + .../redemptionCode/components/codeAction.vue | 399 + .../redemptionCode/index.vue | 488 + .../components/typeAction.vue | 249 + .../redemptionConfiguration/index.vue | 171 + .../redemptionLog/index.vue | 239 + .../components/prizeAction.vue | 453 + .../redemptionPrize/index.vue | 429 + .../tenderActivity/index.vue | 105 + .../webActivity/components/activeAction.vue | 158 + .../activityManagement/webActivity/index.vue | 131 + .../actressManagement/actressList/index.vue | 387 + .../adminList/components/addAdmin.vue | 276 + src/views/administrators/adminList/index.vue | 226 + .../adminLog/cmoponents/editLog.vue | 98 + .../adminLog/components/editLog.vue | 98 + src/views/administrators/adminLog/index.vue | 227 + .../adList/components/addPage.vue | 542 + .../advertisingManagement/adList/index.vue | 278 + .../components/annouAction.vue | 162 + .../announcementManagement/index.vue | 184 + .../advertisingManagement/clickLog/index.vue | 167 + .../adReview/components/check.vue | 217 + .../agentDistrictProvider/adReview/index.vue | 267 + .../agentDistrictProvider/dayTable/define.js | 65 + .../agentDistrictProvider/dayTable/index.vue | 1006 + .../components/addDistrict.vue | 246 + .../components/addSubDistrict.vue | 170 + .../editPage/components/baseCfg.vue | 211 + .../components/editPage/components/ldyCfg.vue | 162 + .../editPage/components/rechargeCfg.vue | 353 + .../editPage/components/userCfg.vue | 343 + .../components/editPage/editDistrict.vue | 198 + .../districtProvider/components/linkPopup.vue | 53 + .../components/payHisPopup.vue | 197 + .../components/rechagePopup.vue | 308 + .../districtProvider/components/statDialy.vue | 872 + .../components/statSettlement.vue | 260 + .../districtProvider/components/subDisc.vue | 462 + .../components/widthdrawPopup.vue | 345 + .../districtProvider/index.vue | 522 + .../domainList/components/editPage.vue | 198 + .../domainList/index.vue | 179 + .../manageAuthrity/components/roleAction.vue | 694 + .../manageAuthrity/index.vue | 277 + .../monthTable/define.js | 11 + .../monthTable/index.vue | 390 + .../domainManagement/components/addTag.vue | 97 + .../domainManagement/index.vue | 124 + .../agentManagement/extensionLog/index.vue | 107 + .../promotionHierarchy/index.vue | 112 + .../proxyList/components/detailRecord.vue | 153 + src/views/agentManagement/proxyList/index.vue | 142 + .../AIDrawList/components/EditStatus.vue | 90 + .../AIDrawList/components/TagEdit.vue | 39 + src/views/aiManagement/AIDrawList/config.js | 25 + src/views/aiManagement/AIDrawList/index.vue | 210 + .../aiManagement/AiTemplate/editOrAdd.vue | 163 + src/views/aiManagement/AiTemplate/index.vue | 150 + .../components/aiPreviewPicture.vue | 189 + .../components/previewPicture.vue | 123 + .../aiChangeFaceImgList/index.vue | 481 + .../components/previewPicture.vue | 142 + .../aiManagement/aiChangeFaceList/index.vue | 728 + .../aiChangeFaceStencil/index.vue | 973 + .../components/EditStatus.vue | 90 + .../aiImageToVideoList/components/TagEdit.vue | 39 + .../aiManagement/aiImageToVideoList/config.js | 72 + .../aiManagement/aiImageToVideoList/index.vue | 219 + src/views/aiManagement/aiNovelList/index.vue | 216 + src/views/aiManagement/aiPlazaList/index.vue | 240 + .../components/aiPreviewPicture.vue | 189 + .../aiTradeList/components/previewPicture.vue | 61 + src/views/aiManagement/aiTradeList/index.vue | 682 + .../aiManagement/aimatev2OrderLogs/index.vue | 202 + .../aiManagement/components/UpdateAiPlaza.vue | 202 + .../aiManagement/components/VideoPlayIcon.vue | 33 + .../aiManagement/components/preview-video.vue | 133 + .../acgVidResCfg/components/preview-video.vue | 126 + .../components/previewPicture.vue | 155 + .../components/subsetMediaList.vue | 883 + .../animationManage/acgVidResCfg/index.vue | 772 + .../animeContentList/index.vue | 749 + .../animeList/components/preview-media.vue | 1500 ++ .../components/updateFreeEpisodePopup.vue | 94 + .../animeList/components/updatePricePopup.vue | 136 + .../animeList/components/updateTagsPopup.vue | 225 + src/views/animationManage/animeList/index.vue | 2337 ++ .../animationManage/animeTagsList/index.vue | 764 + .../animationManage/bulkUpload/addMedia.vue | 890 + .../animationManage/bulkUpload/index.vue | 458 + .../animationManage/latitudeList/index.vue | 486 + .../components/previewPicture.vue | 61 + .../animationManage/recommendList/index.vue | 1061 + .../recommendSignature/components/addTag.vue | 293 + .../recommendSignature/index.vue | 296 + .../subsetBatchUpdList/addMedia.vue | 503 + .../subsetBatchUpdList/index.vue | 461 + .../taskList/components/previewPicture.vue | 54 + src/views/animationManage/taskList/index.vue | 713 + .../avCommentConfig/components/addImage.vue | 94 + .../avCommentConfig/components/look.vue | 142 + src/views/avcomment/avCommentConfig/index.vue | 109 + .../avcomment/list/components/edit-video.vue | 357 + src/views/avcomment/list/components/look.vue | 78 + .../list/components/preview-video.vue | 133 + src/views/avcomment/list/index.vue | 314 + .../balanceList/index.vue | 197 + .../components/addOrDebitScore.vue | 102 + .../businessmanList/components/editBill.vue | 225 + .../businessmanList/components/queryInfo.vue | 130 + .../businessmanList/components/seekScore.vue | 133 + .../businessmanList/index.vue | 286 + .../rechargeList/components/edit-desc.vue | 88 + .../rechargeList/index.vue | 372 + .../automaticBilling/components/editBill.vue | 122 + .../automaticBilling/components/queryInfo.vue | 130 + .../automaticBilling/index.vue | 230 + .../bankConfiguration/index.vue | 114 + .../channelBackground/channelBook/index.vue | 187 + .../channelDetails/index.vue | 194 + .../channelManagement/channelCost/index.vue | 131 + .../channelLog/components/edit-log.vue | 106 + .../channelManagement/channelLog/index.vue | 263 + .../components/updateTag.vue | 97 + .../channelManagement/index.vue | 106 + .../channelNumber/components/numberAction.vue | 197 + .../channelManagement/channelNumber/index.vue | 167 + .../components/agentAction.vue | 334 + .../channelProvider/index.vue | 151 + .../channelManagement/channelQuery/index.vue | 241 + .../components/edit-configuration.vue | 100 + .../channelconfiguration/index.vue | 105 + .../actressCollection/index.vue | 93 + .../actressList/components/actressAction.vue | 144 + .../cinemaManagement/actressList/index.vue | 148 + .../cinemaManagement/actressRating/index.vue | 94 + .../components/channelsAction.vue | 56 + .../channelsManagement/index.vue | 146 + .../favoriteHistory/index.vue | 144 + .../movieList/components/filmAction.vue | 210 + .../movieList/components/recommendedPopup.vue | 136 + .../cinemaManagement/movieList/index.vue | 217 + .../recommendedList/index.vue | 145 + .../todayRecommend/components/editToday.vue | 73 + .../cinemaManagement/todayRecommend/index.vue | 133 + .../cinemaManagement/watchHistory/index.vue | 145 + src/views/contentReview/install-styles.js | 5 + src/views/contentReview/overlays.scss | 168 + .../reviewTask/components/IssueFields.vue | 137 + .../components/IssueHandleDialog.vue | 197 + src/views/contentReview/reviewTask/detail.vue | 415 + src/views/contentReview/reviewTask/index.vue | 227 + .../components/WordFormDialog.vue | 110 + .../contentReview/sensitiveWord/index.vue | 264 + src/views/contentReview/styles.scss | 277 + .../discountAreaList/index.vue | 559 + .../discountAreaVideoList/index.vue | 584 + .../components/components/editPrice.vue | 116 + .../audiobook/components/detailPage.vue | 142 + .../audiobook/components/pricePage.vue | 134 + .../audiobook/components/unitPrice.vue | 136 + src/views/fiction/audiobook/index.vue | 422 + .../fiction/audiobookCfg/components/drCfg.vue | 82 + src/views/fiction/audiobookCfg/index.vue | 111 + .../fiction/novel/components/previewPage.vue | 88 + src/views/fiction/novel/index.vue | 226 + src/views/fiction/report/components/check.vue | 189 + .../report/components/previewPicture.vue | 154 + src/views/fiction/report/index.vue | 269 + .../gatheringBalanceList/index.vue | 199 + .../components/addOrDebitScore.vue | 125 + .../components/billAction.vue | 234 + .../components/seekScore.vue | 134 + .../gatheringBusinessmen/index.vue | 269 + .../components/UpdateGroupChat.vue | 133 + .../components/UpdateImgroupmember.vue | 173 + .../components/UpdateImmessage.vue | 171 + .../groupChatManagement/groupList/index.vue | 107 + .../imgroupmemberList/index.vue | 99 + .../immessageList/index.vue | 122 + src/views/home/index.vue | 964 + .../components/editWonderful.vue | 139 + .../hotManagement/findWonderful/index.vue | 92 + .../rankPage/components/editRank.vue | 203 + src/views/hotManagement/rankPage/index.vue | 103 + .../landCfg/components/editPage.vue | 213 + .../landCfg/components/editTemplet.vue | 122 + src/views/landManagement/landCfg/index.vue | 126 + .../landPage/components/addPopup.vue | 158 + src/views/landManagement/landPage/index.vue | 197 + .../login/components/google-verification.vue | 97 + src/views/login/index.vue | 234 + .../feedback/components/check.vue | 146 + .../feedback/components/lfDetails.vue | 164 + .../loufengManagement/feedback/index.vue | 435 + .../louFengList/components/operatingPage.vue | 385 + .../louFengList/components/previewPicture.vue | 154 + .../louFengList/components/upmost.vue | 169 + .../loufengManagement/louFengList/index.vue | 364 + .../loufCfg/components/cityCfg.vue | 86 + .../loufCfg/components/drCfg.vue | 82 + src/views/loufengManagement/loufCfg/index.vue | 121 + .../loufadCfg/components/drCfg.vue | 82 + .../loufadCfg/components/editPage.vue | 291 + .../loufengManagement/loufadCfg/index.vue | 208 + .../comicsList/components/AddOrEdit.vue | 504 + .../components/ComicsDetailView.vue | 100 + .../lsjMediaLibrary/comicsList/index.vue | 364 + src/views/lsjMediaLibrary/config.js | 164 + .../novelList/components/AddOrEdit.vue | 510 + .../novelList/components/NovelDetailView.vue | 349 + src/views/lsjMediaLibrary/novelList/index.vue | 360 + .../postList/components/AddOrEdit.vue | 529 + .../postList/components/PostDetailView.vue | 332 + src/views/lsjMediaLibrary/postList/index.vue | 378 + .../videoList/components/AddOrEdit.vue | 318 + src/views/lsjMediaLibrary/videoList/index.vue | 395 + src/views/main/components/content.vue | 319 + src/views/main/components/header.vue | 188 + src/views/main/components/nav.vue | 120 + src/views/main/components/siderbarItem.vue | 64 + src/views/main/index.vue | 45 + src/views/mediaLibrary/config.js | 280 + .../videoList/components/AddOrEdit.vue | 515 + .../videoList/components/editShowLocation.vue | 67 + src/views/mediaLibrary/videoList/index.vue | 767 + .../happinessPlazaTopList/index.vue | 467 + .../kingKongDistrict/index.vue | 566 + .../moduleConfManagement/moduleList/index.vue | 1243 ++ .../sectionList/index.vue | 856 + .../vidResCfg/components/preview-video.vue | 126 + .../moduleConfManagement/vidResCfg/index.vue | 259 + .../moduleConfManagement/videoList/index.vue | 336 + .../components/PreviewPicture.vue | 142 + .../components/SnapShortTable.vue | 125 + .../components/UpdateStatusPopup.vue | 115 + .../nakedChatBuyList/index.vue | 323 + .../nakedChatFeedback/components/check.vue | 150 + .../components/lfDetails.vue | 164 + .../components/previewPicture.vue | 154 + .../nakedChatFeedback/index.vue | 439 + .../components/preview-video.vue | 133 + .../components/previewPicture.vue | 142 + .../components/updateModulePopup.vue | 101 + .../nakedChatManage/nakedChatList/index.vue | 830 + src/views/officialWebsite/albumList/index.vue | 280 + src/views/officialWebsite/basicData/index.vue | 588 + .../officialWebsite/businessList/index.vue | 211 + src/views/officialWebsite/heroList/index.vue | 270 + src/views/officialWebsite/jobList/index.vue | 179 + src/views/officialWebsite/newsList/index.vue | 447 + .../officialWebsite/partnerList/index.vue | 240 + .../officialWebsite/photographList/index.vue | 377 + .../officialWebsite/recruitFormList/index.vue | 197 + src/views/officialWebsite/tagList/index.vue | 198 + src/views/officialWebsite/videoList/index.vue | 699 + .../bannerActivityList/index.vue | 647 + .../components/currencyAction.vue | 314 + .../productManagement/currencyList/index.vue | 252 + .../gameGlodList/components/goldAction.vue | 211 + .../productManagement/gameGlodList/index.vue | 150 + .../glodList/components/goldAction.vue | 181 + .../productManagement/glodList/index.vue | 124 + .../glodPayList/components/goldAction.vue | 229 + .../productManagement/glodPayList/index.vue | 153 + .../integralConfigure/index.vue | 526 + .../marqueeList/components/addAndEdit.vue | 285 + .../productManagement/marqueeList/index.vue | 261 + .../components/officialAction.vue | 322 + .../productManagement/officialList/index.vue | 249 + .../payMethod/components/channelAction.vue | 292 + .../productManagement/payMethod/index.vue | 158 + .../components/preview-video.vue | 133 + .../preSaleConfigure/index.vue | 664 + .../components/productBenefitAction.vue | 317 + .../productBenefitList/index.vue | 171 + .../components/positionAction.vue | 206 + .../productPositionList/index.vue | 167 + .../promoteUrl/components/promoteAction.vue | 207 + .../productManagement/promoteUrl/index.vue | 141 + .../vipCfg/components/edit.vue | 93 + src/views/productManagement/vipCfg/index.vue | 113 + .../vipProductList/components/vipAction.vue | 1271 ++ .../vipProductList/index.vue | 862 + .../chatLibrary/components/addContent.vue | 110 + src/views/robot/chatLibrary/index.vue | 157 + .../robotConfig/components/addRobotPopup.vue | 198 + src/views/robot/robotConfig/index.vue | 175 + src/views/role/components/roleAction.vue | 288 + src/views/role/index.vue | 201 + .../commentBannerList/index.vue | 506 + .../paymentGuideList/index.vue | 884 + .../vipCardExperiment/index.vue | 1071 + .../checkInCfgList/components/addContent.vue | 159 + .../signinManagement/checkInCfgList/index.vue | 188 + .../signinManagement/checkInList/index.vue | 184 + .../configurationList/index.vue | 271 + src/views/statistics/advAnalysis/index.vue | 198 + .../statistics/clickStatistics/index.vue | 95 + src/views/statistics/goldWater/index.vue | 211 + .../rechargeLog/components/echartPopup.vue | 181 + src/views/statistics/rechargeLog/index.vue | 207 + src/views/statistics/revenueData/index.vue | 137 + src/views/statistics/statistical/index.vue | 211 + src/views/statistics/userToday/index.vue | 582 + src/views/statistics/videoIncome/index.vue | 185 + .../statistics/videoKlGoldStat/index.vue | 136 + .../statistics/videoPayGoldStat/index.vue | 131 + src/views/statistics/withdrawLog/index.vue | 153 + .../components/applicationAction.vue | 69 + .../applicationManagement/index.vue | 107 + .../ipConfig/components/addIpConfig.vue | 130 + src/views/systemManagement/ipConfig/index.vue | 165 + .../systemManagement/systemConfig/index.vue | 1112 + .../components/versionAction.vue | 392 + .../versionManagement/index.vue | 221 + .../emailPush/components/addEmail.vue | 181 + src/views/systemMessage/emailPush/index.vue | 167 + .../messagePush/components/addMessage.vue | 399 + src/views/systemMessage/messagePush/index.vue | 223 + .../advanceOrderList/index.vue | 361 + .../integralExchange/index.vue | 436 + .../rechargeList/components/edit-desc.vue | 88 + .../rechargeList/index.vue | 657 + .../transferList/index.vue | 286 + .../vipCardPurchaseRecord/index.vue | 409 + .../withdrawBank/components/edit-bank.vue | 149 + .../withdrawBank/index.vue | 139 + .../withdrawList/index.vue | 671 + .../components/channelAction.vue | 249 + .../withdrawMethod/components/editTax.vue | 167 + .../withdrawMethod/index.vue | 173 + .../withdrawRefund/components/refund.vue | 122 + .../withdrawRefund/index.vue | 296 + src/views/user/backpackList/index.vue | 303 + .../user/blackList/components/addBlack.vue | 114 + src/views/user/blackList/index.vue | 154 + .../components/question-popup.vue | 148 + src/views/user/commonQuestion/index.vue | 179 + .../feedbackList/components/editFeedback.vue | 108 + .../components/previewPicture.vue | 54 + src/views/user/feedbackList/index.vue | 477 + src/views/user/userFollow/components/add.vue | 88 + src/views/user/userFollow/index.vue | 458 + .../userIpBlock/components/blockAction.vue | 190 + src/views/user/userIpBlock/index.vue | 170 + .../user/userList/components/aiMateTrans.vue | 118 + .../user/userList/components/edit-user.vue | 921 + .../userList/components/gameCodeDialog.vue | 168 + src/views/user/userList/components/qrcode.vue | 92 + .../components/recycleGameBalance.vue | 166 + .../user/userList/components/recycleGold.vue | 176 + .../user/userList/components/unblockPage.vue | 105 + .../userList/components/verification-code.vue | 88 + .../user/userList/components/view-video.vue | 116 + .../user/userList/components/vipInfo.vue | 130 + src/views/user/userList/index.vue | 1649 ++ src/views/user/userLog/index.vue | 186 + src/views/user/userMessageList/index.vue | 369 + src/views/user/userPostsLog/index.vue | 355 + .../components/recommendAction.vue | 135 + src/views/user/userRecommendation/index.vue | 138 + .../userReport/components/comment-popup.vue | 32 + src/views/user/userReport/index.vue | 319 + .../components/resourceAction.vue | 194 + src/views/user/userResource/index.vue | 163 + src/views/user/userWatch/index.vue | 137 + .../videoManagement/activeConfig/index.vue | 237 + .../cityList/components/addTag.vue | 155 + src/views/videoManagement/cityList/index.vue | 155 + .../commentList/components/importComments.vue | 147 + .../components/importComments11.vue | 116 + .../commentList/components/updateComment.vue | 92 + .../videoManagement/commentList/index.vue | 1040 + src/views/videoManagement/emojiList/index.vue | 780 + .../filterManagement/components/addFilter.vue | 87 + .../filterManagement/index.vue | 131 + .../freeVidCfg/components/addFree.vue | 197 + .../videoManagement/freeVidCfg/index.vue | 137 + .../components/previewPicture.vue | 155 + .../goldCoinVideoConfig/index.vue | 703 + .../hotCity/components/addCity.vue | 206 + src/views/videoManagement/hotCity/index.vue | 137 + src/views/videoManagement/pushList/index.vue | 99 + .../quickSearch/components/add.vue | 312 + .../videoManagement/quickSearch/index.vue | 187 + .../recommendSignature/components/addTag.vue | 236 + .../recommendSignature/index.vue | 207 + .../components/resourceAction.vue | 297 + .../videoManagement/resourceManage/index.vue | 219 + .../tagConfiguration/index.vue | 363 + .../tagList/components/addRecommendTag.vue | 243 + .../tagList/components/addTag.vue | 255 + src/views/videoManagement/tagList/index.vue | 401 + .../vidResCfg/components/look.vue | 59 + .../vidResCfg/components/preview-video.vue | 166 + .../vidResCfg/components/previewPicture.vue | 162 + src/views/videoManagement/vidResCfg/index.vue | 792 + .../videoExamine/components/add-video.vue | 645 + .../components/batchAutoPublishing.vue | 211 + .../components/configuration-popup.vue | 68 + .../videoExamine/components/edit-video.vue | 587 + .../videoExamine/components/examine-all.vue | 201 + .../videoExamine/components/examine-popup.vue | 405 + .../videoExamine/components/notPass-list.vue | 219 + .../videoExamine/components/preview-video.vue | 179 + .../components/previewPicture.vue | 202 + .../videoExamine/components/tags-popup.vue | 95 + .../videoManagement/videoExamine/index.vue | 1081 + .../videoHot/components/editPopup.vue | 168 + src/views/videoManagement/videoHot/index.vue | 156 + .../videoList/components/batchEditPopup.vue | 124 + .../videoList/components/edit-video.vue | 1063 + .../components/morePreviewPicture.vue | 198 + .../videoList/components/previewPicture.vue | 198 + .../videoList/components/setPopularity.vue | 198 + .../components/transferPostPopup.vue | 113 + .../components/updateDownloadPopup.vue | 121 + .../components/updateFreeTimePopup.vue | 101 + .../components/updatePublisherPopup.vue | 101 + .../videoList/components/vidHotQuery.vue | 122 + src/views/videoManagement/videoList/index.vue | 2771 +++ .../components/add-video.vue | 257 + .../components/previewPicture.vue | 97 + .../videoTimeOnlineList/index.vue | 386 + src/views/welcome/index.vue | 72 + vue.config.js | 34 + 643 files changed, 178681 insertions(+) create mode 100644 .cursor/rules/commit-standards.mdc create mode 100644 .cursor/settings.json create mode 100644 .cursor/skills/README.md create mode 100644 .cursor/skills/commit-convention/SKILL.md create mode 100644 .cursor/skills/vue2-api-integration/SKILL.md create mode 100644 .cursor/skills/vue2-api-integration/checklist.md create mode 100644 .cursor/skills/vue2-api-integration/examples.md create mode 100644 .cursor/skills/vue2-element-dev/SKILL.md create mode 100644 .cursor/skills/vue2-element-dev/checklist.md create mode 100644 .cursor/skills/vue2-element-dev/examples.md create mode 100644 .cursor/skills/vue2-route-permission/SKILL.md create mode 100644 .cursor/skills/vue2-route-permission/checklist.md create mode 100644 .cursor/skills/vue2-route-permission/examples.md create mode 100644 .env.build create mode 100644 .env.test create mode 100644 .gitignore create mode 100644 README.md create mode 100644 babel.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100755 prod_build.sh create mode 100644 project.md create mode 100644 public/ai-image-v12.html create mode 100644 public/ai-image-v16.html create mode 100644 public/favicon1.ico create mode 100644 public/gif.worker.js create mode 100644 public/icon.ico create mode 100644 public/index.html create mode 100644 public/robots.txt create mode 100755 src/App.vue create mode 100755 src/api/activeManagement.js create mode 100644 src/api/actressManagement.js create mode 100755 src/api/administrators.js create mode 100755 src/api/advertisingManagement.js create mode 100644 src/api/agentDistrictProvider.js create mode 100755 src/api/ai.js create mode 100755 src/api/angentManagement.js create mode 100644 src/api/animation.js create mode 100755 src/api/author.js create mode 100755 src/api/avComment.js create mode 100644 src/api/balance.js create mode 100644 src/api/businessman.js create mode 100755 src/api/channelBackground.js create mode 100755 src/api/channelManagement.js create mode 100644 src/api/contentReview.js create mode 100644 src/api/discountAreaManagement.js create mode 100755 src/api/fiction.js create mode 100644 src/api/groupChatManagement.js create mode 100755 src/api/home.js create mode 100644 src/api/hotManagement.js create mode 100755 src/api/index.js create mode 100755 src/api/landPage.js create mode 100755 src/api/login.js create mode 100644 src/api/loufeng.js create mode 100644 src/api/lsjMediaLib.js create mode 100644 src/api/marquee.js create mode 100644 src/api/mediaLib.js create mode 100644 src/api/moduleConfig.js create mode 100644 src/api/nakedChatManage.js create mode 100644 src/api/officialWebsite.js create mode 100755 src/api/productManagement.js create mode 100644 src/api/robot.js create mode 100644 src/api/shortVideoRecommend.js create mode 100644 src/api/signin.js create mode 100755 src/api/statistics.js create mode 100755 src/api/systemManagement.js create mode 100644 src/api/systemMessage.js create mode 100644 src/api/tagConfigList.js create mode 100755 src/api/transactionManagement.js create mode 100755 src/api/user.js create mode 100755 src/api/videoManagement.js create mode 100755 src/assets/images/1.png create mode 100755 src/assets/images/2.png create mode 100755 src/assets/images/3.png create mode 100755 src/assets/images/5.jpg create mode 100755 src/assets/images/bg.jpeg create mode 100755 src/assets/images/bind.png create mode 100755 src/assets/images/czje.png create mode 100755 src/assets/images/czrs.png create mode 100755 src/assets/images/dl.png create mode 100755 src/assets/images/dsp.png create mode 100755 src/assets/images/fzsj.png create mode 100755 src/assets/images/gm.png create mode 100755 src/assets/images/header-bg.png create mode 100644 src/assets/images/icon.png create mode 100755 src/assets/images/jb.png create mode 100755 src/assets/images/jbtx.png create mode 100755 src/assets/images/timg.jpeg create mode 100755 src/assets/images/tx.png create mode 100755 src/assets/images/user.png create mode 100755 src/assets/images/vip.png create mode 100755 src/assets/images/welcome.jpg create mode 100755 src/assets/images/xf.png create mode 100755 src/assets/images/xfz.png create mode 100755 src/assets/images/yq.png create mode 100755 src/assets/images/zj.png create mode 100755 src/assets/images/zxyh.png create mode 100755 src/assets/scss/base.scss create mode 100755 src/assets/scss/element-variables.scss create mode 100644 src/components/ConfigForms/index.vue create mode 100644 src/components/ConfigTable/index.vue create mode 100644 src/components/Gallery/index.vue create mode 100644 src/components/LongText.vue create mode 100644 src/components/ShowVideo/index.vue create mode 100644 src/components/VueDplayerHls/index.vue create mode 100755 src/components/baseUpload.vue create mode 100755 src/components/baseUploadNew.vue create mode 100755 src/components/baseUploadOld.vue create mode 100755 src/components/batchTagsPopup.vue create mode 100644 src/components/clipboardPic.vue create mode 100644 src/components/commentAction.vue create mode 100755 src/components/cropper.vue create mode 100644 src/components/decrypt-img/index.vue create mode 100644 src/components/decrypt-img/tool.js create mode 100644 src/components/globalUploader.vue create mode 100755 src/components/imgLoad.vue create mode 100644 src/components/imgsUpload.vue create mode 100755 src/components/media-popup.vue create mode 100644 src/components/mediaTagSelector.vue create mode 100644 src/components/multipleChannels.vue create mode 100644 src/components/radioChannel.vue create mode 100644 src/components/reasonAction.vue create mode 100644 src/components/rich-editor/index.vue create mode 100644 src/components/rich-preview/content.vue create mode 100644 src/components/rich-preview/index.vue create mode 100644 src/components/selectReasonAction.vue create mode 100644 src/components/tagSelector.vue create mode 100755 src/main.js create mode 100755 src/permission.js create mode 100644 src/plugins/LoginPlugin.js create mode 100755 src/router/activity.js create mode 100644 src/router/actress.js create mode 100755 src/router/administrators.js create mode 100755 src/router/advertising.js create mode 100755 src/router/agent.js create mode 100644 src/router/agentDistrictProvider.js create mode 100644 src/router/ai.js create mode 100644 src/router/animation.js create mode 100755 src/router/avcomment.js create mode 100755 src/router/baseRouter.js create mode 100644 src/router/business.js create mode 100755 src/router/channel.js create mode 100755 src/router/channelBack.js create mode 100644 src/router/cinema.js create mode 100644 src/router/contentReview.js create mode 100644 src/router/discountAreaManagement.js create mode 100644 src/router/fiction.js create mode 100644 src/router/gathering.js create mode 100644 src/router/groupChatManagement.js create mode 100644 src/router/hotSpot.js create mode 100755 src/router/index.js create mode 100644 src/router/land.js create mode 100644 src/router/loufeng.js create mode 100644 src/router/lsjMediaLibRouter.js create mode 100755 src/router/mainChild.js create mode 100644 src/router/mediaLibRouter.js create mode 100644 src/router/moduleConfig.js create mode 100644 src/router/nakedChat.js create mode 100644 src/router/officialWebsite.js create mode 100755 src/router/permissionRouter.js create mode 100755 src/router/product.js create mode 100644 src/router/robot.js create mode 100644 src/router/signin.js create mode 100755 src/router/statistics.js create mode 100755 src/router/system.js create mode 100644 src/router/systemMessage.js create mode 100755 src/router/transaction.js create mode 100755 src/router/user.js create mode 100755 src/router/video.js create mode 100755 src/stroe/actions.js create mode 100755 src/stroe/getters.js create mode 100755 src/stroe/index.js create mode 100644 src/stroe/modules/index.js create mode 100644 src/stroe/modules/login.js create mode 100755 src/stroe/mutations.js create mode 100755 src/stroe/state.js create mode 100644 src/utils/common.js create mode 100644 src/utils/compressImage.js create mode 100644 src/utils/contentReview.js create mode 100644 src/utils/eventBus.js create mode 100755 src/utils/filter.js create mode 100755 src/utils/gloabalComponents.js create mode 100755 src/utils/global.js create mode 100644 src/utils/index.js create mode 100755 src/utils/localStroage.js create mode 100644 src/utils/phone.js create mode 100644 src/utils/picTobase64.js create mode 100644 src/utils/previewImages.js create mode 100755 src/utils/request.js create mode 100644 src/utils/safeJsonParse.js create mode 100755 src/utils/secretFn.js create mode 100755 src/utils/serverUrlConfig.js create mode 100644 src/utils/uploadConfig.js create mode 100755 src/utils/validator.js create mode 100755 src/views/accountManagement/numberManagement/components/addTag.vue create mode 100755 src/views/accountManagement/numberManagement/index.vue create mode 100644 src/views/activityManagement/buyPage/components/codeAction.vue create mode 100644 src/views/activityManagement/buyPage/components/joinNum.vue create mode 100644 src/views/activityManagement/buyPage/index.vue create mode 100644 src/views/activityManagement/configurationList/components/addContent.vue create mode 100644 src/views/activityManagement/configurationList/components/previewPicture.vue create mode 100644 src/views/activityManagement/configurationList/index.vue create mode 100644 src/views/activityManagement/dailyTaskList/components/addContent.vue create mode 100644 src/views/activityManagement/dailyTaskList/index.vue create mode 100644 src/views/activityManagement/goldeneggLog/index.vue create mode 100644 src/views/activityManagement/growingTaskList/components/addContent.vue create mode 100644 src/views/activityManagement/growingTaskList/components/detailDialog.vue create mode 100644 src/views/activityManagement/growingTaskList/index.vue create mode 100644 src/views/activityManagement/listOfPrizes/components/addContent.vue create mode 100644 src/views/activityManagement/listOfPrizes/index.vue create mode 100644 src/views/activityManagement/lotteryList/index.vue create mode 100644 src/views/activityManagement/newActivityList/index.vue create mode 100644 src/views/activityManagement/oneTaskList/components/addContent.vue create mode 100644 src/views/activityManagement/oneTaskList/index.vue create mode 100755 src/views/activityManagement/prizepoolList/components/prizeListAction.vue create mode 100644 src/views/activityManagement/prizepoolList/index.vue create mode 100644 src/views/activityManagement/redemptionCode/components/codeAction.vue create mode 100644 src/views/activityManagement/redemptionCode/index.vue create mode 100644 src/views/activityManagement/redemptionConfiguration/components/typeAction.vue create mode 100644 src/views/activityManagement/redemptionConfiguration/index.vue create mode 100644 src/views/activityManagement/redemptionLog/index.vue create mode 100644 src/views/activityManagement/redemptionPrize/components/prizeAction.vue create mode 100644 src/views/activityManagement/redemptionPrize/index.vue create mode 100644 src/views/activityManagement/tenderActivity/index.vue create mode 100755 src/views/activityManagement/webActivity/components/activeAction.vue create mode 100755 src/views/activityManagement/webActivity/index.vue create mode 100644 src/views/actressManagement/actressList/index.vue create mode 100755 src/views/administrators/adminList/components/addAdmin.vue create mode 100755 src/views/administrators/adminList/index.vue create mode 100644 src/views/administrators/adminLog/cmoponents/editLog.vue create mode 100755 src/views/administrators/adminLog/components/editLog.vue create mode 100755 src/views/administrators/adminLog/index.vue create mode 100644 src/views/advertisingManagement/adList/components/addPage.vue create mode 100755 src/views/advertisingManagement/adList/index.vue create mode 100755 src/views/advertisingManagement/announcementManagement/components/annouAction.vue create mode 100755 src/views/advertisingManagement/announcementManagement/index.vue create mode 100755 src/views/advertisingManagement/clickLog/index.vue create mode 100644 src/views/agentDistrictProvider/adReview/components/check.vue create mode 100644 src/views/agentDistrictProvider/adReview/index.vue create mode 100644 src/views/agentDistrictProvider/dayTable/define.js create mode 100644 src/views/agentDistrictProvider/dayTable/index.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/addDistrict.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/addSubDistrict.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/editPage/components/baseCfg.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/editPage/components/ldyCfg.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/editPage/components/rechargeCfg.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/editPage/components/userCfg.vue create mode 100755 src/views/agentDistrictProvider/districtProvider/components/editPage/editDistrict.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/linkPopup.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/payHisPopup.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/rechagePopup.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/statDialy.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/statSettlement.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/subDisc.vue create mode 100644 src/views/agentDistrictProvider/districtProvider/components/widthdrawPopup.vue create mode 100755 src/views/agentDistrictProvider/districtProvider/index.vue create mode 100644 src/views/agentDistrictProvider/domainList/components/editPage.vue create mode 100644 src/views/agentDistrictProvider/domainList/index.vue create mode 100644 src/views/agentDistrictProvider/manageAuthrity/components/roleAction.vue create mode 100644 src/views/agentDistrictProvider/manageAuthrity/index.vue create mode 100644 src/views/agentDistrictProvider/monthTable/define.js create mode 100644 src/views/agentDistrictProvider/monthTable/index.vue create mode 100755 src/views/agentManagement/domainManagement/components/addTag.vue create mode 100755 src/views/agentManagement/domainManagement/index.vue create mode 100755 src/views/agentManagement/extensionLog/index.vue create mode 100755 src/views/agentManagement/promotionHierarchy/index.vue create mode 100755 src/views/agentManagement/proxyList/components/detailRecord.vue create mode 100755 src/views/agentManagement/proxyList/index.vue create mode 100644 src/views/aiManagement/AIDrawList/components/EditStatus.vue create mode 100644 src/views/aiManagement/AIDrawList/components/TagEdit.vue create mode 100644 src/views/aiManagement/AIDrawList/config.js create mode 100644 src/views/aiManagement/AIDrawList/index.vue create mode 100644 src/views/aiManagement/AiTemplate/editOrAdd.vue create mode 100644 src/views/aiManagement/AiTemplate/index.vue create mode 100644 src/views/aiManagement/aiChangeFaceImgList/components/aiPreviewPicture.vue create mode 100644 src/views/aiManagement/aiChangeFaceImgList/components/previewPicture.vue create mode 100644 src/views/aiManagement/aiChangeFaceImgList/index.vue create mode 100644 src/views/aiManagement/aiChangeFaceList/components/previewPicture.vue create mode 100644 src/views/aiManagement/aiChangeFaceList/index.vue create mode 100644 src/views/aiManagement/aiChangeFaceStencil/index.vue create mode 100644 src/views/aiManagement/aiImageToVideoList/components/EditStatus.vue create mode 100644 src/views/aiManagement/aiImageToVideoList/components/TagEdit.vue create mode 100644 src/views/aiManagement/aiImageToVideoList/config.js create mode 100644 src/views/aiManagement/aiImageToVideoList/index.vue create mode 100644 src/views/aiManagement/aiNovelList/index.vue create mode 100644 src/views/aiManagement/aiPlazaList/index.vue create mode 100644 src/views/aiManagement/aiTradeList/components/aiPreviewPicture.vue create mode 100644 src/views/aiManagement/aiTradeList/components/previewPicture.vue create mode 100644 src/views/aiManagement/aiTradeList/index.vue create mode 100644 src/views/aiManagement/aimatev2OrderLogs/index.vue create mode 100644 src/views/aiManagement/components/UpdateAiPlaza.vue create mode 100644 src/views/aiManagement/components/VideoPlayIcon.vue create mode 100644 src/views/aiManagement/components/preview-video.vue create mode 100644 src/views/animationManage/acgVidResCfg/components/preview-video.vue create mode 100644 src/views/animationManage/acgVidResCfg/components/previewPicture.vue create mode 100755 src/views/animationManage/acgVidResCfg/components/subsetMediaList.vue create mode 100644 src/views/animationManage/acgVidResCfg/index.vue create mode 100644 src/views/animationManage/animeContentList/index.vue create mode 100755 src/views/animationManage/animeList/components/preview-media.vue create mode 100644 src/views/animationManage/animeList/components/updateFreeEpisodePopup.vue create mode 100644 src/views/animationManage/animeList/components/updatePricePopup.vue create mode 100644 src/views/animationManage/animeList/components/updateTagsPopup.vue create mode 100644 src/views/animationManage/animeList/index.vue create mode 100644 src/views/animationManage/animeTagsList/index.vue create mode 100644 src/views/animationManage/bulkUpload/addMedia.vue create mode 100644 src/views/animationManage/bulkUpload/index.vue create mode 100644 src/views/animationManage/latitudeList/index.vue create mode 100644 src/views/animationManage/recommendList/components/previewPicture.vue create mode 100644 src/views/animationManage/recommendList/index.vue create mode 100755 src/views/animationManage/recommendSignature/components/addTag.vue create mode 100644 src/views/animationManage/recommendSignature/index.vue create mode 100644 src/views/animationManage/subsetBatchUpdList/addMedia.vue create mode 100644 src/views/animationManage/subsetBatchUpdList/index.vue create mode 100644 src/views/animationManage/taskList/components/previewPicture.vue create mode 100644 src/views/animationManage/taskList/index.vue create mode 100755 src/views/avcomment/avCommentConfig/components/addImage.vue create mode 100644 src/views/avcomment/avCommentConfig/components/look.vue create mode 100755 src/views/avcomment/avCommentConfig/index.vue create mode 100755 src/views/avcomment/list/components/edit-video.vue create mode 100644 src/views/avcomment/list/components/look.vue create mode 100644 src/views/avcomment/list/components/preview-video.vue create mode 100755 src/views/avcomment/list/index.vue create mode 100644 src/views/businessmanManagement/balanceList/index.vue create mode 100644 src/views/businessmanManagement/businessmanList/components/addOrDebitScore.vue create mode 100644 src/views/businessmanManagement/businessmanList/components/editBill.vue create mode 100644 src/views/businessmanManagement/businessmanList/components/queryInfo.vue create mode 100644 src/views/businessmanManagement/businessmanList/components/seekScore.vue create mode 100644 src/views/businessmanManagement/businessmanList/index.vue create mode 100755 src/views/businessmanManagement/rechargeList/components/edit-desc.vue create mode 100755 src/views/businessmanManagement/rechargeList/index.vue create mode 100644 src/views/channelBackground/automaticBilling/components/editBill.vue create mode 100644 src/views/channelBackground/automaticBilling/components/queryInfo.vue create mode 100644 src/views/channelBackground/automaticBilling/index.vue create mode 100644 src/views/channelBackground/bankConfiguration/index.vue create mode 100755 src/views/channelBackground/channelBook/index.vue create mode 100755 src/views/channelBackground/channelDetails/index.vue create mode 100755 src/views/channelManagement/channelCost/index.vue create mode 100755 src/views/channelManagement/channelLog/components/edit-log.vue create mode 100755 src/views/channelManagement/channelLog/index.vue create mode 100755 src/views/channelManagement/channelManagement/components/updateTag.vue create mode 100755 src/views/channelManagement/channelManagement/index.vue create mode 100755 src/views/channelManagement/channelNumber/components/numberAction.vue create mode 100755 src/views/channelManagement/channelNumber/index.vue create mode 100755 src/views/channelManagement/channelProvider/components/agentAction.vue create mode 100755 src/views/channelManagement/channelProvider/index.vue create mode 100755 src/views/channelManagement/channelQuery/index.vue create mode 100755 src/views/channelManagement/channelconfiguration/components/edit-configuration.vue create mode 100755 src/views/channelManagement/channelconfiguration/index.vue create mode 100644 src/views/cinemaManagement/actressCollection/index.vue create mode 100644 src/views/cinemaManagement/actressList/components/actressAction.vue create mode 100644 src/views/cinemaManagement/actressList/index.vue create mode 100644 src/views/cinemaManagement/actressRating/index.vue create mode 100644 src/views/cinemaManagement/channelsManagement/components/channelsAction.vue create mode 100644 src/views/cinemaManagement/channelsManagement/index.vue create mode 100644 src/views/cinemaManagement/favoriteHistory/index.vue create mode 100644 src/views/cinemaManagement/movieList/components/filmAction.vue create mode 100644 src/views/cinemaManagement/movieList/components/recommendedPopup.vue create mode 100644 src/views/cinemaManagement/movieList/index.vue create mode 100644 src/views/cinemaManagement/recommendedList/index.vue create mode 100644 src/views/cinemaManagement/todayRecommend/components/editToday.vue create mode 100644 src/views/cinemaManagement/todayRecommend/index.vue create mode 100644 src/views/cinemaManagement/watchHistory/index.vue create mode 100644 src/views/contentReview/install-styles.js create mode 100644 src/views/contentReview/overlays.scss create mode 100644 src/views/contentReview/reviewTask/components/IssueFields.vue create mode 100644 src/views/contentReview/reviewTask/components/IssueHandleDialog.vue create mode 100644 src/views/contentReview/reviewTask/detail.vue create mode 100644 src/views/contentReview/reviewTask/index.vue create mode 100644 src/views/contentReview/sensitiveWord/components/WordFormDialog.vue create mode 100644 src/views/contentReview/sensitiveWord/index.vue create mode 100644 src/views/contentReview/styles.scss create mode 100644 src/views/discountAreaManagement/discountAreaList/index.vue create mode 100644 src/views/discountAreaManagement/discountAreaVideoList/index.vue create mode 100644 src/views/fiction/audiobook/components/components/editPrice.vue create mode 100755 src/views/fiction/audiobook/components/detailPage.vue create mode 100644 src/views/fiction/audiobook/components/pricePage.vue create mode 100644 src/views/fiction/audiobook/components/unitPrice.vue create mode 100644 src/views/fiction/audiobook/index.vue create mode 100644 src/views/fiction/audiobookCfg/components/drCfg.vue create mode 100644 src/views/fiction/audiobookCfg/index.vue create mode 100644 src/views/fiction/novel/components/previewPage.vue create mode 100644 src/views/fiction/novel/index.vue create mode 100644 src/views/fiction/report/components/check.vue create mode 100644 src/views/fiction/report/components/previewPicture.vue create mode 100644 src/views/fiction/report/index.vue create mode 100644 src/views/gatheringManagement/gatheringBalanceList/index.vue create mode 100644 src/views/gatheringManagement/gatheringBusinessmen/components/addOrDebitScore.vue create mode 100644 src/views/gatheringManagement/gatheringBusinessmen/components/billAction.vue create mode 100644 src/views/gatheringManagement/gatheringBusinessmen/components/seekScore.vue create mode 100644 src/views/gatheringManagement/gatheringBusinessmen/index.vue create mode 100644 src/views/groupChatManagement/components/UpdateGroupChat.vue create mode 100644 src/views/groupChatManagement/components/UpdateImgroupmember.vue create mode 100644 src/views/groupChatManagement/components/UpdateImmessage.vue create mode 100644 src/views/groupChatManagement/groupList/index.vue create mode 100644 src/views/groupChatManagement/imgroupmemberList/index.vue create mode 100644 src/views/groupChatManagement/immessageList/index.vue create mode 100755 src/views/home/index.vue create mode 100644 src/views/hotManagement/findWonderful/components/editWonderful.vue create mode 100644 src/views/hotManagement/findWonderful/index.vue create mode 100644 src/views/hotManagement/rankPage/components/editRank.vue create mode 100644 src/views/hotManagement/rankPage/index.vue create mode 100644 src/views/landManagement/landCfg/components/editPage.vue create mode 100644 src/views/landManagement/landCfg/components/editTemplet.vue create mode 100644 src/views/landManagement/landCfg/index.vue create mode 100644 src/views/landManagement/landPage/components/addPopup.vue create mode 100644 src/views/landManagement/landPage/index.vue create mode 100755 src/views/login/components/google-verification.vue create mode 100755 src/views/login/index.vue create mode 100644 src/views/loufengManagement/feedback/components/check.vue create mode 100755 src/views/loufengManagement/feedback/components/lfDetails.vue create mode 100644 src/views/loufengManagement/feedback/index.vue create mode 100755 src/views/loufengManagement/louFengList/components/operatingPage.vue create mode 100644 src/views/loufengManagement/louFengList/components/previewPicture.vue create mode 100644 src/views/loufengManagement/louFengList/components/upmost.vue create mode 100644 src/views/loufengManagement/louFengList/index.vue create mode 100644 src/views/loufengManagement/loufCfg/components/cityCfg.vue create mode 100644 src/views/loufengManagement/loufCfg/components/drCfg.vue create mode 100644 src/views/loufengManagement/loufCfg/index.vue create mode 100644 src/views/loufengManagement/loufadCfg/components/drCfg.vue create mode 100755 src/views/loufengManagement/loufadCfg/components/editPage.vue create mode 100644 src/views/loufengManagement/loufadCfg/index.vue create mode 100644 src/views/lsjMediaLibrary/comicsList/components/AddOrEdit.vue create mode 100644 src/views/lsjMediaLibrary/comicsList/components/ComicsDetailView.vue create mode 100644 src/views/lsjMediaLibrary/comicsList/index.vue create mode 100644 src/views/lsjMediaLibrary/config.js create mode 100644 src/views/lsjMediaLibrary/novelList/components/AddOrEdit.vue create mode 100644 src/views/lsjMediaLibrary/novelList/components/NovelDetailView.vue create mode 100644 src/views/lsjMediaLibrary/novelList/index.vue create mode 100644 src/views/lsjMediaLibrary/postList/components/AddOrEdit.vue create mode 100644 src/views/lsjMediaLibrary/postList/components/PostDetailView.vue create mode 100644 src/views/lsjMediaLibrary/postList/index.vue create mode 100644 src/views/lsjMediaLibrary/videoList/components/AddOrEdit.vue create mode 100644 src/views/lsjMediaLibrary/videoList/index.vue create mode 100755 src/views/main/components/content.vue create mode 100755 src/views/main/components/header.vue create mode 100755 src/views/main/components/nav.vue create mode 100755 src/views/main/components/siderbarItem.vue create mode 100755 src/views/main/index.vue create mode 100644 src/views/mediaLibrary/config.js create mode 100644 src/views/mediaLibrary/videoList/components/AddOrEdit.vue create mode 100644 src/views/mediaLibrary/videoList/components/editShowLocation.vue create mode 100644 src/views/mediaLibrary/videoList/index.vue create mode 100644 src/views/moduleConfManagement/happinessPlazaTopList/index.vue create mode 100644 src/views/moduleConfManagement/kingKongDistrict/index.vue create mode 100644 src/views/moduleConfManagement/moduleList/index.vue create mode 100644 src/views/moduleConfManagement/sectionList/index.vue create mode 100644 src/views/moduleConfManagement/vidResCfg/components/preview-video.vue create mode 100644 src/views/moduleConfManagement/vidResCfg/index.vue create mode 100644 src/views/moduleConfManagement/videoList/index.vue create mode 100644 src/views/nakedChatManage/nakedChatBuyList/components/PreviewPicture.vue create mode 100644 src/views/nakedChatManage/nakedChatBuyList/components/SnapShortTable.vue create mode 100644 src/views/nakedChatManage/nakedChatBuyList/components/UpdateStatusPopup.vue create mode 100644 src/views/nakedChatManage/nakedChatBuyList/index.vue create mode 100644 src/views/nakedChatManage/nakedChatFeedback/components/check.vue create mode 100755 src/views/nakedChatManage/nakedChatFeedback/components/lfDetails.vue create mode 100644 src/views/nakedChatManage/nakedChatFeedback/components/previewPicture.vue create mode 100644 src/views/nakedChatManage/nakedChatFeedback/index.vue create mode 100644 src/views/nakedChatManage/nakedChatList/components/preview-video.vue create mode 100644 src/views/nakedChatManage/nakedChatList/components/previewPicture.vue create mode 100644 src/views/nakedChatManage/nakedChatList/components/updateModulePopup.vue create mode 100644 src/views/nakedChatManage/nakedChatList/index.vue create mode 100644 src/views/officialWebsite/albumList/index.vue create mode 100644 src/views/officialWebsite/basicData/index.vue create mode 100644 src/views/officialWebsite/businessList/index.vue create mode 100644 src/views/officialWebsite/heroList/index.vue create mode 100644 src/views/officialWebsite/jobList/index.vue create mode 100644 src/views/officialWebsite/newsList/index.vue create mode 100644 src/views/officialWebsite/partnerList/index.vue create mode 100644 src/views/officialWebsite/photographList/index.vue create mode 100644 src/views/officialWebsite/recruitFormList/index.vue create mode 100644 src/views/officialWebsite/tagList/index.vue create mode 100644 src/views/officialWebsite/videoList/index.vue create mode 100644 src/views/productManagement/bannerActivityList/index.vue create mode 100755 src/views/productManagement/currencyList/components/currencyAction.vue create mode 100644 src/views/productManagement/currencyList/index.vue create mode 100755 src/views/productManagement/gameGlodList/components/goldAction.vue create mode 100755 src/views/productManagement/gameGlodList/index.vue create mode 100755 src/views/productManagement/glodList/components/goldAction.vue create mode 100755 src/views/productManagement/glodList/index.vue create mode 100755 src/views/productManagement/glodPayList/components/goldAction.vue create mode 100755 src/views/productManagement/glodPayList/index.vue create mode 100644 src/views/productManagement/integralConfigure/index.vue create mode 100644 src/views/productManagement/marqueeList/components/addAndEdit.vue create mode 100644 src/views/productManagement/marqueeList/index.vue create mode 100755 src/views/productManagement/officialList/components/officialAction.vue create mode 100755 src/views/productManagement/officialList/index.vue create mode 100755 src/views/productManagement/payMethod/components/channelAction.vue create mode 100755 src/views/productManagement/payMethod/index.vue create mode 100644 src/views/productManagement/preSaleConfigure/components/preview-video.vue create mode 100644 src/views/productManagement/preSaleConfigure/index.vue create mode 100755 src/views/productManagement/productBenefitList/components/productBenefitAction.vue create mode 100755 src/views/productManagement/productBenefitList/index.vue create mode 100755 src/views/productManagement/productPositionList/components/positionAction.vue create mode 100755 src/views/productManagement/productPositionList/index.vue create mode 100755 src/views/productManagement/promoteUrl/components/promoteAction.vue create mode 100755 src/views/productManagement/promoteUrl/index.vue create mode 100644 src/views/productManagement/vipCfg/components/edit.vue create mode 100644 src/views/productManagement/vipCfg/index.vue create mode 100755 src/views/productManagement/vipProductList/components/vipAction.vue create mode 100755 src/views/productManagement/vipProductList/index.vue create mode 100644 src/views/robot/chatLibrary/components/addContent.vue create mode 100644 src/views/robot/chatLibrary/index.vue create mode 100644 src/views/robot/robotConfig/components/addRobotPopup.vue create mode 100644 src/views/robot/robotConfig/index.vue create mode 100755 src/views/role/components/roleAction.vue create mode 100755 src/views/role/index.vue create mode 100644 src/views/shortVideoRecommend/commentBannerList/index.vue create mode 100644 src/views/shortVideoRecommend/paymentGuideList/index.vue create mode 100644 src/views/shortVideoRecommend/vipCardExperiment/index.vue create mode 100644 src/views/signinManagement/checkInCfgList/components/addContent.vue create mode 100644 src/views/signinManagement/checkInCfgList/index.vue create mode 100644 src/views/signinManagement/checkInList/index.vue create mode 100644 src/views/signinManagement/configurationList/index.vue create mode 100644 src/views/statistics/advAnalysis/index.vue create mode 100755 src/views/statistics/clickStatistics/index.vue create mode 100755 src/views/statistics/goldWater/index.vue create mode 100644 src/views/statistics/rechargeLog/components/echartPopup.vue create mode 100755 src/views/statistics/rechargeLog/index.vue create mode 100755 src/views/statistics/revenueData/index.vue create mode 100755 src/views/statistics/statistical/index.vue create mode 100755 src/views/statistics/userToday/index.vue create mode 100755 src/views/statistics/videoIncome/index.vue create mode 100755 src/views/statistics/videoKlGoldStat/index.vue create mode 100755 src/views/statistics/videoPayGoldStat/index.vue create mode 100755 src/views/statistics/withdrawLog/index.vue create mode 100644 src/views/systemManagement/applicationManagement/components/applicationAction.vue create mode 100644 src/views/systemManagement/applicationManagement/index.vue create mode 100755 src/views/systemManagement/ipConfig/components/addIpConfig.vue create mode 100755 src/views/systemManagement/ipConfig/index.vue create mode 100644 src/views/systemManagement/systemConfig/index.vue create mode 100755 src/views/systemManagement/versionManagement/components/versionAction.vue create mode 100755 src/views/systemManagement/versionManagement/index.vue create mode 100644 src/views/systemMessage/emailPush/components/addEmail.vue create mode 100644 src/views/systemMessage/emailPush/index.vue create mode 100644 src/views/systemMessage/messagePush/components/addMessage.vue create mode 100644 src/views/systemMessage/messagePush/index.vue create mode 100644 src/views/transactionManagement/advanceOrderList/index.vue create mode 100644 src/views/transactionManagement/integralExchange/index.vue create mode 100755 src/views/transactionManagement/rechargeList/components/edit-desc.vue create mode 100755 src/views/transactionManagement/rechargeList/index.vue create mode 100644 src/views/transactionManagement/transferList/index.vue create mode 100644 src/views/transactionManagement/vipCardPurchaseRecord/index.vue create mode 100755 src/views/transactionManagement/withdrawBank/components/edit-bank.vue create mode 100755 src/views/transactionManagement/withdrawBank/index.vue create mode 100755 src/views/transactionManagement/withdrawList/index.vue create mode 100755 src/views/transactionManagement/withdrawMethod/components/channelAction.vue create mode 100755 src/views/transactionManagement/withdrawMethod/components/editTax.vue create mode 100755 src/views/transactionManagement/withdrawMethod/index.vue create mode 100644 src/views/transactionManagement/withdrawRefund/components/refund.vue create mode 100644 src/views/transactionManagement/withdrawRefund/index.vue create mode 100644 src/views/user/backpackList/index.vue create mode 100755 src/views/user/blackList/components/addBlack.vue create mode 100755 src/views/user/blackList/index.vue create mode 100755 src/views/user/commonQuestion/components/question-popup.vue create mode 100755 src/views/user/commonQuestion/index.vue create mode 100755 src/views/user/feedbackList/components/editFeedback.vue create mode 100644 src/views/user/feedbackList/components/previewPicture.vue create mode 100755 src/views/user/feedbackList/index.vue create mode 100755 src/views/user/userFollow/components/add.vue create mode 100755 src/views/user/userFollow/index.vue create mode 100755 src/views/user/userIpBlock/components/blockAction.vue create mode 100755 src/views/user/userIpBlock/index.vue create mode 100755 src/views/user/userList/components/aiMateTrans.vue create mode 100755 src/views/user/userList/components/edit-user.vue create mode 100644 src/views/user/userList/components/gameCodeDialog.vue create mode 100644 src/views/user/userList/components/qrcode.vue create mode 100755 src/views/user/userList/components/recycleGameBalance.vue create mode 100755 src/views/user/userList/components/recycleGold.vue create mode 100644 src/views/user/userList/components/unblockPage.vue create mode 100644 src/views/user/userList/components/verification-code.vue create mode 100755 src/views/user/userList/components/view-video.vue create mode 100755 src/views/user/userList/components/vipInfo.vue create mode 100755 src/views/user/userList/index.vue create mode 100755 src/views/user/userLog/index.vue create mode 100644 src/views/user/userMessageList/index.vue create mode 100755 src/views/user/userPostsLog/index.vue create mode 100644 src/views/user/userRecommendation/components/recommendAction.vue create mode 100644 src/views/user/userRecommendation/index.vue create mode 100755 src/views/user/userReport/components/comment-popup.vue create mode 100755 src/views/user/userReport/index.vue create mode 100755 src/views/user/userResource/components/resourceAction.vue create mode 100755 src/views/user/userResource/index.vue create mode 100755 src/views/user/userWatch/index.vue create mode 100644 src/views/videoManagement/activeConfig/index.vue create mode 100755 src/views/videoManagement/cityList/components/addTag.vue create mode 100755 src/views/videoManagement/cityList/index.vue create mode 100644 src/views/videoManagement/commentList/components/importComments.vue create mode 100644 src/views/videoManagement/commentList/components/importComments11.vue create mode 100644 src/views/videoManagement/commentList/components/updateComment.vue create mode 100755 src/views/videoManagement/commentList/index.vue create mode 100644 src/views/videoManagement/emojiList/index.vue create mode 100755 src/views/videoManagement/filterManagement/components/addFilter.vue create mode 100755 src/views/videoManagement/filterManagement/index.vue create mode 100755 src/views/videoManagement/freeVidCfg/components/addFree.vue create mode 100755 src/views/videoManagement/freeVidCfg/index.vue create mode 100644 src/views/videoManagement/goldCoinVideoConfig/components/previewPicture.vue create mode 100644 src/views/videoManagement/goldCoinVideoConfig/index.vue create mode 100755 src/views/videoManagement/hotCity/components/addCity.vue create mode 100755 src/views/videoManagement/hotCity/index.vue create mode 100644 src/views/videoManagement/pushList/index.vue create mode 100755 src/views/videoManagement/quickSearch/components/add.vue create mode 100755 src/views/videoManagement/quickSearch/index.vue create mode 100755 src/views/videoManagement/recommendSignature/components/addTag.vue create mode 100644 src/views/videoManagement/recommendSignature/index.vue create mode 100755 src/views/videoManagement/resourceManage/components/resourceAction.vue create mode 100755 src/views/videoManagement/resourceManage/index.vue create mode 100644 src/views/videoManagement/tagConfiguration/index.vue create mode 100644 src/views/videoManagement/tagList/components/addRecommendTag.vue create mode 100755 src/views/videoManagement/tagList/components/addTag.vue create mode 100755 src/views/videoManagement/tagList/index.vue create mode 100644 src/views/videoManagement/vidResCfg/components/look.vue create mode 100644 src/views/videoManagement/vidResCfg/components/preview-video.vue create mode 100644 src/views/videoManagement/vidResCfg/components/previewPicture.vue create mode 100644 src/views/videoManagement/vidResCfg/index.vue create mode 100755 src/views/videoManagement/videoExamine/components/add-video.vue create mode 100755 src/views/videoManagement/videoExamine/components/batchAutoPublishing.vue create mode 100644 src/views/videoManagement/videoExamine/components/configuration-popup.vue create mode 100755 src/views/videoManagement/videoExamine/components/edit-video.vue create mode 100644 src/views/videoManagement/videoExamine/components/examine-all.vue create mode 100755 src/views/videoManagement/videoExamine/components/examine-popup.vue create mode 100644 src/views/videoManagement/videoExamine/components/notPass-list.vue create mode 100644 src/views/videoManagement/videoExamine/components/preview-video.vue create mode 100644 src/views/videoManagement/videoExamine/components/previewPicture.vue create mode 100755 src/views/videoManagement/videoExamine/components/tags-popup.vue create mode 100755 src/views/videoManagement/videoExamine/index.vue create mode 100755 src/views/videoManagement/videoHot/components/editPopup.vue create mode 100755 src/views/videoManagement/videoHot/index.vue create mode 100644 src/views/videoManagement/videoList/components/batchEditPopup.vue create mode 100755 src/views/videoManagement/videoList/components/edit-video.vue create mode 100644 src/views/videoManagement/videoList/components/morePreviewPicture.vue create mode 100644 src/views/videoManagement/videoList/components/previewPicture.vue create mode 100644 src/views/videoManagement/videoList/components/setPopularity.vue create mode 100644 src/views/videoManagement/videoList/components/transferPostPopup.vue create mode 100644 src/views/videoManagement/videoList/components/updateDownloadPopup.vue create mode 100644 src/views/videoManagement/videoList/components/updateFreeTimePopup.vue create mode 100644 src/views/videoManagement/videoList/components/updatePublisherPopup.vue create mode 100644 src/views/videoManagement/videoList/components/vidHotQuery.vue create mode 100755 src/views/videoManagement/videoList/index.vue create mode 100755 src/views/videoManagement/videoTimeOnlineList/components/add-video.vue create mode 100644 src/views/videoManagement/videoTimeOnlineList/components/previewPicture.vue create mode 100755 src/views/videoManagement/videoTimeOnlineList/index.vue create mode 100755 src/views/welcome/index.vue create mode 100644 vue.config.js diff --git a/.cursor/rules/commit-standards.mdc b/.cursor/rules/commit-standards.mdc new file mode 100644 index 0000000..25f5bcc --- /dev/null +++ b/.cursor/rules/commit-standards.mdc @@ -0,0 +1,12 @@ +--- +description: 用户要求 git commit、提交代码、写 commit message 或创建提交时,必须先加载 commit-convention skill 并严格遵守 +alwaysApply: false +--- + +# Git 提交规范自动激活 + +当用户要求**提交代码**、**git commit**、**写提交说明**或执行提交流程时: + +1. 必须先加载 `.cursor/skills/commit-convention/SKILL.md`。 +2. Agent 代提交时 subject **必须**以 `[Ai]` 开头,并写清业务变更或 Bug 修复,禁止敷衍 subject。 +3. 未获用户明确授权不得 commit;不得提交 `.env` 等含密钥文件;默认不 push。 diff --git a/.cursor/settings.json b/.cursor/settings.json new file mode 100644 index 0000000..36b564b --- /dev/null +++ b/.cursor/settings.json @@ -0,0 +1,7 @@ +{ + "plugins": { + "superpowers": { + "enabled": true + } + } +} diff --git a/.cursor/skills/README.md b/.cursor/skills/README.md new file mode 100644 index 0000000..9559ae1 --- /dev/null +++ b/.cursor/skills/README.md @@ -0,0 +1,45 @@ +# Skills 导航 + +本目录提供项目级 Cursor Skills,面向本仓库的 `Vue2 + Element UI` 管理端开发。 + +## 当前可用 Skills + +### 1) 页面与组件开发 + +- 路径:`vue2-element-dev/SKILL.md` +- 适用:新增/修改列表页、表单弹窗、复用组件 +- 重点:页面结构、状态管理、方法组织、交付前检查 + +### 2) 接口联调 + +- 路径:`vue2-api-integration/SKILL.md` +- 适用:接口接入、参数映射、错误处理、鉴权异常处理 +- 重点:请求层与页面层分工、响应兜底、401/403、防重复提交 + +### 3) 路由与权限接入 + +- 路径:`vue2-route-permission/SKILL.md` +- 适用:新增页面后接菜单、接路由、排查可见性/可访问问题 +- 重点:模块路由拆分、`permissionRouter` 聚合、菜单激活与一致性 + +## 推荐使用顺序 + +新增业务功能时,建议按以下顺序使用: + +1. 先看 `vue2-element-dev`,把页面骨架与交互结构搭好 +2. 再用 `vue2-api-integration` 完成查询/提交联调和异常兜底 +3. 最后用 `vue2-route-permission` 接入路由菜单并做入口验证 + +## 每套 Skill 的配套文件 + +每个 skill 目录都包含: + +- `SKILL.md`:主规范与流程 +- `examples.md`:可参考的最小示例 +- `checklist.md`:提交前自检项 + +## 团队使用建议 + +- 优先复用现有页面模式,不做无关重构 +- 新功能至少走一遍对应 `checklist.md` +- 若出现同类问题反复发生,可在对应 skill 中沉淀新增规则 diff --git a/.cursor/skills/commit-convention/SKILL.md b/.cursor/skills/commit-convention/SKILL.md new file mode 100644 index 0000000..6cc90b3 --- /dev/null +++ b/.cursor/skills/commit-convention/SKILL.md @@ -0,0 +1,97 @@ +--- +name: commit-convention +description: 为本仓库生成符合团队规范的 Git 提交信息,并在用户要求提交代码时执行完整提交流程。用于 git commit、提交代码、写 commit message、创建提交、push 前整理提交等场景;Agent 代提交时必须使用 [Ai] 标记并写清业务变更。 +--- + +# Git 提交规范(Agent 代提交) + +## 触发条件 + +满足任一条件,**必须先加载本 skill**,再执行 `git add` / `git commit`: + +- 用户明确要求:提交、commit、git commit、保存提交、push 前先 commit 等 +- 用户规则中的「committing-changes-with-git」流程已启动 + +**未获用户明确授权时,不得执行 commit。** + +--- + +## Agent 代提交:标记规则(强制) + +由 Cursor Agent 发起的提交,**必须**在 subject 前加 `[Ai]`: + +```text +[Ai] (): + + +``` + +- `type`:`feat` | `fix` | `refactor` | `style` | `perf` | `chore` | `docs` | `test` | `build` | `ci` +- `scope`:模块/页面,如 `benefits`、`mine`、`community`、`player` +- 可在正文末尾追加 trailer(可选): + +```text +Co-Authored-By: Cursor +``` + +用户本人手动提交、且明确说明「人工提交」时,建议使用 `[Human]`;Agent **不要**替用户假标 `[Human]`。 + +--- + +## Subject 质量(强制) + +提交说明必须让人一眼看懂**改了什么业务**或**修了什么问题**。 + +### 必须做到 + +1. 先并行执行:`git status`、`git diff`(含 staged)、`git log -5 --oneline` 了解风格与变更范围 +2. subject 用**完整语义**描述,优先中文;可中英混用 scope +3. 多文件、多模块时:一条 commit 只包同一业务目标;若混杂无关改动,先询问是否拆分 +4. body 写:原因、用户可见变化、风险点(如有) + +### 严禁(subject 不得仅为或等同于) + +`test`、`修改`、`update`、`fix`、`xxx`、`111`、`wip`、`temp`、`提交`、`save`、纯标点、纯数字、单字 + +### 示例 + +```text +# ✅ +[Ai] feat(benefits): 新增七日签到弹窗与连续签到奖励展示 +[Ai] fix(player): 修复横屏切换后 HLS 首帧黑屏 +[Ai] refactor(mine): 签到任务列表抽离 useSignTask composable + +# ❌ +[Ai] fix: 修改 +[Ai] feat: test +修改播放器 +111 +``` + +--- + +## 提交流程(与 user rule 对齐) + +1. `git status` + `git diff` + `git log`(可并行) +2. 根据 diff **撰写**符合本规范的 message(HEREDOC 传 `-m`) +3. 只 `git add` 与本次任务相关的文件 +4. **不得**提交 `.env`、密钥、凭据类文件;若用户在 staged 中含此类文件,警告并排除 +5. `git commit` 后 `git status` 确认成功 +6. hook 失败时:**不要** `commit --amend`,修 message 后**新建 commit** +7. **除非用户明确要求,否则不 `git push`** + +--- + +## 输出给用户 + +提交完成后简要说明: + +- commit hash(若有) +- 本次纳入的文件范围 +- message 摘要(一行) + +--- + +## 与本地 Hook / CI 的关系 + +本 skill 约束 **Agent 行为**。若仓库后续接入 `husky` + `commitlint` 或 CI,以仓库脚本校验为准;Agent 仍须预先满足 `[Ai]` 与 subject 质量,避免 hook 拒绝。 diff --git a/.cursor/skills/vue2-api-integration/SKILL.md b/.cursor/skills/vue2-api-integration/SKILL.md new file mode 100644 index 0000000..d289e13 --- /dev/null +++ b/.cursor/skills/vue2-api-integration/SKILL.md @@ -0,0 +1,63 @@ +--- +name: vue2-api-integration +description: Use when implementing or debugging API integration in this Vue2 project, including request parameter mapping, response normalization, business error handling, auth expiry handling, and submit/list flow consistency. +disable-model-invocation: true +--- + +# Vue2 API Integration + +## 适用场景 + +- 新增或修改 `src/api/*.js` 接口方法 +- 页面查询、提交、删除、状态切换的接口联调 +- 线上/测试环境出现接口报错、数据格式不一致、权限失效 + +## 联调核心原则 + +- **一处定义接口**:请求方法统一维护在 `src/api`,页面层不写裸请求 +- **参数先整形再发送**:空值、时间范围、布尔值、数字类型先归一化 +- **响应做兜底**:列表、分页、详情都要有默认值,避免空指针 +- **错误统一反馈**:用户看得懂、可操作;开发可定位 +- **鉴权失效可恢复**:401/403 走统一处理,避免页面卡死 + +## 请求层约定 + +- GET 查询使用 `params`,POST/PUT 使用 `data` +- 接口函数命名表达业务动作:`getXxxList`、`createXxx`、`updateXxx` +- 同类接口保持参数结构一致,降低页面层分支逻辑 + +## 页面层约定 + +- 页面只做调用、状态切换、提示和数据映射 +- 所有异步方法都要有 `loading` 生命周期(开始/结束) +- 提交类动作默认防重复:`submitLoading` 或按钮禁用 +- 删除/危险操作必须确认后调用 + +## 常见数据映射 + +- 时间区间:`[startTime, endTime]` 拆成后端需要字段 +- 开关状态:`true/false` 映射为后端约定值(如 `1/0`) +- 数字输入:提交前转数字,避免 `"1"`/`1` 混用 +- 列表响应:`list`、`total` 必须有默认值 + +## 错误与鉴权处理 + +- 业务失败:提示明确失败原因,不吞错误 +- 网络异常:提示“网络异常,请稍后重试” +- 401:提示登录失效并引导重新登录 +- 403:提示无权限并保持当前页面可回退 +- 异常分支必须收尾:关闭 loading、恢复按钮状态 + +## 推荐联调流程 + +1. 先确认接口文档字段和返回结构 +2. 在 `src/api` 定义/更新请求函数 +3. 页面接入并补齐参数整形与响应兜底 +4. 跑通成功路径(查询/提交) +5. 验证失败路径(业务报错/网络异常/无权限) +6. 执行 lint 或 test-build 确认无新增阻断问题 + +## 快速参考 + +- 示例代码:见 [examples.md](examples.md) +- 联调检查表:见 [checklist.md](checklist.md) diff --git a/.cursor/skills/vue2-api-integration/checklist.md b/.cursor/skills/vue2-api-integration/checklist.md new file mode 100644 index 0000000..11c563f --- /dev/null +++ b/.cursor/skills/vue2-api-integration/checklist.md @@ -0,0 +1,30 @@ +# Checklist + +## 接口定义检查 + +- [ ] 接口方法统一定义在 `src/api/*.js` +- [ ] GET 使用 `params`,POST/PUT 使用 `data` +- [ ] 方法名与业务动作匹配(get/create/update/delete) +- [ ] 请求路径、method、参数字段与后端约定一致 + +## 页面联调检查 + +- [ ] 查询参数已整形(时间范围、布尔、数字、空值) +- [ ] 列表响应有默认值(`list`、`total`) +- [ ] 提交按钮有防重复(`submitLoading`/禁用) +- [ ] 删除/危险动作有二次确认 +- [ ] 异常场景会关闭 loading 并提示用户 + +## 错误与权限检查 + +- [ ] 业务错误提示清晰,不吞异常 +- [ ] 网络异常提示可理解(可重试) +- [ ] 401 有登录失效处理 +- [ ] 403 有无权限处理与回退路径 + +## 交付前检查 + +- [ ] 成功路径通过(查询/提交/删除) +- [ ] 失败路径通过(业务失败/网络异常/权限失败) +- [ ] 执行 `npm run lint` 或 `npm run test-build` +- [ ] 不提交无关改动 diff --git a/.cursor/skills/vue2-api-integration/examples.md b/.cursor/skills/vue2-api-integration/examples.md new file mode 100644 index 0000000..bce3ae4 --- /dev/null +++ b/.cursor/skills/vue2-api-integration/examples.md @@ -0,0 +1,78 @@ +# Examples + +## API 方法定义示例 + +```js +import request from "@/utils/request"; + +export function getCheckInList(params) { + return request({ + url: "/signin/checkin/list", + method: "get", + params + }); +} + +export function saveCheckInConfig(data) { + return request({ + url: "/signin/checkin/config/save", + method: "post", + data + }); +} +``` + +## 查询参数整形示例 + +```js +buildQueryParams() { + const { dateRange, status, pageNum, pageSize, keyword } = this.queryForm; + return { + pageNum, + pageSize, + keyword: keyword ? keyword.trim() : "", + status: typeof status === "boolean" ? (status ? 1 : 0) : status, + startTime: dateRange && dateRange.length ? dateRange[0] : "", + endTime: dateRange && dateRange.length ? dateRange[1] : "" + }; +} +``` + +## 列表请求与兜底示例 + +```js +async fetchList() { + this.loading = true; + try { + const params = this.buildQueryParams(); + const res = await getCheckInList(params); + const data = (res && res.data) || {}; + this.tableData = Array.isArray(data.list) ? data.list : []; + this.total = Number(data.total || 0); + } catch (e) { + this.$message.error("列表加载失败,请稍后重试"); + } finally { + this.loading = false; + } +} +``` + +## 提交流程与防重复示例 + +```js +async handleSubmit() { + if (this.submitLoading) return; + this.submitLoading = true; + try { + await this.$refs.formRef.validate(); + await saveCheckInConfig(this.formData); + this.$message.success("保存成功"); + this.dialogVisible = false; + this.fetchList(); + } catch (e) { + this.$message.error("保存失败,请检查后重试"); + } finally { + this.submitLoading = false; + } +} +``` diff --git a/.cursor/skills/vue2-element-dev/SKILL.md b/.cursor/skills/vue2-element-dev/SKILL.md new file mode 100644 index 0000000..7303e0b --- /dev/null +++ b/.cursor/skills/vue2-element-dev/SKILL.md @@ -0,0 +1,70 @@ +--- +name: vue2-element-dev +description: Use when implementing or modifying Vue2 + Element UI pages/components in this repository, especially for list pages, form dialogs, API integration, route/menu wiring, and pre-delivery checks. +disable-model-invocation: true +--- + +# Vue2 Element Dev + +## 适用场景 + +- 新增或修改 `src/views` 下的页面(列表、表单、弹窗) +- 新增或修改 `src/components` 下的复用组件 +- 做接口联调、参数映射、提交与回显 +- 做路由接入、导航菜单接入、权限相关入口调整 + +## 项目默认约定(平衡型) + +- **优先复用现有模式**:先参考同目录页面写法,再补差异 +- **命名可读**:页面目录、组件名、方法名优先语义化 +- **数据分层**:查询参数、表单数据、UI 状态分开管理 +- **接口调用单点化**:统一放到 `src/api/*.js`,页面仅做调用和状态处理 +- **样式就近维护**:页面样式写在组件内,避免全局污染 + +## 页面开发流程 + +1. 先找一个同类型页面作为参考(表格页/配置页/弹窗页) +2. 搭出页面骨架:筛选区、操作区、表格区、分页区 +3. 补齐数据结构:`list`、`loading`、`query`、`pagination` +4. 接入接口:查询、重置、增删改、状态切换 +5. 完成交互反馈:确认弹窗、成功提示、失败兜底 +6. 执行构建或 lint 验证,修复明显问题后再交付 + +## 推荐代码组织 + +- `data` + - 查询模型:`queryForm` + - 列表模型:`tableData` + - 状态模型:`loading` / `dialogVisible` / `submitLoading` +- `computed` + - 放衍生值,不放有副作用逻辑 +- `methods` + - `fetchList`:统一列表查询入口 + - `handleSearch` / `handleReset` + - `handleAdd` / `handleEdit` / `handleDelete` + - `handleSubmit`:表单提交统一出口 + +## 接口联调约定 + +- API 文件里维护请求函数,页面中只做调用 +- 参数透传前做必要整形(时间范围、数字布尔转换) +- 提交前做前端必填校验;提交后统一提示 +- 失败场景要收敛:关闭 loading、保留用户输入、提示可理解信息 + +## 路由与菜单接入约定 + +- 新页面需要补路由入口与导航入口 +- 菜单文案与页面标题保持一致,避免多处命名不一致 +- 权限字段沿用现有规则,不自创新字段名 + +## 交付前最低检查 + +- 页面可正常进入,主流程可跑通(查、增/改、删) +- 列表页分页/筛选联动正常 +- 弹窗表单可回显、可校验、可提交 +- 无明显控制台报错,构建或 lint 不出现新增阻断错误 + +## 快速参考 + +- 详细示例:见 [examples.md](examples.md) +- 提交前清单:见 [checklist.md](checklist.md) diff --git a/.cursor/skills/vue2-element-dev/checklist.md b/.cursor/skills/vue2-element-dev/checklist.md new file mode 100644 index 0000000..bebd1bd --- /dev/null +++ b/.cursor/skills/vue2-element-dev/checklist.md @@ -0,0 +1,25 @@ +# Checklist + +## 开发中检查 + +- [ ] 页面结构完整(筛选、表格、分页/操作区) +- [ ] `loading` 状态在请求前后正确切换 +- [ ] 查询、重置、分页逻辑一致 +- [ ] 新增/编辑弹窗支持回显、校验、提交 +- [ ] 删除/状态切换有确认提示与成功反馈 +- [ ] API 参数字段与后端约定一致 + +## 接入检查 + +- [ ] 新页面路由已添加 +- [ ] 导航菜单已添加或已挂接 +- [ ] 页面标题、菜单名称、权限标识一致 +- [ ] 未破坏已有页面入口 + +## 交付前检查 + +- [ ] 至少执行一次 `npm run lint` 或 `npm run test-build` +- [ ] 控制台无新增阻断错误 +- [ ] 主流程可复现(查、增/改、删) +- [ ] 异常分支有兜底(失败提示、loading 关闭) +- [ ] 仅提交与本需求相关改动 diff --git a/.cursor/skills/vue2-element-dev/examples.md b/.cursor/skills/vue2-element-dev/examples.md new file mode 100644 index 0000000..f79c118 --- /dev/null +++ b/.cursor/skills/vue2-element-dev/examples.md @@ -0,0 +1,127 @@ +# Examples + +## 列表页最小骨架(Vue2 + Element UI) + +```vue + + + +``` + +## API 文件示例 + +```js +import request from "@/utils/request"; + +export function getList(params) { + return request({ + url: "/api/demo/list", + method: "get", + params + }); +} + +export function createItem(data) { + return request({ + url: "/api/demo/create", + method: "post", + data + }); +} +``` + +## 表单弹窗处理示例 + +```js +methods: { + openDialog(row) { + this.dialogVisible = true; + this.formData = row + ? { id: row.id, name: row.name } + : { id: "", name: "" }; + }, + async handleSubmit() { + this.submitLoading = true; + try { + await this.$refs.formRef.validate(); + await createItem(this.formData); + this.$message.success("保存成功"); + this.dialogVisible = false; + this.fetchList(); + } finally { + this.submitLoading = false; + } + } +} +``` diff --git a/.cursor/skills/vue2-route-permission/SKILL.md b/.cursor/skills/vue2-route-permission/SKILL.md new file mode 100644 index 0000000..fb37941 --- /dev/null +++ b/.cursor/skills/vue2-route-permission/SKILL.md @@ -0,0 +1,56 @@ +--- +name: vue2-route-permission +description: Use when adding or modifying route/menu/permission access in this Vue2 admin project, including module router files, permissionRouter aggregation, sidebar visibility, and route metadata consistency. +disable-model-invocation: true +--- + +# Vue2 Route Permission + +## 适用场景 + +- 新增一个业务页面,需要接入菜单与路由 +- 新增一个模块路由文件并接入 `permissionRouter` +- 调整页面可见性、菜单结构、入口名称 +- 排查“路由已写但菜单不显示 / 可见但不可访问”问题 + +## 本项目路由结构认知 + +- 模块路由拆分在 `src/router/*.js`(例如 `signin.js`) +- 聚合路由在 `src/router/permissionRouter.js` +- 侧边栏使用 `store.state.routerList` 渲染(见 `src/views/main/components/nav.vue`) + +## 接入原则 + +- **单模块独立**:每个业务域维护自己的路由文件 +- **统一聚合出口**:模块路由必须在 `permissionRouter.js` 引入并加入数组 +- **元信息一致**:`title`、`meta.title`、`name`、`path` 保持语义一致 +- **层级清晰**:一级菜单挂在 `Main` 下,子页面在 `children` + +## 新页面接入流程 + +1. 在 `src/views` 创建页面组件并命名清晰 +2. 在对应模块路由文件新增子路由(或新建模块路由文件) +3. 设置基础字段:`path`、`name`、`title`、`meta.title` +4. 需要缓存时补 `meta.keepAlive` +5. 在 `permissionRouter.js` 引入并追加模块路由 +6. 验证菜单显示、点击跳转、激活状态、刷新后可访问 + +## 字段约定 + +- `path`:使用短横线风格,避免含糊缩写 +- `name`:驼峰命名,保持唯一 +- `title`:用于菜单与页面文案,避免同义不同字 +- `icon`:仅一级菜单使用,沿用 Element 图标 +- `meta.title`:与 `title` 保持一致,方便统一读取 + +## 常见问题处理 + +- **菜单不显示**:检查模块路由是否已加入 `permissionRouter` 聚合数组 +- **菜单显示但跳转异常**:检查 `path` 与组件导入是否正确 +- **激活态不正确**:检查路由跳转后 `activeRouter` 是否对应当前 `path` +- **刷新丢失访问**:检查路由注册时机和权限数据初始化顺序 + +## 快速参考 + +- 接入示例:见 [examples.md](examples.md) +- 自检清单:见 [checklist.md](checklist.md) diff --git a/.cursor/skills/vue2-route-permission/checklist.md b/.cursor/skills/vue2-route-permission/checklist.md new file mode 100644 index 0000000..538b89d --- /dev/null +++ b/.cursor/skills/vue2-route-permission/checklist.md @@ -0,0 +1,28 @@ +# Checklist + +## 新增路由检查 + +- [ ] 页面组件已创建且导出正常 +- [ ] 模块路由文件中已添加对应子路由 +- [ ] 子路由包含 `path`、`name`、`title`、`meta.title` +- [ ] `name` 唯一,`path` 可读且与业务语义一致 + +## 聚合与菜单检查 + +- [ ] 新模块路由已在 `permissionRouter.js` 引入 +- [ ] 已加入聚合数组并保持风格一致 +- [ ] 一级菜单 `title/icon` 设置合理 +- [ ] 侧边栏可见,点击可跳转 + +## 权限与体验检查 + +- [ ] 刷新页面后路由仍可访问 +- [ ] 无权限场景有明确反馈(如项目已有拦截逻辑) +- [ ] 当前菜单激活态与页面路径一致 +- [ ] 页面标题与菜单文案一致 + +## 交付前检查 + +- [ ] 至少执行一次 `npm run lint` 或 `npm run test-build` +- [ ] 无新增阻断报错 +- [ ] 仅提交与路由接入相关改动 diff --git a/.cursor/skills/vue2-route-permission/examples.md b/.cursor/skills/vue2-route-permission/examples.md new file mode 100644 index 0000000..db77aaa --- /dev/null +++ b/.cursor/skills/vue2-route-permission/examples.md @@ -0,0 +1,65 @@ +# Examples + +## 模块路由文件示例(`src/router/demo.js`) + +```js +import Main from "../views/main"; +import DemoList from "../views/demo/list"; +import DemoConfig from "../views/demo/config"; + +const DemoRouter = { + path: "/demo", + component: Main, + title: "示例管理", + icon: "el-icon-menu", + meta: { + keepAlive: true + }, + children: [ + { + path: "/demo-list", + component: DemoList, + name: "demoList", + title: "示例列表", + meta: { + title: "示例列表", + keepAlive: true + } + }, + { + path: "/demo-config", + component: DemoConfig, + name: "demoConfig", + title: "示例配置", + meta: { + title: "示例配置", + keepAlive: true + } + } + ] +}; + +export default DemoRouter; +``` + +## 聚合接入示例(`src/router/permissionRouter.js`) + +```js +import DemoRouter from "./demo"; + +const authRouter = [ + // ...existing routers + DemoRouter +]; + +export default authRouter; +``` + +## 路由排查最小步骤 + +```js +// 1. 看 router 文件是否 export default +// 2. 看 permissionRouter 是否 import + push +// 3. 看 path/name/title/meta.title 是否齐全 +// 4. 看页面组件路径是否正确 +``` diff --git a/.env.build b/.env.build new file mode 100644 index 0000000..32a30ce --- /dev/null +++ b/.env.build @@ -0,0 +1,2 @@ +NODE_ENV = 'production' +VUE_APP_TITLE = 'production' \ No newline at end of file diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..f6073d2 --- /dev/null +++ b/.env.test @@ -0,0 +1,2 @@ +NODE_ENV = 'production' +VUE_APP_TITLE = 'test' \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a0dddc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +.DS_Store +node_modules +/dist + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..44620c8 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ + +# node 版本使用 12.18.1 \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..ba17966 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/app' + ] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c4c6fb7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,15800 @@ +{ + "name": "admin-server", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@achrinza/node-ipc": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@achrinza/node-ipc/-/node-ipc-9.2.2.tgz", + "integrity": "sha512-b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw==", + "dev": true, + "requires": { + "@node-ipc/js-queue": "2.0.3", + "event-pubsub": "4.3.0", + "js-message": "1.0.7" + } + }, + "@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + } + }, + "@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true + }, + "@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "requires": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "requires": { + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "requires": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "requires": { + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==" + }, + "@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "dev": true, + "requires": { + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "requires": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "requires": { + "@babel/types": "^7.29.8" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz", + "integrity": "sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-decorators": "^7.29.7" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz", + "integrity": "sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz", + "integrity": "sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.8" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.8.tgz", + "integrity": "sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz", + "integrity": "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz", + "integrity": "sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + } + }, + "@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", + "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==" + }, + "@babel/runtime-corejs2": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.29.7.tgz", + "integrity": "sha512-5GidEBf/rOQlv4sUknPRgboZEvzt/je7CpbkCZ2o7ojs9JbldxdXJinGLYE0sYR9mfPpRz3Q3D7rP+oSCal70g==", + "dev": true, + "requires": { + "core-js": "^2.6.12" + } + }, + "@babel/runtime-corejs3": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.29.7.tgz", + "integrity": "sha512-ppj9ouYku+RX0ljtgZd+KMO5mkM2bCqg8H2PYAFWnLsHEIKIdRojqbJ2i3eVHrisuxy7nOFCmngTDdWtUCdXUQ==", + "requires": { + "core-js-pure": "^3.48.0" + } + }, + "@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + } + }, + "@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + } + }, + "@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "requires": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, + "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.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==", + "dev": true, + "requires": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true + }, + "@liripeng/vue-audio-player": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@liripeng/vue-audio-player/-/vue-audio-player-1.1.1.tgz", + "integrity": "sha512-Uc/U7iCgLJAj24uvu7PqU2w+nnoGglUSLHMcdosPjfNk9hk3dKeQ6pmH1FfKJrlf9xx16tNcY5W0mE8onh2HrQ==", + "requires": { + "@liripeng/vue-audio-player": "^1.0.8", + "@moefe/vue-aplayer": "^2.0.0-beta.5", + "hammer-touchemulator": "^0.0.2", + "vue": "^2.6.12", + "vue-router": "^3.4.9" + } + }, + "@moefe/vue-aplayer": { + "version": "2.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@moefe/vue-aplayer/-/vue-aplayer-2.0.0-beta.5.tgz", + "integrity": "sha512-ytzp4GStzjftuh7H1rIS/ziqwV1FO67iTLSkDxgN0J2bqlO+rBgDDr83Y+pZKBIgRUc30uu/UZHqmE4QiBHHeg==", + "requires": { + "vue": "^2.5.17" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@node-ipc/js-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", + "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", + "dev": true, + "requires": { + "easy-stack": "1.0.1" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/express": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" + } + }, + "@types/express-serve-static-core": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz", + "integrity": "sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true + }, + "@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/minimatch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-6.0.0.tgz", + "integrity": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==", + "dev": true, + "requires": { + "minimatch": "*" + } + }, + "@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true + }, + "@types/node": { + "version": "26.1.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", + "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", + "dev": true, + "requires": { + "undici-types": "~8.3.0" + } + }, + "@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", + "dev": true + }, + "@types/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", + "dev": true, + "requires": { + "@types/http-errors": "*", + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", + "dev": true + }, + "@types/tapable": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", + "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", + "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/webpack": { + "version": "4.41.40", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz", + "integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "@types/webpack-dev-server": { + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz", + "integrity": "sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==", + "dev": true, + "requires": { + "@types/connect-history-api-fallback": "*", + "@types/express": "*", + "@types/serve-static": "*", + "@types/webpack": "^4", + "http-proxy-middleware": "^1.0.0" + } + }, + "@types/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true + } + } + }, + "@videojs/http-streaming": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-2.16.3.tgz", + "integrity": "sha512-91CJv5PnFBzNBvyEjt+9cPzTK/xoVixARj2g7ZAvItA+5bx8VKdk5RxCz/PP2kdzz9W+NiDUMPkdmTsosmy69Q==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "3.0.5", + "aes-decrypter": "3.1.3", + "global": "^4.4.0", + "m3u8-parser": "4.8.0", + "mpd-parser": "^0.22.1", + "mux.js": "6.0.1", + "video.js": "^6 || ^7" + } + }, + "@videojs/vhs-utils": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz", + "integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==", + "requires": { + "@babel/runtime": "^7.12.5", + "global": "^4.4.0", + "url-toolkit": "^2.2.1" + } + }, + "@videojs/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@videojs/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==", + "requires": { + "@babel/runtime": "^7.5.5", + "global": "~4.4.0", + "is-function": "^1.0.1" + } + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz", + "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==", + "dev": true + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz", + "integrity": "sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-preset-app": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.12.1.tgz", + "integrity": "sha512-Zjy5jQaikV1Pz+ri0YgXFS7q4/5wCxB5tRkDOEIt5+4105u0Feb/pvH20nVL6nx9GyXrECFfcm7Yxr/z++OaPQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-decorators": "^7.1.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.4.0", + "@babel/preset-env": "^7.0.0 < 7.4.0", + "@babel/runtime": "^7.0.0", + "@babel/runtime-corejs2": "^7.2.0", + "@vue/babel-preset-jsx": "^1.0.0", + "babel-plugin-dynamic-import-node": "^2.2.0", + "babel-plugin-module-resolver": "3.2.0", + "core-js": "^2.6.5" + } + }, + "@vue/babel-preset-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz", + "integrity": "sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "@vue/babel-sugar-composition-api-inject-h": "^1.4.0", + "@vue/babel-sugar-composition-api-render-instance": "^1.4.0", + "@vue/babel-sugar-functional-vue": "^1.4.0", + "@vue/babel-sugar-inject-h": "^1.4.0", + "@vue/babel-sugar-v-model": "^1.4.0", + "@vue/babel-sugar-v-on": "^1.4.0" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz", + "integrity": "sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz", + "integrity": "sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz", + "integrity": "sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz", + "integrity": "sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz", + "integrity": "sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz", + "integrity": "sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0" + } + }, + "@vue/cli-overlay": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.19.tgz", + "integrity": "sha512-GdxvNSmOw7NHIazCO8gTK+xZbaOmScTtxj6eHVeMbYpDYVPJ+th3VMLWNpw/b6uOjwzzcyKlA5dRQ1DAb+gF/g==", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.12.1.tgz", + "integrity": "sha512-Zetvz8PikLCGomeKOKu8pC9YQ7cfxs7pGpvEOzaxGdhMnebhjAYR6i6dOB57A6N5lhxQksXCtYTv26QgfiIpdg==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0", + "@vue/babel-preset-app": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "babel-loader": "^8.0.5", + "webpack": "^4.0.0" + } + }, + "@vue/cli-plugin-eslint": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.12.1.tgz", + "integrity": "sha512-tVTZlEZsy3sQbO4LLWFK11yzlWwqVAqaM+IY+BeWHITBzEJKh2KmouG+x6x/reXiU3qROsMJ4Ej3Hs8buSMWyQ==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^3.12.1", + "babel-eslint": "^10.0.1", + "eslint": "^4.19.1", + "eslint-loader": "^2.1.2", + "eslint-plugin-vue": "^4.7.1", + "globby": "^9.2.0", + "webpack": "^4.0.0", + "yorkie": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "optional": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + } + }, + "eslint-plugin-vue": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz", + "integrity": "sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA==", + "dev": true, + "optional": true, + "requires": { + "vue-eslint-parser": "^2.0.3" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "dev": true, + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "dev": true, + "optional": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "optional": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true, + "optional": true + } + } + }, + "@vue/cli-plugin-router": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.19.tgz", + "integrity": "sha512-3icGzH1IbVYmMMsOwYa0lal/gtvZLebFXdE5hcQJo2mnTwngXGMTyYAzL56EgHBPjbMmRpyj6Iw9k4aVInVX6A==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^4.5.19" + }, + "dependencies": { + "@vue/cli-shared-utils": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.19.tgz", + "integrity": "sha512-JYpdsrC/d9elerKxbEUtmSSU6QRM60rirVubOewECHkBHj+tLNznWq/EhCjswywtePyLaMUK25eTqnTSZlEE+g==", + "dev": true, + "requires": { + "@achrinza/node-ipc": "9.2.2", + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "@vue/cli-plugin-vuex": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.19.tgz", + "integrity": "sha512-DUmfdkG3pCdkP7Iznd87RfE9Qm42mgp2hcrNcYQYSru1W1gX2dG/JcW8bxmeGSa06lsxi9LEIc/QD1yPajSCZw==", + "dev": true + }, + "@vue/cli-service": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.5.19.tgz", + "integrity": "sha512-+Wpvj8fMTCt9ZPOLu5YaLkFCQmB4MrZ26aRmhhKiCQ/4PMoL6mLezfqdt6c+m2htM+1WV5RunRo+0WHl2DfwZA==", + "dev": true, + "requires": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@soda/get-current-script": "^1.0.0", + "@types/minimist": "^1.2.0", + "@types/webpack": "^4.0.0", + "@types/webpack-dev-server": "^3.11.0", + "@vue/cli-overlay": "^4.5.19", + "@vue/cli-plugin-router": "^4.5.19", + "@vue/cli-plugin-vuex": "^4.5.19", + "@vue/cli-shared-utils": "^4.5.19", + "@vue/component-compiler-utils": "^3.1.2", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^7.4.0", + "acorn-walk": "^7.1.1", + "address": "^1.1.2", + "autoprefixer": "^9.8.6", + "browserslist": "^4.12.0", + "cache-loader": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.4", + "clipboardy": "^2.3.0", + "cliui": "^6.0.0", + "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.5.3", + "cssnano": "^4.1.10", + "debug": "^4.1.1", + "default-gateway": "^5.0.5", + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^4.2.0", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.9.0", + "minimist": "^1.2.5", + "pnp-webpack-plugin": "^1.6.4", + "portfinder": "^1.0.26", + "postcss-loader": "^3.0.0", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^1.4.4", + "thread-loader": "^2.1.3", + "url-loader": "^2.2.0", + "vue-loader": "^15.9.2", + "vue-loader-v16": "npm:vue-loader@^16.1.0", + "vue-style-loader": "^4.1.2", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.8.0", + "webpack-chain": "^6.4.0", + "webpack-dev-server": "^3.11.0", + "webpack-merge": "^4.2.2" + }, + "dependencies": { + "@vue/cli-shared-utils": { + "version": "4.5.19", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.19.tgz", + "integrity": "sha512-JYpdsrC/d9elerKxbEUtmSSU6QRM60rirVubOewECHkBHj+tLNznWq/EhCjswywtePyLaMUK25eTqnTSZlEE+g==", + "dev": true, + "requires": { + "@achrinza/node-ipc": "9.2.2", + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + } + } + }, + "@vue/cli-shared-utils": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.12.1.tgz", + "integrity": "sha512-jFblzRFjutGwu5utOKdVlPlsbA1lBUNNQlAThzNqej+JtTKJjnvjlhjKX0Gq0oOny5FjKWhoyfQ74p9h1qE6JQ==", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.1", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.7", + "semver": "^6.0.0", + "string.prototype.padstart": "^3.0.0" + } + }, + "@vue/compiler-sfc": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", + "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==", + "requires": { + "@babel/parser": "^7.23.5", + "postcss": "^8.4.14", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "^0.6.1" + } + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "@vue/preload-webpack-plugin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz", + "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==", + "dev": true + }, + "@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "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.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "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.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "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.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "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.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "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.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "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.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "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.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xmldom/xmldom": { + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz", + "integrity": "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==" + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==", + "dev": true, + "optional": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", + "dev": true, + "optional": true + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true + }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "aes-decrypter": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-3.1.3.tgz", + "integrity": "sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "global": "^4.4.0", + "pkcs7": "^1.0.4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "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.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "array.prototype.reduce": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", + "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "is-string": "^1.1.1" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + } + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dev": true, + "requires": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true + }, + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", + "dev": true + }, + "async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", + "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "requires": { + "babel-runtime": "6.x" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "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.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "dev": true + }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "dev": true, + "requires": { + "follow-redirects": "1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "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" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true + } + } + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "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" + } + }, + "babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + }, + "babel-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-module-resolver": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz", + "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", + "dev": true, + "requires": { + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "balloon-css": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/balloon-css/-/balloon-css-1.2.0.tgz", + "integrity": "sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "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.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "baseline-browser-mapping": { + "version": "2.11.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.11.tgz", + "integrity": "sha512-/yImnXwyTvgMkhgekLHok/Rx5vO6E0BmStWlSqKWMVm2a2ITuZ1Tn+9bgLS+gZRdZmWtd8nxuhHpdmCUOWsTQQ==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.5.tgz", + "integrity": "sha512-Vq886eXykuP5E6HcKSSStP3bJgrE6In5WKxVUvJ8XGpWWYs2xZHWqUwzCtGgEtBcxyd57KBFDPFoUfNzdaHCNg==", + "dev": true + }, + "body-parser": { + "version": "1.20.6", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.6.tgz", + "integrity": "sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==", + "dev": true, + "requires": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.15.1", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.1.tgz", + "integrity": "sha512-xONzj4PfpPJw6xSqCcT2SmQkBOXpUINUz3o3qXcWJwYlXbkZNcNaUae0o5lle7tKt4HHV6dTgkIRhAXZ3nBMsQ==", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^7.2.3", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": 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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "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.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "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.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "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.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dev": true, + "requires": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + } + }, + "browserify-sign": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.6.tgz", + "integrity": "sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg==", + "dev": true, + "requires": { + "bn.js": "^5.2.3", + "browserify-rsa": "^4.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.6.1", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.9", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", + "dev": true, + "requires": { + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", + "update-browserslist-db": "^1.2.3" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", + "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "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" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "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" + } + }, + "cache-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz", + "integrity": "sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==", + "dev": true, + "requires": { + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + } + }, + "call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "dev": true + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==", + "dev": true, + "optional": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==", + "dev": true, + "optional": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true + } + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "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.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "requires": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "dependencies": { + "adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", + "dev": true, + "optional": true + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", + "dev": true + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "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" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", + "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.2" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true, + "optional": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "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.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "optional": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true + }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==", + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true + } + } + }, + "compression-webpack-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz", + "integrity": "sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug==", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.0.0", + "neo-async": "^2.5.0", + "schema-utils": "^2.6.1", + "serialize-javascript": "^2.1.2", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, + "ssri": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.1.tgz", + "integrity": "sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "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" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "copy-webpack-plugin": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz", + "integrity": "sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==", + "dev": true, + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true + } + } + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "dev": true, + "requires": { + "browserslist": "^4.28.1" + } + }, + "core-js-pure": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", + "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "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.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "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": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "dev": true, + "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" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + } + } + }, + "csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + } + }, + "data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + } + }, + "data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "dev": true, + "requires": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" + }, + "default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz", + "integrity": "sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==", + "dev": true, + "requires": { + "execa": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "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", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "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": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "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.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "optional": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + } + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + } + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "dplayer": { + "version": "1.27.1", + "resolved": "https://registry.npmjs.org/dplayer/-/dplayer-1.27.1.tgz", + "integrity": "sha512-2laBMXs5V1B9zPwJ7eAIw/OBo+Xjvy03i4GHTk3Cg+IWbrq8rKMFO0fFr6ClAYotYOCcFGOvaJDkOZcgKllsCA==", + "requires": { + "axios": "1.2.3", + "balloon-css": "^1.0.3", + "promise-polyfill": "8.3.0" + }, + "dependencies": { + "axios": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.3.tgz", + "integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + } + } + }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "echarts": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.9.0.tgz", + "integrity": "sha512-+ugizgtJ+KmsJyyDPxaw2Br5FqzuBnyOWwcxPKO6y0gc5caYcfnEUIlNStx02necw8jmKmTafmpHhGo4XDtEIA==", + "requires": { + "zrender": "4.3.2" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.5.399", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.399.tgz", + "integrity": "sha512-lEcqhErbHjXRvd41rnWLpzbyU/IXfIYo7QwaFWmxGeLiLyY2TBCdHnWY88vB+p3ubnihRypDm66panXl7TylLA==", + "dev": true + }, + "element-ui": { + "version": "2.15.14", + "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz", + "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==", + "requires": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + } + }, + "elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "dev": true, + "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.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "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.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "requires": { + "stackframe": "^1.3.4" + } + }, + "es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + } + }, + "es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "requires": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "es-to-primitive": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", + "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", + "dev": true, + "requires": { + "es-abstract-get": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + } + }, + "es5-shim": { + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.7.tgz", + "integrity": "sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==" + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + } + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + } + } + }, + "eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", + "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "eslint-plugin-vue": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz", + "integrity": "sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw==", + "dev": true, + "requires": { + "vue-eslint-parser": "^5.0.0" + }, + "dependencies": { + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "espree": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "dev": true, + "requires": { + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "vue-eslint-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz", + "integrity": "sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "eslint-scope": "^4.0.0", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.1.0", + "esquery": "^1.0.1", + "lodash": "^4.17.11" + } + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "optional": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "optional": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "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" + } + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "express": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.15.1", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "optional": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "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.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==", + "dev": true, + "optional": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", + "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": 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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-babel-config": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.2.tgz", + "integrity": "sha512-oK59njMyw2y3yxto1BCfVK7MQp/OYf4FleHu0RgosH3riFJ1aOuo/7naLDLAObfrgn3ueFhw5sAT/cp0QuJI3Q==", + "dev": true, + "requires": { + "json5": "^1.0.2", + "path-exists": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "optional": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==" + }, + "for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "requires": { + "is-callable": "^1.2.7" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "dev": true, + "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.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gif.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/gif.js/-/gif.js-0.2.0.tgz", + "integrity": "sha512-bYxCoT8OZKmbxY8RN4qDiYuj4nrQDTzgLRcFVovyona1PTWNePzI4nzOmotnlOFIzTk/ZxAHtv+TfVLiBWj/hw==" + }, + "gifuct-js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/gifuct-js/-/gifuct-js-2.1.2.tgz", + "integrity": "sha512-rI2asw77u0mGgwhV3qA+OEgYqaDn5UNqgs+Bx0FGwSpuqfYn+Ir6RQY5ENNQ8SbIiG/m5gVa7CD5RriO4f4Lsg==", + "requires": { + "js-binary-schema-parser": "^2.0.3" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", + "dev": true + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "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" + } + }, + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "hammer-touchemulator": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/hammer-touchemulator/-/hammer-touchemulator-0.0.2.tgz", + "integrity": "sha512-NnH4nBhI18GeT2PdfJWmTeuTAR8IowNtvxL6QQLNk6lo2uJ29rFSstOJ9ZjdVsqbjosVXFCi3SEChiagCPo0aQ==" + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "requires": { + "has-symbols": "^1.0.3" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + } + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "hls.js": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.16.tgz", + "integrity": "sha512-VSIRpLfRwlAAdGL4wiTucx2ScRipo0ed1FBatWkyt832jC4CReKstga6yIhYVwGu9LOBjuX9wzmRMeQdBJtzEA==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "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.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + } + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg==", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "requires": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz", + "integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.5", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + } + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, + "individual": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-2.0.0.tgz", + "integrity": "sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + } + } + }, + "internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.2.tgz", + "integrity": "sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g==", + "dev": true, + "requires": { + "hasown": "^2.0.3" + } + }, + "is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "requires": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "requires": { + "has-bigints": "^1.0.2" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==", + "dev": true, + "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.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "requires": { + "hasown": "^2.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + } + }, + "is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-descriptor": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.8.tgz", + "integrity": "sha512-SceYGWXvdqlWa/OnQ5FQuV+NxvNmMRhMw/w9AHkH71hTzveND4BTYgvp16g+oITK47qbOl/3D0bl0iygehWAWQ==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "dev": true + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "dev": true, + "requires": { + "call-bound": "^1.0.4" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "requires": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + } + }, + "is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.16" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true + }, + "is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" + }, + "js-binary-schema-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz", + "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==" + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + }, + "js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true + }, + "js-queue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.2.tgz", + "integrity": "sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==", + "dev": true, + "requires": { + "easy-stack": "^1.0.1" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", + "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "keycode": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz", + "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==" + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "launch-editor": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", + "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", + "dev": true, + "requires": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" + } + }, + "launch-editor-middleware": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.14.1.tgz", + "integrity": "sha512-Y8rM8ujxag67bXKCML5RLK5neOwj9rcgYlhgPAG0roa3sM6gjBjq7Bl/mE63XcdAmjMMsPtJhd1ry8+wstwQew==", + "dev": true, + "requires": { + "launch-editor": "^2.14.1" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "libphonenumber-js": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.13.10.tgz", + "integrity": "sha512-xJxrdqvbl2rtn2MaUJrUejz8J7/uZNC0V77oks2LxYrO/+ZtVpRmz+fEQMuu6VusnEB1fmpByiLS1WXecOnAnw==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg==", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", + "integrity": "sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "m3u8-parser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-4.8.0.tgz", + "integrity": "sha512-UqA2a/Pw3liR6Df3gwxrqghCP17OpPlQj6RBPLYygf/ZSQ4MoSgvdvhvt35qV+3NaaA0FSZx93Ix+2brT1U7cA==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "global": "^4.4.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": 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" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "min-document": { + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", + "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "mini-css-extract-plugin": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", + "dev": true, + "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.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "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.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, + "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" + } + }, + "mpd-parser": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.22.1.tgz", + "integrity": "sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^3.0.5", + "@xmldom/xmldom": "^0.8.3", + "global": "^4.4.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "mux.js": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-6.0.1.tgz", + "integrity": "sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==", + "requires": { + "@babel/runtime": "^7.11.2", + "global": "^4.4.0" + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nan": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.28.0.tgz", + "integrity": "sha512-fTsDz99OTq2sVePhGdp4qQhggZFtKr64ZNVyVajRKtMOkJxYekplBh577PiJB12v/D3s2E5cGtOI45LWp6rnLQ==", + "dev": true + }, + "nanoid": { + "version": "3.3.17", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz", + "integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "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" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==", + "dev": true + } + } + }, + "node-ipc": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.2.1.tgz", + "integrity": "sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ==", + "dev": true, + "requires": { + "event-pubsub": "4.3.0", + "js-message": "1.0.7", + "js-queue": "2.0.2" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "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.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "node-releases": { + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", + "dev": true + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "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" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha512-eZ+m1WNhSZutOa/uRblAc9Ut5MQfukFrFMtPSm3bZCA888NmMd5AWXWdgRZ80zd+pTk1P2JrGjg9pUPTvl2PWQ==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "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.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "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.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true + }, + "object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true + }, + "object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.9.tgz", + "integrity": "sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g==", + "dev": true, + "requires": { + "array.prototype.reduce": "^1.0.8", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "gopd": "^1.2.0", + "safe-array-concat": "^1.1.3" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "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" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "own-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", + "integrity": "sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==", + "dev": true, + "requires": { + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-asn1": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz", + "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", + "dev": true, + "requires": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "pbkdf2": "^3.1.5", + "safe-buffer": "^5.2.1" + } + }, + "parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.6.tgz", + "integrity": "sha512-BT6eelPB1EyGHo8pC0o9Bl6k6SYVhKO1jEbd3lcTrtr7XHdjP8BW1YpfCV3G9Kwkxgattk+S5q2/RvuttCsS1g==", + "dev": true, + "requires": { + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "ripemd160": "^2.0.3", + "safe-buffer": "^5.2.1", + "sha.js": "^2.4.12", + "to-buffer": "^1.2.2" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkcs7": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.4.tgz", + "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", + "requires": { + "@babel/runtime": "^7.5.5" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true, + "optional": true + }, + "pnp-webpack-plugin": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz", + "integrity": "sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", + "dev": true, + "requires": { + "async": "^3.2.6", + "debug": "^4.3.6" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, + "possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true + }, + "postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "requires": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "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.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "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": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "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.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "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": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "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": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "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.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "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": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "optional": true + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "promise-polyfill": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.3.0.tgz", + "integrity": "sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "requires": { + "punycode": "^2.3.1" + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "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.5", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", + "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true + }, + "qrcodejs2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/qrcodejs2/-/qrcodejs2-0.0.2.tgz", + "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA==" + }, + "qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + } + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "dev": true, + "requires": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "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": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "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" + } + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "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.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true, + "optional": true + }, + "regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + } + }, + "regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "regjsparser": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", + "dev": true, + "requires": { + "jsesc": "~3.1.0" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "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.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.5.tgz", + "integrity": "sha512-mzR4sElr1bfCaPJe7m8ilJ6ZXdDaGoObcYR0ZHSsktM/Lt21MVHj5De30GQH2eiZ1qGRTO7LCAzQsUeXTNexWQ==", + "dev": true + } + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==", + "dev": true, + "optional": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", + "integrity": "sha512-b/6tFZCmRhtBMa4xGqiiRp9jh9Aqi2A687Lo265cN0/QohJQEBPiQ52f4QB6i0eF3yp3hmLL21LSGBcML2dlxA==", + "dev": true + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==", + "dev": true, + "optional": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", + "dev": true, + "requires": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "dependencies": { + "hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + } + } + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rust-result": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rust-result/-/rust-result-1.0.0.tgz", + "integrity": "sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==", + "requires": { + "individual": "^2.0.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", + "dev": true, + "optional": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", + "dev": true, + "optional": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-json-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz", + "integrity": "sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==", + "requires": { + "rust-result": "^1.0.0" + } + }, + "safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + } + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "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.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha512-dYE8LhncfBUar6POCxMTm0Ln+erjeczqEvCJib5/7XNkdw1FkUGgwMPY360FY0FgPWQxHWCx29Jl3oejyGLM9Q==", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "1.10.14", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "dev": true, + "requires": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, + "set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + } + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "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.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz", + "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==", + "dev": true + }, + "shvl": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/shvl/-/shvl-2.0.3.tgz", + "integrity": "sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw==" + }, + "side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + } + }, + "side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + } + }, + "side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + } + }, + "side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "dev": true + } + } + }, + "simple-uploader.js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/simple-uploader.js/-/simple-uploader.js-0.5.6.tgz", + "integrity": "sha512-ukjL0wZhK1dNMaQa6sd+UpCSmnUjblaUGbAd/B8f5IFrChMzDsC/7eFSK4bs4BS5NPJFSZVLI+l6Ri7THTkQtw==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "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.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.4.tgz", + "integrity": "sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.2", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz", + "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "eventsource": "^2.0.2", + "faye-websocket": "^0.11.4", + "inherits": "^2.0.4", + "url-parse": "^1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "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.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "spark-md5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "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.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "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.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "ssf": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz", + "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==", + "requires": { + "frac": "~1.1.2" + } + }, + "sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", + "dev": true + }, + "stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "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.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.padstart": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.7.tgz", + "integrity": "sha512-hc5ZFzw8H2Bl4AeHxE5s+CniFg+bPcr7lRRS189GCM6KhJQBACNRhtMsdcnpBNbjc1XisnUOqbP0c94RZU4GCw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-object-atoms": "^1.1.1" + } + }, + "string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + } + }, + "string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "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" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha512-ZFztHzVRdGLAzJmpUT9LNFLe1YiVOEylcaNpEutM26PVTCtOD919IMfD01CgbRouB42Dd9atjx1HseC15DgOZA==", + "dev": true, + "optional": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "dev": true, + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "dev": true, + "optional": true + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "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.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "dev": true, + "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" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz", + "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==", + "dev": true, + "requires": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true + }, + "to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "dev": true, + "requires": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "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": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "tsml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tsml/-/tsml-1.0.1.tgz", + "integrity": "sha512-3KmepnH9SUsoOVtg013CRrL7c+AK7ECaquAsJdvu4288EDJuraqBlP4PDXT/rLEJ9YDn4jqLAzRJsnFPx+V6lg==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + } + }, + "typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + } + }, + "typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + } + }, + "typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + }, + "unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + } + }, + "undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "requires": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true + }, + "url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", + "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-toolkit": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz", + "integrity": "sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "video.js": { + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-7.21.7.tgz", + "integrity": "sha512-T2s3WFAht7Zjr2OSJamND9x9Dn2O+Z5WuHGdh8jI5SYh5mkMdVTQ7vSRmA5PYpjXJ2ycch6jpMjkJEIEU2xxqw==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/http-streaming": "2.16.3", + "@videojs/vhs-utils": "^3.0.4", + "@videojs/xhr": "2.6.0", + "aes-decrypter": "3.1.3", + "global": "^4.4.0", + "keycode": "^2.2.0", + "m3u8-parser": "4.8.0", + "mpd-parser": "0.22.1", + "mux.js": "6.0.1", + "safe-json-parse": "4.0.0", + "videojs-font": "3.2.0", + "videojs-vtt.js": "^0.15.5" + } + }, + "videojs-contrib-hls": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/videojs-contrib-hls/-/videojs-contrib-hls-5.15.0.tgz", + "integrity": "sha512-18zbMYZ0XRBKTPEayA9bFTWWrqhT9b4G8+zf0czJLD7Epe5PcK1I/3dflTHQeQ5rwlWir+/XnFU3sMg/B2MMcw==", + "requires": { + "aes-decrypter": "1.0.3", + "global": "^4.3.0", + "m3u8-parser": "2.1.0", + "mux.js": "4.3.2", + "url-toolkit": "^2.1.3", + "video.js": "^5.19.1 || ^6.2.0", + "videojs-contrib-media-sources": "4.7.2", + "webwackify": "0.1.6" + }, + "dependencies": { + "aes-decrypter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-1.0.3.tgz", + "integrity": "sha512-rsx8pfx7wJsn+ziYbpJ8XA5c93hKAtBCrfydxJqJCMT+qfjipd/B5wC2xHtBcoxyvlqJcpeAo3K55t0lXOn9yQ==", + "requires": { + "pkcs7": "^0.2.3" + } + }, + "m3u8-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-2.1.0.tgz", + "integrity": "sha512-WbEpQ2FUaNGbJ0YanSeyj9D9ruu4FUvz+ZvebIzI2bSME+PUwcPXO1kKXZkjcPUAFruDikoOI5fWQNIA6JCCOQ==" + }, + "mux.js": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-4.3.2.tgz", + "integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ==" + }, + "pkcs7": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-0.2.3.tgz", + "integrity": "sha512-kJRwmADEQUg+qJyRgWLtpEL9q9cFjZschejTEK3GRjKvnsU9G5WWoe/wKqRgbBoqWdVSeTUKP6vIA3Y72M3rWA==" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" + }, + "video.js": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.13.0.tgz", + "integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==", + "requires": { + "babel-runtime": "^6.9.2", + "global": "4.3.2", + "safe-json-parse": "4.0.0", + "tsml": "1.0.1", + "videojs-font": "2.1.0", + "videojs-ie8": "1.1.2", + "videojs-vtt.js": "0.12.6", + "xhr": "2.4.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + } + } + }, + "videojs-font": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-2.1.0.tgz", + "integrity": "sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA==" + }, + "videojs-vtt.js": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz", + "integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==", + "requires": { + "global": "^4.3.1" + } + } + } + }, + "videojs-contrib-media-sources": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/videojs-contrib-media-sources/-/videojs-contrib-media-sources-4.7.2.tgz", + "integrity": "sha512-e6iCHWBFuV05EGo7v+pS9iepObXnJ9joms467gzi8ZjpKVb3ifha9M0Ja24Rd8JfvYpzjltsgDVtGFDvIg4hQQ==", + "requires": { + "global": "^4.3.0", + "mux.js": "4.3.2", + "video.js": "^5.17.0 || ^6.2.0", + "webwackify": "0.1.6" + }, + "dependencies": { + "mux.js": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-4.3.2.tgz", + "integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ==" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" + }, + "video.js": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.13.0.tgz", + "integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==", + "requires": { + "babel-runtime": "^6.9.2", + "global": "4.3.2", + "safe-json-parse": "4.0.0", + "tsml": "1.0.1", + "videojs-font": "2.1.0", + "videojs-ie8": "1.1.2", + "videojs-vtt.js": "0.12.6", + "xhr": "2.4.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + } + } + }, + "videojs-font": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-2.1.0.tgz", + "integrity": "sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA==" + }, + "videojs-vtt.js": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz", + "integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==", + "requires": { + "global": "^4.3.1" + } + } + } + }, + "videojs-font": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz", + "integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==" + }, + "videojs-ie8": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/videojs-ie8/-/videojs-ie8-1.1.2.tgz", + "integrity": "sha512-0Zb2T4MLkpfZbeGMK/Z93b8Lrepr+rLFoHgQV1CoDeFqXvH7b+Vsd/VHoILGxQrgCSHFQ7mAODR6oyMjuiD4/g==", + "requires": { + "es5-shim": "^4.5.1" + } + }, + "videojs-vtt.js": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", + "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", + "requires": { + "global": "^4.3.1" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vue": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", + "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", + "requires": { + "@vue/compiler-sfc": "2.7.16", + "csstype": "^3.1.0" + } + }, + "vue-aplayer": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vue-aplayer/-/vue-aplayer-1.6.1.tgz", + "integrity": "sha512-c+ZAwZ63bVDsKkcHeKLAonIL2gY4nrVRdKypoPRXSkh+8B1cVhFT2tx8HSTNT6eX6WZyDtaYrEJfcgetrfvcdQ==" + }, + "vue-count-to": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz", + "integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ==" + }, + "vue-cropper": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.4.9.tgz", + "integrity": "sha512-Uf1i/sCh+ZqSM9hb2YTGRENzJFH+mvDuv8N2brGLjK7UBuF7XDP7zbis8g/dcqZiMojAcBDtObFCn4ERFbRMxQ==", + "dev": true + }, + "vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-loader": { + "version": "15.11.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz", + "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-router": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz", + "integrity": "sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==" + }, + "vue-simple-uploader": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/vue-simple-uploader/-/vue-simple-uploader-0.7.6.tgz", + "integrity": "sha512-DYddedNi+ZZzqxmKgW2t4lBN3aiB66oKOxgAfS9Hz9J1FHv7Xt+u1Pq8F48BFS4vG0+MFHCNzjzS2xaEUOIcHQ==", + "requires": { + "simple-uploader.js": "^0.5.6" + } + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "vuex": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", + "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==" + }, + "vuex-persistedstate": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-2.7.1.tgz", + "integrity": "sha512-Ktvp6Bt6ApYj35MuxTClu+9Lpukcgl3Z/0o4PU12+Z4jU6lyOMzos0k6zGT5xrukAkGM1VV3EYNwz1TnHPhgFA==", + "requires": { + "deepmerge": "^4.2.2", + "shvl": "^2.0.0" + }, + "dependencies": { + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" + } + } + }, + "wangeditor": { + "version": "4.7.15", + "resolved": "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz", + "integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==", + "requires": { + "@babel/runtime": "^7.11.2", + "@babel/runtime-corejs3": "^7.11.2", + "tslib": "^2.1.0" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "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.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "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" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "dev": true, + "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.5.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": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.19", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", + "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", + "dev": true, + "requires": { + "ansi-html-community": "0.0.8", + "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.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": 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" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "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.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "websocket-driver": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", + "dev": true, + "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.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "webwackify": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/webwackify/-/webwackify-0.1.6.tgz", + "integrity": "sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "requires": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + } + }, + "which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + } + }, + "which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "requires": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + } + }, + "which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==", + "dev": true, + "optional": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.6.tgz", + "integrity": "sha512-XTrf1gv7kXoVf1hbC3PAyAiPgR8Wz1blcrYIjEsUmr08BLksT41R8KbjmS9408C2ERx7v1JDLD/BkpLEttjfKA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xhr": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", + "integrity": "sha512-TUbBsdAuJbX8olk9hsDwGK8P1ri1XlV+PdEWkYw+HQQbpkiBR8PLgD1F3kQDPBs9l4Px34hP9rCYAZOCCAENbw==", + "requires": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" + } + } + }, + "xlsx": { + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.15.6.tgz", + "integrity": "sha512-7vD9eutyLs65iDjNFimVN+gk/oDkfkCgpQUjdE82QgzJCrBHC4bGPH7fzKVyy0UPp3gyFVQTQEFJaWaAvZCShQ==", + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.3", + "wmf": "~1.0.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.2.tgz", + "integrity": "sha512-Nt9ZJjXTv5R8MHbqby/wXQ6Gi0Bb3TcYZkR1bzuL4yB2OxWPkXknz513gEF0GoA6tn00UpbPvERW8rzCuWCA6w==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz", + "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", + "dev": true, + "requires": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "zrender": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.3.2.tgz", + "integrity": "sha512-bIusJLS8c4DkIcdiK+s13HiQ/zjQQVgpNohtd8d94Y2DnJqgM1yjh/jpDb8DoL6hd7r8Awagw8e3qK/oLaWr3g==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2ea8848 --- /dev/null +++ b/package.json @@ -0,0 +1,87 @@ +{ + "name": "admin-server", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "vue-cli-service serve", + "build": "NODE_ENV=production vue-cli-service build", + "test-build": "vue-cli-service build --mode test", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "@liripeng/vue-audio-player": "1.1.1", + "core-js": "^2.6.5", + "dplayer": "^1.26.0", + "echarts": "^4.5.0", + "element-ui": "^2.15.8", + "gif.js": "^0.2.0", + "gifuct-js": "^2.1.2", + "hls.js": "^1.0.0", + "js-base64": "^2.5.2", + "js-md5": "^0.7.3", + "libphonenumber-js": "^1.7.48", + "lodash": "^4.17.15", + "moment": "^2.24.0", + "qrcodejs2": "0.0.2", + "spark-md5": "^3.0.1", + "video.js": "^7.6.5", + "videojs-contrib-hls": "^5.15.0", + "vue": "^2.6.10", + "vue-aplayer": "^1.6.1", + "vue-count-to": "^1.0.13", + "vue-router": "^3.0.3", + "vue-simple-uploader": "^0.7.2", + "vuex": "^3.0.1", + "vuex-persistedstate": "^2.7.1", + "wangeditor": "^4.6.12", + "xlsx": "^0.15.6" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "^3.11.0", + "@vue/cli-plugin-eslint": "^3.11.0", + "@vue/cli-service": "^4.1.1", + "axios": "^0.19.0", + "babel-eslint": "^10.0.1", + "compression-webpack-plugin": "^3.1.0", + "eslint": "^5.16.0", + "eslint-plugin-vue": "^5.0.0", + "node-sass": "^4.9.0", + "qs": "^6.9.0", + "sass-loader": "^7.1.0", + "vue-cropper": "^0.4.9", + "vue-template-compiler": "^2.6.10" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "rules": { + "no-console": "off", + "no-debugger": "off", + "no-restricted-syntax": [ + "error", + { + "selector": "CallExpression[callee.object.name='console'][callee.property.name!=/^(log|warn|error|info|trace)$/]", + "message": "Unexpected property on console object was called" + } + ] + }, + "parserOptions": { + "parser": "babel-eslint" + } + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] +} diff --git a/prod_build.sh b/prod_build.sh new file mode 100755 index 0000000..f84fe89 --- /dev/null +++ b/prod_build.sh @@ -0,0 +1,6 @@ +# sh 执行打包到正式服上 +npm run build +zip -q -r dist.zip dist +scp dist.zip root@172.104.39.32:/tmp/dist.zip +ssh root@172.104.39.32 "cd /server/91fans/webadmin/dist/ && rm -rf ./* && unzip -q /tmp/dist.zip -d /tmp/extract && mv /tmp/extract/dist/* . && rm -rf /tmp/extract /tmp/dist.zip && echo DEPLOY_OK" +rm dist.zip diff --git a/project.md b/project.md new file mode 100644 index 0000000..8698723 --- /dev/null +++ b/project.md @@ -0,0 +1,162 @@ +--- +项目名称: 91pron 管理后台客户端 # 与 DMP 或内部命名一致时请自行替换 +一级部门: 北斗 # 请填写一级部门名称 +二级部门: 瑞升 # 请填写二级部门名称,无则留空 + +DMP编码: JHA-204 # 无则留空 + +项目类型: PC + # 可选值: + # H5 / APP / PC / 服务 / 组件 / 工具 / AI / 中间件 + +开发语言: Node + # 可选值: + # GO / Java / PHP / Node + +项目负责人: DN4929,DN4868 # 员工编号,多个用逗号隔开,这里的负责是这套代码的负责人 + +运维负责人: DN9460,DN9651,DN4792 # 负责部署、监控、K8S、发布、证书等 + +产品负责人: YY1145,YY1208 # 项目产品经理 + +项目成员: DN4929,DN4868 + +项目状态: 开发中 + # 可选值: + # 开发中 / 维护中 / 已停止 / 已归档 + +项目级别: 中 + # 可选值: + # 高 / 中 / 低 + +核心分支: main + +代码仓库: + - https://bd-git.jsyyds.com/ruisheng/jha-204-91pron/frontend/91porn-admin-client.git + +最后审计人: + +最后审计时间: + +告警群: + +备注: + - `package.json` 中 `name` 为 `admin-server`,仓库/目录名为 `91pron-admin-client`。 + - 业务 API 根路径由 **`src/utils/serverUrlConfig.js`** 中的 **`baseServerUrl`** 决定,与 **`NODE_ENV`**、**`VUE_APP_TITLE`**(见 `.env.build` / `.env.test` 等)组合有关;请勿将含密钥、内网或未脱敏的生产地址对外发布。 +--- + +# 1. 项目说明 + +本仓库为面向 **桌面浏览器** 的 **Vue 2 + Vue CLI + Webpack** 单页 **管理后台**,UI 基于 **Element UI 2**,状态管理为 **Vuex 3**(`vuex-persistedstate` 在依赖中,当前 `src/stroe/index.js` 内持久化插件为注释状态),路由为 **Vue Router 3**,模式为 **`hash`**(见 `src/router/index.js`)。入口为 **`src/main.js`**,挂载 Vuex、Router、Element、全局组件/过滤器、**LoginPlugin**、分片上传与音频播放等插件;全局路由守卫见 **`src/permission.js`**(登录态、权限路由刷新、多页签相关 store 动作)。 + +动态业务路由由 **`src/router/permissionRouter.js`** 聚合各业务子路由文件(如 `activity.js`、`user` 相关、`cinema.js` 等),经 **`src/stroe/actions.js`** 中 `refreshRouter` 与用户 **`localStorage` 中的 `role`** 做 **`recursionRouter`** 过滤后注入 **`/main`** 子路由;基础白名单路由见 **`src/router/baseRouter.js`**(登录、`/main` 下欢迎页与角色页等)。 + +业务页面在 **`src/views/`** 下按模块划分,示例包括:**用户**(`user`)、**视频/媒资**(`videoManagement`、`mediaLibrary`、`lsjMediaLibrary`)、**影院**(`cinemaManagement`)、**渠道与落地**(`channelManagement`、`channelBackground`、`landManagement`)、**活动/签到/产品/交易**(`activityManagement`、`signinManagement`、`productManagement`、`transactionManagement`)、**代理与区县**(`agentManagement`、`agentDistrictProvider`)、**AI / ACG / 小说**(`aiManagement`、`animationManage`、`fiction`)、**统计与系统**(`statistics`、`systemManagement`、`systemMessage`、`administrators`)等;接口封装在 **`src/api/`**,按域拆分为多个 `.js` 文件,请求统一走 **`src/utils/request.js`** 封装的 **`axios`** 实例。 + +**技术栈要点:** + +- 构建:**Vue CLI 4**(`vue-cli-service`),生产可选 **compression-webpack-plugin** 对 js/css/html/mp4 等做 gzip(见 `vue.config.js`);**`publicPath: './'`**,适合静态目录或相对路径部署。 +- 样式:**node-sass** + **sass-loader**,通过 `vue.config.js` 的 `css.loaderOptions.sass.data` 向各组件注入 **`@/assets/scss/base.scss`**;Element 主题变量见 **`src/assets/scss/element-variables.scss`**。 +- 网络:**axios**(`baseURL` 在实例中空字符串,真实前缀在 `request.js` 的 `ajax` 内拼接 **`config.baseServerUrl`**),**Authorization** 头、**refresh-authorization** 触发的 token 刷新与请求队列、`code === 1003` 时登出确认等逻辑均在 **`src/utils/request.js`**。 +- 媒体与编辑:**video.js**、**hls.js**、**dplayer**、**wangeditor**、**vue-cropper**、**vue-simple-uploader**、**echarts** 等。 +- 其他:**lodash**、**moment**、**js-md5** / **spark-md5**、**xlsx**、**qrcodejs2** 等。 + +**Node 版本:** 仓库 `README.md` 建议使用 **12.18.1**。 + +**常用脚本(`package.json`):** + +| 命令 | 说明 | +|------|------| +| `npm run dev` | 本地开发(`vue-cli-service serve`) | +| `npm run build` | 生产构建(`NODE_ENV=production vue-cli-service build`,默认读取项目根目录 `.env` 系列中变量) | +| `npm run test-build` | 测试环境构建(`--mode test`,配合 `.env.test` 等) | +| `npm run lint` | ESLint(`vue-cli-service lint`) | + +**开发环境代理:** 当前 `vue.config.js` 未配置 `devServer.proxy`;本地联调后端地址主要在 **`serverUrlConfig.js`** 中维护(以文件内实际配置为准)。 + +**项目目录结构(核心):** + +``` +91pron-admin-client/ +├── public/ +├── src/ +│ ├── main.js # 入口:Vuex、Router、Element、插件、permission +│ ├── App.vue +│ ├── permission.js # 路由守卫:登录、动态路由刷新、页签状态 +│ ├── router/ +│ │ ├── index.js # Router(hash) +│ │ ├── baseRouter.js # 登录 / main / welcome / role +│ │ ├── permissionRouter.js # 全量业务子路由聚合 +│ │ └── *.js # 各业务模块路由片段 +│ ├── stroe/ # Vuex(目录名为 stroe,非 store) +│ ├── views/ # 管理端各业务页面 +│ ├── api/ # 接口方法(按域拆分 .js) +│ ├── components/ # 通用组件 +│ ├── utils/ # request、serverUrlConfig、过滤器、全局方法等 +│ ├── plugins/ # 如 LoginPlugin +│ └── assets/ # scss、图片等 +├── vue.config.js +├── prod_build.sh # 示例打包/发布脚本(环境差异大,使用前请内部确认) +└── project.md # 本文件 +``` + +**接口基址:** + +- 详见 **`src/utils/serverUrlConfig.js`**:根据 **`NODE_ENV`** 与 **`VUE_APP_TITLE`** 切换 **`baseServerUrl`**(例如生产构建下相对路径 **`/api/web/admin`** 与测试包差异);**`playVideoUrl` / `imgUrl` / `downLoadUrl`** 等同文件内字段用于播放与资源地址拼接。 +- 静态部署若使用相对 **`/api/web/admin`**,需由 **网关 / Nginx** 将浏览器同源下的路径转发到实际管理端后端。 + +--- + +# 2. 基础设施与中间件 + +本仓库为 **纯前端工程**,不内置后端;运行时依赖: + +- **业务 API**:由 `serverUrlConfig.js` 的 **`baseServerUrl`** 决定;部署时需保证管理端 **API 反代** 与 HTTPS 策略一致。 +- **静态资源托管**:`build` / `test-build` 产物在 **`dist/`**,由 Web 服务器或 CDN 提供;当前为 **hash 路由**,服务器层面对路径回退要求通常低于 history 模式,但仍需正确配置 **`publicPath`** 与资源根路径。 +- **媒体、图片与下载域名**:见 `serverUrlConfig` 与接口返回(勿在文档中粘贴未脱敏的内网或密钥配置)。 + +--- + +# 3. 运维部署 + +**构建产物:** 执行 `npm run build` 或 `npm run test-build` 后,在 **`dist/`** 生成静态资源;生产构建可能生成 gzip 压缩产物(见 `vue.config.js` 插件配置)。 + +**推荐发布流程(示例):** + +1. 使用约定 **Node** 版本安装依赖:`npm ci` 或 `npm install`。 +2. 确认 **`.env.*`** 或构建 **mode** 下 **`VUE_APP_TITLE`** 等与 **`serverUrlConfig.js`** 逻辑一致。 +3. 执行 `npm run build` 或 `npm run test-build`。 +4. 将 **`dist/`** 同步至静态服务器;确认 **API 反代** 与 **`publicPath: './'`** 的访问路径一致。 +5. 仓库内 **`prod_build.sh`** 为示例流程,**主机与路径以实际运维规范为准**,避免泄露账号与内网信息。 + +**环境变量说明(摘录,完整以实际 `.env.*` 与构建命令为准):** + +| 变量 | 作用 | +|------|------| +| `NODE_ENV` | 构建/运行环境标识 | +| `VUE_APP_TITLE` | 与 `serverUrlConfig.js` 中测试/生产基址分支等逻辑配合(见 `.env.build`、`.env.test`) | + +--- + +# 4. 风险说明 + +- **强依赖后端与反代**:`baseServerUrl` 或网关配置错误会导致 **整站接口不可用**。 +- **登录与权限**:`permission.js` 依赖 **`localStorage`** 中 `userInfo`、`role` 与 Vuex **`routerList`** 刷新逻辑,权限数据异常可能导致无法进入业务页或反复刷新路由。 +- **Token 刷新**:`request.js` 中刷新队列与 **1003** 等业务码处理与后端约定强相关,变更需联调。 +- **配置敏感信息**:联调用的完整域名、内网 IP 等 **勿提交到公开仓库**;依赖锁定文件建议纳入审计流程。 +- **目录命名**:Vuex 目录为 **`stroe`**,新人接手时注意路径与导入,避免误认为缺失 `store`。 + +--- + +# 5. 历史事故(可选) + +- 暂无(请运维/研发后续补充) + +--- + +# 6. 交接说明(可选) + +- 路由与权限核心在 **`src/permission.js`**、**`src/stroe/actions.js`** 的 **`refreshRouter`**、**`src/router/permissionRouter.js`** 及各 **`src/router/*.js`**;新增菜单需在权限路由与后端角色配置侧同步。 +- 用户信息、标签页等多与 **`src/stroe/`** 及 **`localStorage`** 配合;业务请求请统一走 **`src/utils/request.js`**,避免散落裸 **`axios`**。 +- 接口目录:**`src/api/`**。 +- **请勿将含密钥、生产内网地址的环境文件或未脱敏脚本提交至对外可见仓库**;YAML 头部元数据若与真实组织不一致,请在内部系统中核对后修改。 diff --git a/public/ai-image-v12.html b/public/ai-image-v12.html new file mode 100644 index 0000000..cf2ae13 --- /dev/null +++ b/public/ai-image-v12.html @@ -0,0 +1,2913 @@ + + + + + + + ai-image-rs + + + + + +
+

AI-IMAGE-RS

+

版本: V1.2

+
+ + +
+
+ + + 留空 = 内置默认 +
+ + +
+ + + +
+ + + + +
+
+ + +
+
输入
+ + +
+ 源图 — 可用画笔在图上标注区域 +
+
+
🖼️
点击上传图片
+ + +
+ + + + +
+ 🔴红 🟢绿 🔵蓝 🟡黄 🟣紫 ⬜白 — 标注后提示词写:去掉红色区域 等 +
+ + +
+ +
+
+ 📎 点击或拖拽参考图 +
+ +
+ +
+ + +
+ + +
+ + +
+ 高级设置 +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ + +
+ + +
+
+ + +
+
结果
+
+ 🎨编辑结果将显示在这里 +
+
+
+ + +
+
+ ⬇️ 下载结果 + +
+
+
+ +
+
+ + + + +
+
+ + +
+
素材
+ + +
+ +
+
+ 📷 点击或拖拽上传底图 +
+ +
+ +
+ + +
+ +
+ 📎 点击或拖拽添加 PNG +
+ +
+
+
+ + +
+
画板 — 拖拽移动 · 滚轮缩放 · + Shift+滚轮旋转
+
+
+ +
+
+ +
+ + + + + — +
+ + + + 0° + + +
+ + + + 100% +
+
+ + +
+
+
+ +
+
+ + + + +
+
+ + +
+ + +
+
底图
+
+
+ 📷 点击或拖拽上传底图 +
+ +
+ +
+ + +
+
+ + +
+
画板 — 拖拽移动 · 滚轮缩放
+
+
+ +
+
+ +
+ + + + — +
+ + + + 0° + + +
+ + + + 100% +
+
+ 💡 滚轮缩放 · Shift+滚轮旋转 · 拖拽移动 +
+
+ + +
+
+ +
+
+ + + + + + diff --git a/public/ai-image-v16.html b/public/ai-image-v16.html new file mode 100644 index 0000000..039a2df --- /dev/null +++ b/public/ai-image-v16.html @@ -0,0 +1,17597 @@ + + + + + + + ai-image-rs + + + + + + + + + +
+

AI-IMAGE-RS

+

版本: V1.6

+
+ + +
+
+ + + + 留空 = 内置默认 +
+ + +
+ + + + + + +
+ + + + +
+
+ + +
+
输入
+ + +
+ 源图 — 可用画笔在图上标注区域 +
+
+
🖼️
点击上传图片
+ + +
+ + + + +
+ 🔴红 🟢绿 🔵蓝 🟡黄 🟣紫 ⬜白 — 标注后提示词写:去掉红色区域 等 +
+ + +
+ + +
+ + + 1.00 +
+
+ + +
+ +
+
+ 📎 点击或拖拽参考图 +
+ +
+ +
+ + +
+ + +
+ + +
+ 高级设置 +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ + +
+ + +
+
+ + +
+
结果
+
+ 🎨编辑结果将显示在这里 +
+
+
+ + +
+ ⬇️ 下载结果 +
+
+ +
+
+ + + + +
+
+ + +
+
素材
+ + +
+ +
+
+ 📷 点击或拖拽上传底图 +
+ +
+ +
+ + +
+ +
+ 📎 点击或拖拽添加 PNG +
+ +
+
+
+ + +
+
画板 — 拖拽移动 · 滚轮缩放 · + Shift+滚轮旋转
+
+
+ +
+
+ +
+ + + + + — +
+ + + + 0° + + +
+ + + + 100% +
+ +
+
+ +
+
+ + + + +
+
+ + +
+
+ ◀ 收起 +
+ + +
+
底图
+
+
+ 📷 点击或拖拽上传底图 +
+ +
+ +
+ + +
+
+ + + +
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + + + +
+ +
+
+
+ +
+
+ + +
+
+
+ + +
+ + +
+
截图蒙版图层
+
+ 无底图时自动创建空白画板(下方设置尺寸/颜色) +
+
+ +
+ + + +
+
+
+ +
+
+
+ + +
+
+ +
+ 📎 点击或拖拽添加截图 +
+ +
+
+ +
+ 🎬 点击或拖拽添加视频 +
+
+
+ + +
+ + +
+ +
+
+ 画板 — 拖拽移动 · 滚轮缩放 +
+ + +
+
+ +
+
+
+ + + + + +
+
+
+ +
+ + + + — +
+ + + + 0° + + +
+ + + + 100% +
+ + + +
+ +
+
+ 💡 滚轮缩放 · Shift+滚轮旋转 · 拖拽移动 · 窗口模式下 Alt+滚轮缩放图片内容 +
+ + +
+
+
+ 📚 图层(0) + ▼ +
+
+
+ + + +
+ + +
+ + + + + + +
+ +
+ +
+
+ + + + +
+
+ + +
+
+ + + + Key 自动保存到浏览器 +
+ + +
+ + + + +
+ +
+ + +
+
+
文生图 · Text to Image
+ + + + + +
+ 反向提示词(可选) + +
+ + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + + +
+
+ + + +
+
模型和风格会自动匹配当前模式的默认值,也可手动修改
+ + +
+
+ LoRA 列表 +
+ + +
+
+ + + +
+
暂无 LoRA — 点击「刷新可用列表」或「手动添加」
+
+
权重 0~2(默认1.0),LoRA 列表来自服务端 AI 应用数据 + 手动输入
+
+ + +
+ + +
+
+
+ + +
+
+ AI 应用 + +
+
+ 服务端预设的AI应用模板,选择后上传参考图一键生成 +
+
+
点击「刷新列表」加载可用应用
+
+ + +
+ + +
+
任务查询
+ +
+ + + +
+
支持输入单个或多个 Task ID(逗号分隔),Enter 快捷查询
+
+ +
+
+
+ + +
+
+
生成结果
+
+ + + +
+
提交任务后,结果会显示在这里
+
+
+
+ + +
+
任务历史
+
+
暂无历史任务
+
+
+ +
+
+
+ +
+
+
+ + + +
+
+
+ + +
+
+
模型选择
+ +
+ + +
+ + + + + +
提示词
+ + +
+ + +
+
+ LoRA 叠加 0 / 3 +
+ +
+ +
+ + +
+
+ + +
+ +
+ + +
+
输出尺寸
+
+ + + + + + + +
+
+ + + × + +
+
+ + +
+
高级参数
+
+
+ +
+ + 8 +
+
+
+ +
+ + 1.0 +
+
+
+ +
+ + 1.00 +
+
+
+ +
+ + +
+
+
+
+ + +
+
+ + +
+
+
生成结果
+
+ ✦ + 点击「生成图像」开始 + 空间地址:jing96963-zzz.hf.space +
+
+ 生成结果 +
+ + +
+ + +
+
本次历史 + +
+
+ 暂无历史 +
+
+
+ +
+
+
+ + + +
+
+ +
+ +
+ + +
+ + + + +
+ 要合成的文本 + 14 / 600 +
+ + +
+ 高级参数 +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
合成结果
+
+ 🎙️ + 点击「合成语音」开始 + 空间地址:jing96963-yousheng.hf.space +
+ + +
+
+
+ + + + + + + + + +
+ + + \ No newline at end of file diff --git a/public/favicon1.ico b/public/favicon1.ico new file mode 100644 index 0000000000000000000000000000000000000000..79622d4e9e8bf519500bf512e1e66a48f089b747 GIT binary patch literal 6510 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.pageSize)this.newPage();this.pages[this.page][this.cursor++]=val};ByteArray.prototype.writeUTFBytes=function(string){for(var l=string.length,i=0;i=0)this.dispose=disposalCode};GIFEncoder.prototype.setRepeat=function(repeat){this.repeat=repeat};GIFEncoder.prototype.setTransparent=function(color){this.transparent=color};GIFEncoder.prototype.addFrame=function(imageData){this.image=imageData;this.colorTab=this.globalPalette&&this.globalPalette.slice?this.globalPalette:null;this.getImagePixels();this.analyzePixels();if(this.globalPalette===true)this.globalPalette=this.colorTab;if(this.firstFrame){this.writeLSD();this.writePalette();if(this.repeat>=0){this.writeNetscapeExt()}}this.writeGraphicCtrlExt();this.writeImageDesc();if(!this.firstFrame&&!this.globalPalette)this.writePalette();this.writePixels();this.firstFrame=false};GIFEncoder.prototype.finish=function(){this.out.writeByte(59)};GIFEncoder.prototype.setQuality=function(quality){if(quality<1)quality=1;this.sample=quality};GIFEncoder.prototype.setDither=function(dither){if(dither===true)dither="FloydSteinberg";this.dither=dither};GIFEncoder.prototype.setGlobalPalette=function(palette){this.globalPalette=palette};GIFEncoder.prototype.getGlobalPalette=function(){return this.globalPalette&&this.globalPalette.slice&&this.globalPalette.slice(0)||this.globalPalette};GIFEncoder.prototype.writeHeader=function(){this.out.writeUTFBytes("GIF89a")};GIFEncoder.prototype.analyzePixels=function(){if(!this.colorTab){this.neuQuant=new NeuQuant(this.pixels,this.sample);this.neuQuant.buildColormap();this.colorTab=this.neuQuant.getColormap()}if(this.dither){this.ditherPixels(this.dither.replace("-serpentine",""),this.dither.match(/-serpentine/)!==null)}else{this.indexPixels()}this.pixels=null;this.colorDepth=8;this.palSize=7;if(this.transparent!==null){this.transIndex=this.findClosest(this.transparent,true)}};GIFEncoder.prototype.indexPixels=function(imgq){var nPix=this.pixels.length/3;this.indexedPixels=new Uint8Array(nPix);var k=0;for(var j=0;j=0&&x1+x=0&&y1+y>16,(c&65280)>>8,c&255,used)};GIFEncoder.prototype.findClosestRGB=function(r,g,b,used){if(this.colorTab===null)return-1;if(this.neuQuant&&!used){return this.neuQuant.lookupRGB(r,g,b)}var c=b|g<<8|r<<16;var minpos=0;var dmin=256*256*256;var len=this.colorTab.length;for(var i=0,index=0;i=0){disp=dispose&7}disp<<=2;this.out.writeByte(0|disp|0|transp);this.writeShort(this.delay);this.out.writeByte(this.transIndex);this.out.writeByte(0)};GIFEncoder.prototype.writeImageDesc=function(){this.out.writeByte(44);this.writeShort(0);this.writeShort(0);this.writeShort(this.width);this.writeShort(this.height);if(this.firstFrame||this.globalPalette){this.out.writeByte(0)}else{this.out.writeByte(128|0|0|0|this.palSize)}};GIFEncoder.prototype.writeLSD=function(){this.writeShort(this.width);this.writeShort(this.height);this.out.writeByte(128|112|0|this.palSize);this.out.writeByte(0);this.out.writeByte(0)};GIFEncoder.prototype.writeNetscapeExt=function(){this.out.writeByte(33);this.out.writeByte(255);this.out.writeByte(11);this.out.writeUTFBytes("NETSCAPE2.0");this.out.writeByte(3);this.out.writeByte(1);this.writeShort(this.repeat);this.out.writeByte(0)};GIFEncoder.prototype.writePalette=function(){this.out.writeBytes(this.colorTab);var n=3*256-this.colorTab.length;for(var i=0;i>8&255)};GIFEncoder.prototype.writePixels=function(){var enc=new LZWEncoder(this.width,this.height,this.indexedPixels,this.colorDepth);enc.encode(this.out)};GIFEncoder.prototype.stream=function(){return this.out};module.exports=GIFEncoder},{"./LZWEncoder.js":2,"./TypedNeuQuant.js":3}],2:[function(require,module,exports){var EOF=-1;var BITS=12;var HSIZE=5003;var masks=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535];function LZWEncoder(width,height,pixels,colorDepth){var initCodeSize=Math.max(2,colorDepth);var accum=new Uint8Array(256);var htab=new Int32Array(HSIZE);var codetab=new Int32Array(HSIZE);var cur_accum,cur_bits=0;var a_count;var free_ent=0;var maxcode;var clear_flg=false;var g_init_bits,ClearCode,EOFCode;function char_out(c,outs){accum[a_count++]=c;if(a_count>=254)flush_char(outs)}function cl_block(outs){cl_hash(HSIZE);free_ent=ClearCode+2;clear_flg=true;output(ClearCode,outs)}function cl_hash(hsize){for(var i=0;i=0){disp=hsize_reg-i;if(i===0)disp=1;do{if((i-=disp)<0)i+=hsize_reg;if(htab[i]===fcode){ent=codetab[i];continue outer_loop}}while(htab[i]>=0)}output(ent,outs);ent=c;if(free_ent<1<0){outs.writeByte(a_count);outs.writeBytes(accum,0,a_count);a_count=0}}function MAXCODE(n_bits){return(1<0)cur_accum|=code<=8){char_out(cur_accum&255,outs);cur_accum>>=8;cur_bits-=8}if(free_ent>maxcode||clear_flg){if(clear_flg){maxcode=MAXCODE(n_bits=g_init_bits);clear_flg=false}else{++n_bits;if(n_bits==BITS)maxcode=1<0){char_out(cur_accum&255,outs);cur_accum>>=8;cur_bits-=8}flush_char(outs)}}this.encode=encode}module.exports=LZWEncoder},{}],3:[function(require,module,exports){var ncycles=100;var netsize=256;var maxnetpos=netsize-1;var netbiasshift=4;var intbiasshift=16;var intbias=1<>betashift;var betagamma=intbias<>3;var radiusbiasshift=6;var radiusbias=1<>3);var i,v;for(i=0;i>=netbiasshift;network[i][1]>>=netbiasshift;network[i][2]>>=netbiasshift;network[i][3]=i}}function altersingle(alpha,i,b,g,r){network[i][0]-=alpha*(network[i][0]-b)/initalpha;network[i][1]-=alpha*(network[i][1]-g)/initalpha;network[i][2]-=alpha*(network[i][2]-r)/initalpha}function alterneigh(radius,i,b,g,r){var lo=Math.abs(i-radius);var hi=Math.min(i+radius,netsize);var j=i+1;var k=i-1;var m=1;var p,a;while(jlo){a=radpower[m++];if(jlo){p=network[k--];p[0]-=a*(p[0]-b)/alpharadbias;p[1]-=a*(p[1]-g)/alpharadbias;p[2]-=a*(p[2]-r)/alpharadbias}}}function contest(b,g,r){var bestd=~(1<<31);var bestbiasd=bestd;var bestpos=-1;var bestbiaspos=bestpos;var i,n,dist,biasdist,betafreq;for(i=0;i>intbiasshift-netbiasshift);if(biasdist>betashift;freq[i]-=betafreq;bias[i]+=betafreq<>1;for(j=previouscol+1;j>1;for(j=previouscol+1;j<256;j++)netindex[j]=maxnetpos}function inxsearch(b,g,r){var a,p,dist;var bestd=1e3;var best=-1;var i=netindex[g];var j=i-1;while(i=0){if(i=bestd)i=netsize;else{i++;if(dist<0)dist=-dist;a=p[0]-b;if(a<0)a=-a;dist+=a;if(dist=0){p=network[j];dist=g-p[1];if(dist>=bestd)j=-1;else{j--;if(dist<0)dist=-dist;a=p[0]-b;if(a<0)a=-a;dist+=a;if(dist>radiusbiasshift;if(rad<=1)rad=0;for(i=0;i=lengthcount)pix-=lengthcount;i++;if(delta===0)delta=1;if(i%delta===0){alpha-=alpha/alphadec;radius-=radius/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 D#!uOj literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..1e04936 --- /dev/null +++ b/public/index.html @@ -0,0 +1,26 @@ + + + + + + + + + 91PORN后台管理系统 + + + + + + +
+ + + + \ No newline at end of file diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100755 index 0000000..d0c7a34 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/src/api/activeManagement.js b/src/api/activeManagement.js new file mode 100755 index 0000000..6e560da --- /dev/null +++ b/src/api/activeManagement.js @@ -0,0 +1,439 @@ +import ajax from "../utils/request"; +const activeApi = { + /********************************活动列表*********************************** */ + // 活动列表 + getWebActivity(params) { + return ajax({ + url: "/activity", + type: "get", + params: params, + }); + }, + // 新增活动 + addWebActivity(params) { + return ajax({ + url: "/activity", + type: "post", + params: params, + }); + }, + + //编辑活动 + editWebActive(params) { + return ajax({ + url: "/activity", + type: "put", + params: params, + }); + }, + + /********************************新版活动列表*********************************** */ + // 活动列表 + getActivity(params) { + return ajax({ + url: "/actv/list", + type: "get", + params: params, + }); + }, + // 新增活动 + addActivity(params) { + return ajax({ + url: "/actv/add", + type: "post", + params: params, + }); + }, + + //编辑活动 + editActive(params) { + return ajax({ + url: "/actv/update", + type: "post", + params: params, + }); + }, + + /********************************一次活动列表*********************************** */ + // 活动列表 + getOneActivity(params) { + return ajax({ + url: "/task/once/list", + type: "get", + params: params, + }); + }, + // 新增活动 + addOneActivity(params) { + return ajax({ + url: "/task/once/add", + type: "post", + params: params, + }); + }, + + //编辑活动 + editOneActive(params) { + return ajax({ + url: "/task/once/edit", + type: "post", + params: params, + }); + }, + /********************************每日活动列表*********************************** */ + // 活动列表 + getDailyActivity(params) { + return ajax({ + url: "/task/daily/list", + type: "get", + params: params, + }); + }, + // 新增活动 + addDailyActivity(params) { + return ajax({ + url: "/task/daily/add", + type: "post", + params: params, + }); + }, + + //编辑活动 + editDailyActive(params) { + return ajax({ + url: "/task/daily/edit", + type: "post", + params: params, + }); + }, + /********************************成长活动任务列表*********************************** */ + // 活动列表 + getGrowthList(params) { + return ajax({ + url: "/task/growth/list", + type: "get", + params: params, + }); + }, + // 新增活动 + addGrowthActivity(params) { + return ajax({ + url: "/task/growth/add", + type: "post", + params: params, + }); + }, + + //编辑活动 + editGrowthActive(params) { + return ajax({ + url: "/task/growth/edit", + type: "post", + params: params, + }); + }, + /********************************活动奖品列表*********************************** */ + //获取奖品 + getWebPrice(params) { + return ajax({ + url: "/activity/prize", + type: "get", + params: params, + }); + }, + //新增奖品 + addWebPrice(params) { + return ajax({ + url: "/activity/prize", + type: "post", + params: params, + }); + }, + //修改奖品 + editWebPrice(params) { + return ajax( + { + url: "/activity/prize", + type: "put", + params: params, + }, + true + ); + }, + //获取活动ID + getActiveityId(params) { + return ajax({ + url: "/activity/box", + type: "get", + params: params, + }); + }, + //获取会员卡ID + getVipcardId(params) { + return ajax({ + url: "/activity/prize/vipBox", + type: "get", + params: params, + }); + }, + + /********************************奖池*********************************** */ + // 获取奖池 + getPrizePool(params) { + return ajax({ + url: "/activity/prizePool", + type: "get", + params: params, + }); + }, + // 新增奖池 + addPrizePool(params) { + return ajax({ + url: "/activity/prizePool", + type: "post", + params: params, + }); + }, + // 修改奖池 + editPrizePool(params) { + return ajax({ + url: "/activity/prizePool", + type: "put", + params: params, + }); + }, + + /********************************奖池*********************************** */ + + /********************************活动奖品列表*********************************** */ + /** + * 奖品列表 + * @param {object} [params] - 需要的参数 + * @param {string} [params.actID] - 活动id + * @param {number} [params.pageNumber] - 页码【从1开始计数】 + * @param {number} [params.pageSize] - 每页显示的条数【从1开始计数】 + */ + getActivityPrize(params) { + return ajax({ + url: "/activity/reward/list", + type: "get", + params: params, + }); + }, + /** + * 新增奖品 + * @param {object} [params] - 需要的参数 + * @param {string} [params.actID] - 活动id + * @param {number} [params.pageNumber] - 页码【从1开始计数】 + * @param {number} [params.pageSize] - 每页显示的条数【从1开始计数】 + */ + addActivityPrize(params) { + return ajax({ + url: "/activity/reward/add", + type: "post", + params: params, + }); + }, + /** + * 编辑奖品 + * @param {object} [params] - 需要的参数 + * @param {string} [params.actID] - 活动id + * @param {number} [params.pageNumber] - 页码【从1开始计数】 + * @param {number} [params.pageSize] - 每页显示的条数【从1开始计数】 + */ + editActivityPrize(params) { + return ajax({ + url: "/activity/reward/modify", + type: "post", + params: params, + }); + }, + /********************************兑换码列表*********************************** */ + // 兑换码列表 + redemptionCodeList(params) { + return ajax({ + url: "/exchange/code/list", + type: "get", + params: params, + }); + }, + // 添加兑换码 + addCode(params) { + return ajax({ + url: "/exchange/code/add", + type: "post", + params: params, + }); + }, + // 修改兑换码 + editCode(params) { + return ajax({ + url: "/exchange/code/update", + type: "post", + params: params, + }); + }, + // 删除兑换码 + delCode(params) { + return ajax({ + url: "/exchange/code/del", + type: "delete", + params: params, + }); + }, + /********************************兑换码兑换日志*********************************** */ + redemptionLogList(params) { + return ajax({ + url: "/exchange/log/list", + type: "get", + params: params, + }); + }, + + /********************************获奖记录列表(嫩模活动)*********************************** */ + + //添加获奖记录列表 + addWinRecord(params) { + return ajax({ + url: "/newactivity/addWinRecord", + type: "post", + params: params, + }); + }, + + //导入所有嫩模 + importModels(params) { + return ajax({ + url: "/newactivity/importModels", + type: "post", + params: params, + }); + }, + + //写入参数活动人数 + updateJoinNum(params) { + return ajax({ + url: "/newactivity/updateJoinNum", + type: "post", + params: params, + }); + }, + // + // 嫩模获奖记录 + winRecordPage(params) { + return ajax({ + url: "/newactivity/winRecordPage", + type: "post", + params: params, + }); + }, + + /********************************购买列表*********************************** */ + + //购买列表 + buyPage(params) { + return ajax({ + url: "/newactivity/buyPage", + type: "post", + params: params, + }); + }, + + /******************************** 摇奖号列表*********************************** */ + + //请求列表 + getLottery(params) { + return ajax({ + url: "/lottnum/list", + type: "get", + params: params, + }); + }, + + /********************************兑换码类型*********************************** */ + // 兑换码类型列表 + // redemptionTypeList(params) { + // return ajax({ + // url: '/exchange/type/list', + // type: 'get', + // params: params + // }) + // }, + // // 添加兑换码类型 + // addType(params) { + // return ajax({ + // url: '/exchange/type/add', + // type: 'post', + // params: params + // }) + // }, + // // 删除兑换码类型 + // delType(params) { + // return ajax({ + // url: '/exchange/type/del', + // type: 'delete', + // params: params + // }) + // }, + // // 修改兑换码类型 + // editType(params) { + // return ajax({ + // url: '/exchange/type/update', + // type: 'post', + // params: params + // }) + // } + /** ********************楼凤列表************************* */ + // 获取楼凤列表 + getLouFengList(params) { + return ajax({ + url: "/loufeng/list", + type: "post", + params: params, + }); + }, + // 新增 + addLoufeng(params) { + return ajax({ + url: "/loufeng/add", + type: "post", + params: params, + }); + }, + // 修改 + updateLoufeng(params) { + return ajax({ + url: "/loufeng/edit", + type: "post", + params: params, + }); + }, + // 删除 + deleteLoufeng(params) { + return ajax({ + url: "/loufeng/del", + type: "delete", + params: params, + }); + }, + + /** **************砸蛋活动流水********************* */ + // 获取砸蛋活动流水 + getWinRecord(params) { + return ajax({ + url: "/activity/record", + type: "get", + params: params, + }); + }, + // 获取奖品名字列表 + getPrizeNames(params) { + return ajax({ + url: "/sge/winRecord/prizeNames", + type: "get", + params: params, + }); + }, +}; + +export default activeApi; diff --git a/src/api/actressManagement.js b/src/api/actressManagement.js new file mode 100644 index 0000000..bcfbd7e --- /dev/null +++ b/src/api/actressManagement.js @@ -0,0 +1,32 @@ +import ajax from "../utils/request"; +const actressApi = { + /********************************活动列表*********************************** */ + // 女优列表 + queryActressList(params) { + return ajax({ + url: "/actor/list", + type: "get", + params: params, + }); + }, + // 新增女优 + addActress(params) { + return ajax({ + url: "/actor/add", + type: "post", + params: params, + }); + }, + + //编辑女优 + editActress(params) { + return ajax({ + url: "/actor/update", + type: "post", + params: params, + }); + }, + +}; + +export default actressApi; \ No newline at end of file diff --git a/src/api/administrators.js b/src/api/administrators.js new file mode 100755 index 0000000..885135e --- /dev/null +++ b/src/api/administrators.js @@ -0,0 +1,53 @@ +import ajax from '../utils/request'; +const admApi = { + /********************************系统管理*********************************** */ + // 添加管理员 + addAdm(params) { + return ajax({ + url: '/manage/add', + type: 'post', + params: params + }); + }, + // 请求管理员列表 + getAdmList(params) { + return ajax({ + url: '/manage/list', + type: 'get', + params: params + }); + }, + // 修改权限 + updateAdm(params) { + return ajax({ + url: '/manage/update', + type: 'post', + params: params + }); + }, + // 删除权限 + delAdm(params) { + return ajax({ + url: '/manage/del', + type: 'delete', + params: params + }); + }, + // 请求管理员日志 + getAdminLog(params) { + return ajax({ + url: '/log/operator', + type: 'get', + params: params + }); + }, + // 编辑管理员操作日志 + editAdminLog(params) { + return ajax({ + url: '/log/operator/modify', + type: 'post', + params: params + }) + } +}; +export default admApi; diff --git a/src/api/advertisingManagement.js b/src/api/advertisingManagement.js new file mode 100755 index 0000000..d57f925 --- /dev/null +++ b/src/api/advertisingManagement.js @@ -0,0 +1,79 @@ +import ajax from '../utils/request' +const adsApi = { + /********************************广告管理*********************************** */ + // 请求广告列表 + getAdList(params) { + return ajax({ + url: '/ads/list', + type: 'get', + params: params + }) + }, + // 新增广告 + addAds(params) { + return ajax({ + url: '/ads/add', + type: 'post', + params: params + }) + }, + // 编辑广告 + editAds(params) { + return ajax({ + url: '/ads/update', + type: 'post', + params: params + }) + }, + // 删除广告 + delAds(params) { + return ajax({ + url: '/ads/del', + type: 'delete', + params: params + }) + }, + // 请求点击日志列表 + getClickLog(params) { + return ajax({ + url: '/log/ads', + type: 'get', + params: params + }) + }, + /********************************公告管理*********************************** */ + // 请求公告列表 + getAnnouList(params) { + return ajax({ + url: '/annou/list', + type: 'get', + params: params + }) + }, + // 新增公告 + addAnnou(params) { + return ajax({ + url: '/annou/add', + type: 'post', + params: params + }) + }, + // 编辑公告 + editAnnou(params) { + return ajax({ + url: '/annou/update', + type: 'post', + params: params + }) + }, + // 删除公告 + delAnnou(params) { + return ajax({ + url: '/annou/del', + type: 'delete', + params: params + }) + }, + +} +export default adsApi diff --git a/src/api/agentDistrictProvider.js b/src/api/agentDistrictProvider.js new file mode 100644 index 0000000..809e096 --- /dev/null +++ b/src/api/agentDistrictProvider.js @@ -0,0 +1,260 @@ +import ajax from "../utils/request"; + +const angentDistrictApi = { + /*************************代理列表*************************/ + // 获取商区代理列表 or 下级代理 (共用接口,传参数不同) + getDistrictList(params) { + return ajax({ + url: "/district/list", + type: "get", + params: params, + }); + }, + // 新增商区代理 + addDistrict(params) { + return ajax({ + url: "/district/add", + type: "post", + params: params, + }); + }, + + //编辑---修改基础数据 + updateBase(params) { + return ajax({ + url: "/district/update/update/base", + type: "post", + params: params, + }); + }, + //编辑---修改充值配置 + updateDedRecharge(params) { + return ajax({ + url: "/district/update/update/dedRecharge", + type: "post", + params: params, + }); + }, + //编辑---修改用户配置 + updateDedNewUser(params) { + return ajax({ + url: "/district/update/update/dedNewUser", + type: "post", + params: params, + }); + }, + //编辑---修改落地页配置 + updateLandPage(params) { + return ajax({ + url: "/district/update/update/ldy", + type: "post", + params: params, + }); + }, + // // 编辑商区代理 + // updateDistrict(params) { + // return ajax({ + // url: "/district/update", + // type: "post", + // params: params, + // }); + // }, + + // 删除商区代理 + delDistrict(params) { + return ajax({ + url: "/district/delete", + type: "delete", + params: params, + }); + }, + /*** 禁用 */ + disDistrict(params) { + return ajax({ + url: "/district/disable", + type: "post", + params: params, + }); + }, + + /*** 购买记录 */ + getPayHisList(params) { + return ajax({ + url: "/district/agent/trans/BuyVip/list", + type: "get", + params: params, + }); + }, + /** 每日统计 */ + getStatDailyList(params) { + return ajax({ + url: "/district/agent/stat/daily/list", + type: "get", + params: params, + }); + }, + /** 结算账单*/ + getStatSettlementList(params) { + return ajax({ + url: "/district/agent/bill/list", + type: "get", + params: params, + }); + }, + // 提现记录 + getWithdrawLists(params) { + return ajax({ + url: "/district/agent/order/withdraw/list", + type: "get", + params: params, + }); + }, + // 充值记录 + getRechargeList(params) { + return ajax({ + url: "/district/agent/order/recharge/list", + type: "get", + params: params, + }); + }, + //编辑--扣用户 + handleNewUserAnalysis(params) { + return ajax({ + url: "/district/deduct/newUser/analysis", + type: "post", + params, + }); + }, + //编辑--扣充值 + handleRechargeAnalysis(params) { + return ajax({ + url: "/district/deduct/recharge/analysis", + type: "post", + params, + }); + }, + //下级代理--添加 + addSubAgent(params) { + return ajax({ + url: "/district/agent/add", + type: "post", + params: params, + }); + }, + + /************************* 代理权限*************************/ + //获取权限列表 + getRoleList(params) { + return ajax({ + url: "/district/author/list", + type: "get", + params: params, + }); + }, + // 新增权限列表 + addRole(params) { + return ajax({ + url: "/district/author/add", + type: "post", + params: params, + }); + }, + // 修改权限列表 + updateRole(params) { + return ajax({ + url: "/district/author/update", + type: "post", + params: params, + }); + }, + // 删除权限列表 + deleteRole(params) { + return ajax({ + url: "/district/author/del", + type: "delete", + params: params, + }); + }, + // 克隆权限 + clone(params) { + return ajax({ + url: "/district/author/cloneToChild", + type: "post", + params: params, + }); + }, + + /************************* 每日报表*************************/ + // 获取每日报表列表 + getDailyList(params) { + return ajax({ + url: "/district/agent/report/daily/list", + type: "get", + params: params, + }); + }, + + /************************* 每日报表*************************/ + // 获取每日报表列表 + getMonthlyList(params) { + return ajax({ + url: "/district/agent/report/monthly/list", + type: "get", + params: params, + }); + }, + + /************************* 域名列表*************************/ + // 获取域名表列表 + getDomainList(params) { + return ajax({ + url: "/district/domain/list", + type: "get", + params: params, + }); + }, + // 修改域名 + updateDomain(params) { + return ajax({ + url: "/district/domain/update", + type: "post", + params: params, + }); + }, + // 删除域名 + delDomain(params) { + return ajax({ + url: "/district/domain/del", + type: "delete", + params: params, + }); + }, + //添加域名 + addDomain(params) { + return ajax({ + url: "/district/domain/add", + type: "post", + params: params, + }); + }, + + /*********************广告审核**************************/ + // 请求广告审核列表 + getAdReviewList(params) { + return ajax({ + url: "/district/ad/review/list", + type: "get", + params: params, + }); + }, + //广告审核 + AdReview(params) { + return ajax({ + url: "/district/ad/review/check", + type: "post", + params: params, + }); + }, +}; + +export default angentDistrictApi; diff --git a/src/api/ai.js b/src/api/ai.js new file mode 100755 index 0000000..ca8b18b --- /dev/null +++ b/src/api/ai.js @@ -0,0 +1,230 @@ +import ajax from "../utils/request"; +const voteApi = { + /********************************AI交易列表*********************************** */ + // 请求AI交易列表 + getAiTransList(params) { + return ajax({ + url: "/ai/undress/list", + type: "get", + params: params, + }); + }, + // AI交易审核 + aiTransExamine(params) { + return ajax({ + url: "/ai/undress/update", + type: "post", + params: params, + }); + }, + // AI交易自动处理 + aiTransAuto(params) { + return ajax({ + url: "/ai/undress/auto", + type: "post", + params: params, + }); + }, + // AI交易批量自动处理 + aiTransBatchAuto(params) { + return ajax({ + url: "/ai/undress/auto/batch", + type: "post", + params: params, + }); + }, + /********************************AI图片换脸交易列表*********************************** */ + // 请求AI图片换脸交易列表 + getAiImgTransList(params) { + return ajax({ + url: "/ai/change_face_img/list", + type: "get", + params: params, + }); + }, + // AI图片换脸交易审核 + aiImgTransExamine(params) { + return ajax({ + url: "/ai/change_face_img/update", + type: "post", + params: params, + }); + }, + /********************************AI换脸模版*********************************** */ + // 获取AI换脸模版列表 + getChangeFaceModList(params) { + return ajax({ + url: "/ai/changeface/mod/list", + type: "get", + params: params, + }); + }, + // 添加AI换脸模版 + addChangeFaceMod(params) { + return ajax({ + url: "/ai/changeface/mod/add", + type: "post", + params: params, + }); + }, + // 修改AI换脸模版 + updateChangeFaceMod(params) { + return ajax( + { + url: "/ai/changeface/mod/update", + type: "post", + params: params, + }, + true + ); + }, + // 获取AI换脸交易列表 + getChangeFaceList(params) { + return ajax({ + url: "/ai/changeface/list", + type: "get", + params: params, + }); + }, + // 编辑AI换脸交易列表 + updChangeFaceList(params) { + return ajax({ + url: "/ai/changeface/update", + type: "post", + params: params, + }); + }, + // 给用户添加AI换脸折扣券 + addUserAiChangeFaceDiscount(params) { + return ajax({ + url: "/user/generate/aiChangeFaceDiscount", + type: "post", + params: params, + }); + }, + // 查询AI换脸折扣券奖品列表 + getAiChangeFaceDiscountList() { + return ajax({ + url: "/user/gainAiPrize", + type: "get", + }); + }, + /********************************AI模块列表*********************************** */ + getTemplateList(params) { + return ajax({ + url: "/ai_template_module/list", + type: "get", + params: params, + }); + }, + addTemplate(params) { + return ajax({ + url: "/ai_template_module/create", + type: "post", + params: params, + }); + }, + updateTemplate(params) { + return ajax({ + url: "/ai_template_module/update", + type: "post", + params: params, + }); + }, + deleteTemplate(params) { + return ajax({ + url: "/ai_template_module/delete", + type: "post", + params: params, + }); + }, + getTemplateAll() { + return ajax({ + url: "/ai_template_module/all", + type: "get", + }); + }, + setTemplateAll(params) { + return ajax({ + url: "/ai/changeface/mod/batch/update", + type: "post", + params: params, + }); + }, + /********************************AI广场列表*********************************** */ + geTaiplazaList(params) { + return ajax({ + url: "/aiplaza/list", + type: "get", + params: params, + }); + }, + createAiplaza(params) { + return ajax({ + url: "/aiplaza/create", + type: "post", + params: params, + }); + }, + + updateAiplaza(params) { + return ajax({ + url: "/aiplaza/update", + type: "post", + params: params, + }); + }, + // 批量修改 + updateBatchAiplaza(params) { + return ajax({ + url: "/aiplaza/batch/update", + type: "post", + params: params, + }); + }, + deleteAiplaza(params) { + return ajax({ + url: "/aiplaza/delete", + type: "post", + params: params, + }); + }, + getAllScene(params) { + return ajax({ + url: "/ai/changeface/mod/all/scene", + type: "get", + params, + }); + }, + /******************************** AI小说订单 *********************************** */ + getAiNovelList(params) { + return ajax({ + url: "/ai/text_to_novel/list", + type: "get", + params, + }); + }, + delAiNovel(params) { + return ajax({ + url: "/ai/text_to_novel/delete", + type: "post", + params, + }); + }, + updateAiNovel(params) { + return ajax({ + url: "/ai/text_to_novel/update", + type: "post", + params, + }); + }, + /********************************AI女友V2消费流水*********************************** */ + getAimatev2OrderLogs(params) { + return ajax({ + url: "/aimatev2/order_logs", + type: "get", + params: params, + }); + }, +}; +export default voteApi; diff --git a/src/api/angentManagement.js b/src/api/angentManagement.js new file mode 100755 index 0000000..2bf0caa --- /dev/null +++ b/src/api/angentManagement.js @@ -0,0 +1,42 @@ +import ajax from '../utils/request'; + +const angentApi = { + /***************************金币流水管理****************************** */ + // 获取用户推广日志 + getExtensionList(params) { + return ajax({ + url: '/proxy/log', + type: 'get', + params: params + }); + }, + // 获取用户推广查询列表 + getUserExtensionList(parmas) { + return ajax({ + url: '/proxy/promotion', + type: 'get', + params: parmas + }); + }, + +/***************************代理列表****************************** */ + // 代理列表配置 + getProxyList(params) { + return ajax({ + url: '/proxy/totalIncome', + type: 'get', + params: params + }); + }, + // 代理列表详情记录 + getProxyDetails(params) { + return ajax({ + url: '/proxy/income/details', + type: 'get', + params: params + }); + }, +}; + + +export default angentApi; diff --git a/src/api/animation.js b/src/api/animation.js new file mode 100644 index 0000000..4f216f2 --- /dev/null +++ b/src/api/animation.js @@ -0,0 +1,340 @@ +import ajax from "../utils/request"; +const animationApi = { + /********************************动漫列表*********************************** */ + // 获取动漫列表 + getAnimeList(params) { + return ajax({ + url: "/media/list", + type: "get", + params: params, + }); + }, + // 添加动漫 + addAnime(params) { + return ajax({ + url: "/media/create", + type: "post", + params: params, + }); + }, + // 删除动漫 + delAnime(params) { + return ajax({ + url: "/media/delete", + type: "post", + params: params, + }); + }, + // 修改动漫 + updateAnime(params) { + return ajax({ + url: "/media/update", + type: "post", + params: params, + }); + }, + // 动漫导出 + exportMediaList(params) { + return ajax({ + url: "/media/export", + type: "post", + responseType: "blob", + params: params, + }); + }, + // 批量删除动漫列表 + batchDelMedia(params) { + return ajax({ + url: "/media/batch/delete", + type: "post", + params: params, + }); + }, + /********************************动漫推荐列表*********************************** */ + // 获取动漫推荐列表 + getMediaRecommendList(params) { + return ajax({ + url: "/media_recommend/list", + type: "get", + params: params, + }); + }, + // 添加动漫推荐 + addMediaRecommend(params) { + return ajax({ + url: "/media_recommend/create", + type: "post", + params: params, + }); + }, + // 删除动漫推荐 + delMediaRecommend(params) { + return ajax({ + url: "/media_recommend/delete", + type: "post", + params: params, + }); + }, + // 修改动漫推荐 + updateMediaRecommend(params) { + return ajax({ + url: "/media_recommend/update", + type: "post", + params: params, + }); + }, + // 获取动漫推荐信息 + getMediaRecommendInfo(params) { + return ajax({ + url: "/media_recommend/info", + type: "get", + params: params, + }); + }, + /********************************动漫任务列表*********************************** */ + // 获取动漫任务列表 + getMediaTaskList(params) { + return ajax({ + url: "/media_task/list", + type: "get", + params: params, + }); + }, + // 添加动漫任务 + addMediaTask(params) { + return ajax({ + url: "/media_task/create", + type: "post", + params: params, + }); + }, + // 删除动漫任务 + delMediaTask(params) { + return ajax({ + url: "/media_task/delete", + type: "post", + params: params, + }); + }, + // 修改动漫任务 + updateMediaTask(params) { + return ajax({ + url: "/media_task/update", + type: "post", + params: params, + }); + }, + /********************************动漫上传列表*********************************** */ + // 视频上传 + uploadMedia(params) { + return ajax({ + url: "/media/create", + type: "post", + params: params, + }); + }, + // 子媒体上传 + subUploadMedia(params) { + return ajax({ + url: "/media_content/create", + type: "post", + params: params, + }); + }, + // 校验媒体是否存在 + getMediaInfo(params) { + return ajax({ + url: "/media/find", + type: "get", + params: params, + }); + }, + // 获取种类、维度下的标签 + getMediaTagByKindDimension(params) { + return ajax({ + url: "/media_tag/all", + type: "get", + params: params, + }); + }, + // 设置媒体状态 + setMediaStatus(params) { + return ajax({ + url: "/media/batch/update", + type: "post", + params: params, + }); + }, + // 获取动漫专题 + queryModuleCartoonAll(params) { + return ajax({ + url: "/module/conf/cartoon/all", + type: "get", + params: params, + }); + }, + /********************************动漫内容列表*********************************** */ + // 获取动漫内容列表 + getAnimeContentList(params) { + return ajax({ + url: "/media_content/list", + type: "get", + params: params, + }); + }, + // 添加动漫内容 + addAnimeContent(params) { + return ajax({ + url: "/media_content/create", + type: "post", + params: params, + }); + }, + // 删除动漫内容 + delAnimeContent(params) { + return ajax({ + url: "/media_content/delete", + type: "post", + params: params, + }); + }, + // 修改动漫内容 + updateAnimeContent(params) { + return ajax({ + url: "/media_content/update", + type: "post", + params: params, + }); + }, + // 修改动漫内容 + setSubMediaStatus(params) { + return ajax({ + url: "/media_content/batch/update", + type: "post", + params: params, + }); + }, + // 查询剧集转码状态 + getMediaContentView(id) { + return ajax({ + url: "/media_content/view/" + id, + type: "get", + }); + }, + /********************************动漫标签列表*********************************** */ + // 获取动漫标签列表 + getAnimeTagList(params) { + return ajax({ + url: "/media_tag/list", + type: "get", + params: params, + }); + }, + // 获取动漫所有纬度 + getAnimeAllLatitude(params) { + return ajax({ + url: "/media_tag_dimension/all", + type: "get", + params: params, + }); + }, + // 添加动漫标签 + addAnimeTag(params) { + return ajax({ + url: "/media_tag/create", + type: "post", + params: params, + }); + }, + // 删除动漫标签 + delAnimeTag(params) { + return ajax({ + url: "/media_tag/delete", + type: "post", + params: params, + }); + }, + // 修改动漫标签 + updateAnimeTag(params) { + return ajax({ + url: "/media_tag/update", + type: "post", + params: params, + }); + }, + /********************************纬度列表*********************************** */ + // 获取纬度列表 + getLatitudeList(params) { + return ajax({ + url: "/media_tag_dimension/list", + type: "get", + params: params, + }); + }, + // 添加纬度 + addLatitude(params) { + return ajax({ + url: "/media_tag_dimension/create", + type: "post", + params: params, + }); + }, + // 删除纬度 + delLatitude(params) { + return ajax({ + url: "/media_tag_dimension/delete", + type: "post", + params: params, + }); + }, + // 修改纬度 + updateLatitude(params) { + return ajax({ + url: "/media_tag_dimension/update", + type: "post", + params: params, + }); + }, + /***********************acg媒体资源库************************ */ + // 查询acg媒体资源库列表 + queryAcgMediaResConfig(params) { + return ajax({ + url: "/mediaResource/media/list", + type: "get", + params: params, + }); + }, + // 查询acg媒体资源库列表(子) + queryAcgMediaContentResConfig(params) { + return ajax({ + url: "/mediaResource/media/content_list", + type: "get", + params: params, + }); + }, + // acg媒体使用 + useAcgMediaRes(params) { + return ajax({ + url: "/mediaResource/media/use", + type: "post", + params: params, + }); + }, + // acg媒体使用 + ignoreAcgMediaRes(params) { + return ajax({ + url: "/mediaResource/media/ignore", + type: "post", + params: params, + }); + }, + // acg媒体同步 + acgMediaSync(params) { + return ajax({ + url: "/mediaResource/media/sync", + type: "post", + params: params, + }); + }, +}; +export default animationApi; diff --git a/src/api/author.js b/src/api/author.js new file mode 100755 index 0000000..1845c3e --- /dev/null +++ b/src/api/author.js @@ -0,0 +1,38 @@ +import ajax from '../utils/request' +const authorApi = { + /********************************主后台权限管理*********************************** */ + // 删除权限 + delAuthor(params) { + return ajax({ + url: '/author/del', + type: 'delete', + params: params + }) + }, + // 获取权限/角色列表 + getAuthorList(params) { + return ajax({ + url: '/author/list', + type: 'get', + params: params + }) + }, + // 修改权限 + updateAuthor(params) { + return ajax({ + url: '/author/update', + type: 'post', + params: params + }) + }, + // 添加角色 + addAuthor(params) { + return ajax({ + url: '/author/add', + type: 'post', + params: params + }) + }, + +} +export default authorApi \ No newline at end of file diff --git a/src/api/avComment.js b/src/api/avComment.js new file mode 100755 index 0000000..c5b60e9 --- /dev/null +++ b/src/api/avComment.js @@ -0,0 +1,28 @@ +import ajax from '../utils/request' +const avCommentApi = { + // 获取AV解说列表 + getAvCommentList(params) { + return ajax({ + url: '/avcomment/list', + type: 'post', + params: params + }) + }, + // 添加 + addAvComment(params) { + return ajax({ + url: '/avcomment/add', + type: 'post', + params: params + }) + }, + // 编辑 + editAvComment(params) { + return ajax({ + url: '/avcomment/edit', + type: 'post', + params: params + }) + }, +} +export default avCommentApi diff --git a/src/api/balance.js b/src/api/balance.js new file mode 100644 index 0000000..9b82a6c --- /dev/null +++ b/src/api/balance.js @@ -0,0 +1,14 @@ +import ajax from '../utils/request'; +const balanceApi = { + /*******************************商人上分管理*********************************** */ + +getBalanceList(params) { + return ajax({ + url:'/daichong/merchant/balanceList', + type:'get', + params + }) + } +} +export default balanceApi; + diff --git a/src/api/businessman.js b/src/api/businessman.js new file mode 100644 index 0000000..af80d77 --- /dev/null +++ b/src/api/businessman.js @@ -0,0 +1,169 @@ +import ajax from '../utils/request'; +const businessmanApi = { + /********************************代充,商人管理*********************************** */ + /** + * 编辑商人 + * @param {*} params + * @param {String} params.uid 商户id + * @param {String} params.name 账户名 + * @param {String} params.password 密码 + * @param {String} params.nickname 昵称 + * @param {String} params.email 邮箱 + * @param {String} params.mobile 手机号 + * @param {String} params.cid 商人所属聚商ID + * @param {String} params.channel 商人所属渠道 + * @param {String} params.wechat 微信号码 + * @param {Number} params.balance 商人余额 + */ + editBusinessman(params) { + return ajax({ + url: '/daichong/merchant/edit', + type: 'post', + params: params + }) + }, + /** + * 删除商人 + * @param {*} params + * @param {Array} params.uids 商人id + */ + delBusinessman(params){ + return ajax({ + url:'/daichong/merchant/del', + type:'delete', + params, + + }) + }, +/** + * 商人列表 + * @param {*} params + * @param {String} params.uid 商户id + * @param {String} params.name 账户名 + * @param {String} params.nickname 昵称 + * @param {String} params.mobile 手机号 + * @param {String} params.cid 商人所属聚商ID + * @param {String} params.channel 商人所属渠道 + * @param {Number} params.pageNumber 当前页 + * @param {Number} params.pageSize 每页条数 + */ + getBusinessmanList(params) { + return ajax({ + url:'/daichong/merchant/list', + type:'get', + params + }) + }, + /** + * 增加商人 + * @param {*} params + * @param {String} params.name 账户名 + * @param {String} params.password 密码 + * @param {String} params.nickname 昵称 + * @param {String} params.email 邮箱 + * @param {String} params.mobile 手机号 + * @param {String} params.cid 商人所属聚商ID + * @param {String} params.channel 商人所属渠道 + * @param {String} params.wechat 微信号码 + * @param {Number} params.balance 商人余额 + */ + addBusinessman(params) { + return ajax({ + url:'/daichong/merchant/add', + type:'post', + params, + // headers: { + // 'Content-Type': 'multipart/form-data' + // } + }) + }, + //商人上分 + addOrDebitScore(params) { + return ajax({ + url:'/daichong/merchant/addOrDebitScore', + type:'post', + params + }) + }, +// 商人追分 + seekScore(params) { + return ajax({ + url:'/daichong/merchant/seekScore', + type:'post', + params + }) + }, +// ----------------------聚商管理模块 + // 增 + addGatheringList(params) { + return ajax({ + url: '/jushang/merchant/add', + type: 'post', + params + }) + }, + // 删 + delGatheringList(params) { + return ajax({ + url: '/jushang/merchant/del', + type: 'delete', + params + }) + }, + // 改 + editGatheringList(params) { + return ajax({ + url: '/jushang/merchant/edit', + type: 'post', + params + }) + }, + // 查询 + getGatheringList(params) { + return ajax({ + url: '/jushang/merchant/list', + type: 'get', + params + }) + }, + // 商人余额信息 + businessblBalance(params) { + return ajax({ + url: '/jushang/merchant/info', + type: 'get', + params + }) + }, + // 商人上分 + onPointsGathering(params) { + return ajax({ + url: '/jushang/merchant/addOrDebitScore', + type: 'post', + params + }) + }, + // 商人追分 + chasePointsGathering(params) { + return ajax({ + url: '/jushang/merchant/seekScore', + type: 'post', + params + }) + }, + // 聚商商人上分列表 + JushangList(params) { + return ajax({ + url: '/jushang/merchant/balanceList', + type: 'get', + params + }) + }, +} + + + + + + +export default businessmanApi; + diff --git a/src/api/channelBackground.js b/src/api/channelBackground.js new file mode 100755 index 0000000..fd9e811 --- /dev/null +++ b/src/api/channelBackground.js @@ -0,0 +1,57 @@ +import ajax from '../utils/request' + +const channelBApi = { + /***************************渠道明细****************************** */ + // 请求渠道查询,日志(同一个)列表列表 + getChannelDetailList(params) { + return ajax({ + url: '/channel/manage/detail', + type: 'get', + params: params + }) + }, +/***************************渠道账簿****************************** */ + getBookList(params) { + return ajax({ + url: '/channel/manage/accountbook', + type: 'get', + params: params + }) + }, +/***************************自助结算审核****************************** */ +// 自助结算审核列表数据 + getAutoAccountList(params) { + return ajax({ + url: '/channel/manage/autoaccount', + type: 'get', + params: params + }) + }, + // 编辑账单 + automaticBillGeneration(params) { + return ajax({ + url: '/channel/manage/autoaccount/modify', + type: 'post', + params: params + }) + }, + // 编辑银行卡信息 + editBank(params) { + return ajax({ + url: '/channel/manage/autoaccount/addbank', + type: 'post', + params: params + }) + }, +/***************************银行卡配置****************************** */ + // 银行卡列表数据 + getBankList(params) { + return ajax({ + url: '/channel/manage/bank', + type: 'get', + params: params + }) + }, +} + +export default channelBApi diff --git a/src/api/channelManagement.js b/src/api/channelManagement.js new file mode 100755 index 0000000..9c36545 --- /dev/null +++ b/src/api/channelManagement.js @@ -0,0 +1,131 @@ +import ajax from '../utils/request' + +const channelApi = { + /***************************渠道查询****************************** */ + // 请求渠道查询,日志(同一个)列表列表 + getChannelLogList(params) { + return ajax({ + url: '/channel/channelLog/list', + type: 'get', + params: params + }) + }, + // 修改渠道日志 + updateChannelLog(params) { + return ajax({ + url: '/channel/channelLog/update', + type: 'post', + params: params + }) + }, + /***************************渠道号管理****************************** */ + // 请求渠道号列表 + getNumberList(params) { + return ajax({ + url: '/channel/list', + type: 'get', + params: params + }) + }, + // 删除渠道号 + delNumberList(params) { + return ajax({ + url: '/channel/delete', + type: 'delete', + params: params + }) + }, + // 请求渠道成本列表 + getChannelCostList(params) { + return ajax({ + url: '/channel/channelCost/list', + type: 'get', + params: params + }) + }, + // 请求渠道成本列表 + updateChannelCost(params) { + return ajax({ + url: '/channel/channelCost/update', + type: 'post', + params: params + }) + }, + // 新增渠道号 + addNumber(params) { + return ajax({ + url: '/channel/add', + type: 'post', + params: params + }) + }, + // 编辑渠道号 + updateNumber(params) { + return ajax({ + url: '/channel/update', + type: 'post', + params: params + }) + }, + /***************************渠道商管理****************************** */ + // 请求渠道商列表 + getAgentList(params) { + return ajax({ + url: '/channel/channelAgent/list', + type: 'get', + params: params + }) + }, + // 新增渠道商 + addAgent(params) { + return ajax({ + url: '/channel/channelAgent/add', + type: 'post', + params: params + }) + }, + // 编辑渠道商 + updateAgent(params) { + return ajax({ + url: '/channel/channelAgent/update', + type: 'post', + params: params + }) + }, + // 删除渠道商 + delAgent(params) { + return ajax({ + url: '/channel/channelAgent/delete', + type: 'delete', + params: params + }) + }, + /***************************渠道页面配置****************************** */ + // 渠道页面配置列表 + getChannelConfigList(params) { + return ajax({ + url: '/channel/channelPage/list', + type: 'get', + params: params + }) + }, + // 渠道页面修改 + updateChannelConfig(params) { + return ajax({ + url: '/channel/channelPage/update', + type: 'post', + params: params + }) + }, + /***************************渠道页面配置****************************** */ + // 渠道成本修改记录 + getChannelUpdateList(params) { + return ajax({ + url: '/channel/changeRecord/list', + type: 'get', + params: params + }) + } +} + +export default channelApi diff --git a/src/api/contentReview.js b/src/api/contentReview.js new file mode 100644 index 0000000..9a6b65d --- /dev/null +++ b/src/api/contentReview.js @@ -0,0 +1,123 @@ +import ajax from "../utils/request"; +import axios from "axios"; +import config from "../utils/serverUrlConfig"; +import local from "../utils/localStroage.js"; + +function authHeaders() { + const token = local.get("userInfo") ? local.get("userInfo").token : ""; + return token ? { Authorization: token } : {}; +} + +const contentReviewApi = { + /** 敏感词列表 */ + sensitiveWordList(params) { + return ajax({ + url: "/sensitive-word/list", + type: "get", + params, + }); + }, + sensitiveWordAdd(params) { + return ajax({ + url: "/sensitive-word/add", + type: "post", + params, + }); + }, + sensitiveWordUpdate(params) { + return ajax({ + url: "/sensitive-word/update", + type: "post", + params, + }); + }, + sensitiveWordDelete(params) { + return ajax({ + url: "/sensitive-word/delete", + type: "post", + params, + }); + }, + /** xlsx 导出(GET + query) */ + sensitiveWordExport(params) { + return ajax({ + url: "/sensitive-word/export", + type: "get", + params, + responseType: "blob", + }); + }, + /** 下载导入模版(空 xlsx) */ + sensitiveWordTemplate() { + return ajax({ + url: "/sensitive-word/template", + type: "get", + responseType: "blob", + }); + }, + /** 发起检测任务 */ + contentReviewCreate(params) { + return ajax({ + url: "/content-review/create", + type: "post", + params, + }); + }, + contentReviewList(params) { + return ajax({ + url: "/content-review/list", + type: "get", + params, + }); + }, + contentReviewDetail(params) { + return ajax({ + url: "/content-review/detail", + type: "get", + params, + }); + }, + contentReviewIssues(params) { + return ajax({ + url: "/content-review/issues", + type: "get", + params, + }); + }, + contentReviewIssueResolve(params) { + return ajax({ + url: "/content-review/issue/resolve", + type: "post", + params, + }); + }, + contentReviewIssueReject(params) { + return ajax({ + url: "/content-review/issue/reject", + type: "post", + params, + }); + }, + /** 批量下架命中记录对应资源 */ + contentReviewIssueBatchOffshelf(params) { + return ajax({ + url: "/content-review/issue/batch-offshelf", + type: "post", + params, + }); + }, + /** 敏感词 xlsx 导入(multipart) */ + sensitiveWordImport(file) { + const fd = new FormData(); + fd.append("upload", file); + return axios + .post(`${config.baseServerUrl}/sensitive-word/import`, fd, { + headers: { + ...authHeaders(), + }, + }) + .then((r) => r.data); + }, +}; + +export default contentReviewApi; diff --git a/src/api/discountAreaManagement.js b/src/api/discountAreaManagement.js new file mode 100644 index 0000000..ea70401 --- /dev/null +++ b/src/api/discountAreaManagement.js @@ -0,0 +1,71 @@ +import ajax from "../utils/request"; +const discountAreaManagementApi = { + /********************************折扣专区列表*********************************** */ + // 请求折扣专区列表 + getDiscountAreaList(params) { + return ajax({ + url: "/discount_area/list", + type: "get", + params: params, + }); + }, + // 添加折扣专区 + addDiscountArea(params) { + return ajax({ + url: "/discount_area/add", + type: "post", + params: params, + }); + }, + // 修改折扣专区 + updateDiscountArea(params) { + return ajax({ + url: "/discount_area/update", + type: "post", + params: params, + }); + }, + // 删除折扣专区 + deleteDiscountArea(params) { + return ajax({ + url: "/discount_area/delete", + type: "post", + params: params, + }); + }, + /********************************折扣专区视频列表*********************************** */ + // 请求折扣专区视频列表 + getDiscountAreaVideoList(params) { + return ajax({ + url: "/discount_area/vid/list", + type: "get", + params: params, + }); + }, + // 添加折扣专区视频 + addDiscountAreaVideo(params) { + return ajax({ + url: "/discount_area/vid/add", + type: "post", + params: params, + }); + }, + // 修改折扣专区视频 + updateDiscountAreaVideo(params) { + return ajax({ + url: "/discount_area/vid/update", + type: "post", + params: params, + }); + }, + // 删除折扣专区视频 + deleteDiscountAreaVideo(params) { + return ajax({ + url: "/discount_area/vid/delete", + type: "post", + params: params, + }); + }, +}; + +export default discountAreaManagementApi; diff --git a/src/api/fiction.js b/src/api/fiction.js new file mode 100755 index 0000000..c5e685c --- /dev/null +++ b/src/api/fiction.js @@ -0,0 +1,126 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-12-17 20:38:54 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-26 14:38:36 + */ +import ajax from '../utils/request' + +const fictionApi = { + /***************************小说列表****************************** */ + // 获取列表 + getfFiction(params) { + return ajax({ + url: '/fiction/list', + type: 'post', + params: params + }) + }, + // 修改 + updateFiction(params) { + return ajax({ + url: '/fiction/edit', + type: 'post', + params: params + }) + }, + // 新增 + addFiction(params) { + return ajax({ + url: '/fiction/add', + type: 'post', + params: params + }) + }, + // 删除 + deleteFiction(params) { + return ajax({ + url: '/fiction/del', + type: 'delete', + params: params + }) + }, + // 查看报错小详情 + getErr(params) { + return ajax({ + url: '/fiction/get', + type: 'post', + params: params + }) + }, + /***************************举报列表****************************** */ + // 获取列表 + getErrFeedback(params) { + return ajax({ + url: '/errFeedback/list', + type: 'post', + params: params + }) + }, + // 修改 + updateErrFeedback(params) { + return ajax({ + url: '/errFeedback/edit', + type: 'post', + params: params + }) + }, + // 新增 + addErrFeedback(params) { + return ajax({ + url: '/errFeedback/add', + type: 'post', + params: params + }) + }, + // 删除 + deleteErrFeedback(params) { + return ajax({ + url: '/errFeedback/del', + type: 'delete', + params: params + }) + }, + /***************************有声小说列表****************************** */ + // 获取列表 + getAudiobook(params) { + return ajax({ + url: '/audiobook/list', + type: 'post', + params: params + }) + }, + // 本书配置 + updateAudiobook(params) { + return ajax({ + url: '/audiobook/edit', + type: 'post', + params: params + }) + }, + // 新增 + addAudiobook(params) { + return ajax({ + url: '/audiobook/add', + type: 'post', + params: params + }) + }, + // 删除 + deleteAudiobook(params) { + return ajax({ + url: '/audiobook/del', + type: 'delete', + params: params + }) + } , + // 一键配置 + editPrice(params) { + return ajax({ + url: '/audiobook/editBatch', + type: 'post', + params: params + }) + }, +} +export default fictionApi diff --git a/src/api/groupChatManagement.js b/src/api/groupChatManagement.js new file mode 100644 index 0000000..7020dca --- /dev/null +++ b/src/api/groupChatManagement.js @@ -0,0 +1,86 @@ +import ajax from '../utils/request' +const groupChatManagementApi = { + // 群组列表 + getImgroupList(params) { + return ajax({ + url: '/imgroup/list', + type: 'get', + params: params + }) + }, + // 群组新增 + createImgroup(params) { + return ajax({ + url: '/imgroup/create', + type: 'post', + params: params + }) + }, + // 群组修改 + updateImgroup(params) { + return ajax({ + url: '/imgroup/update', + type: 'post', + params: params + }) + }, + + // 群成员列表 + getImgroupmemberList(params) { + return ajax({ + url: '/imgroupmember/list', + type: 'get', + params: params + }) + }, + // 群成员新增 + createImgroupmember(params) { + return ajax({ + url: '/imgroupmember/create', + type: 'post', + params: params + }) + }, + // 群成员修改 + updateImgroupmember(params) { + return ajax({ + url: '/imgroupmember/update', + type: 'post', + params: params + }) + }, + + // 群消息列表 + getImmessageList(params) { + return ajax({ + url: '/immessage/list', + type: 'get', + params: params + }) + }, + // 群消息新增 + createImmessage(params) { + return ajax({ + url: '/immessage/create', + type: 'post', + params: params + }) + }, + // 群消息修改 + updateImmessage(params) { + return ajax({ + url: '/immessage/update', + type: 'post', + params: params + }) + }, + // 群消息删除 + deleteImmessage(params) { + return ajax({ + url: '/immessage/delete', + type: 'post', + params: params + }) + }, +} +export default groupChatManagementApi \ No newline at end of file diff --git a/src/api/home.js b/src/api/home.js new file mode 100755 index 0000000..5dd1d51 --- /dev/null +++ b/src/api/home.js @@ -0,0 +1,46 @@ +import ajax from '../utils/request' +const homeApi = { + /********************************首页*********************************** */ + // 登陆 + getStatData(params) { + return ajax({ + url: '/home/statData', + type: 'get', + params: params + }) + }, + // 上传图片接口 + uploadImg(param) { + return ajax({ + url: '/vid/uploadStatic', + type: 'post', + params: param + }) + }, + // 视频上传成功回调通知接口 + uploadSuccess(param) { + return ajax({ + url: '/vid/uploadSuccess', + type: 'post', + params: param + }) + }, + // 访问量折线图数据接口 + getViewsData(params) { + return ajax({ + url: '/home/points/visit', + type: 'get', + params:params + }) + }, + // 注册量折线图数据接口 + getRegisteredChart(params) { + return ajax({ + url: '/home/points/regist', + type: 'get', + params:params + }) + }, + +} +export default homeApi diff --git a/src/api/hotManagement.js b/src/api/hotManagement.js new file mode 100644 index 0000000..91e28e0 --- /dev/null +++ b/src/api/hotManagement.js @@ -0,0 +1,40 @@ +import ajax from '../utils/request' +const hotApi = { +/***************************热点管理****************************** */ +/*************************排行页面***************************** */ + // 排行列表 + getRankList(params) { + return ajax({ + ulr: '', + type: 'get', + params: params + }) + }, + // 编辑排行 + updateRank(params) { + return ajax({ + url: '', + type: 'post', + params: params + }) + }, +/*************************发现精彩***************************** */ + // 发现精彩列表 + getWonderfulList(params) { + return ajax({ + url: '', + type: 'get', + params: params + }) + }, +// 编辑精彩 + updateWonderful(params) { + return ajax({ + url: '', + type: 'post', + params: params + }) + }, +} + +export default hotApi \ No newline at end of file diff --git a/src/api/index.js b/src/api/index.js new file mode 100755 index 0000000..834e314 --- /dev/null +++ b/src/api/index.js @@ -0,0 +1,121 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-13 17:37:19 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-17 21:44:43 + */ +// 首页统计数据接口 +// 活动管理接口 +import activeApi from "./activeManagement"; +// 女优管理接口 +import actressApi from "./actressManagement"; +// 系统管理接口 +import admApi from "./administrators"; +// 广告管理api接口 +import adsApi from "./advertisingManagement"; +// 代理管理Api接口 +import angentApi from "./angentManagement"; +// 权限管理接口 +import authorApi from "./author"; +import businessmanApi from "./businessman"; +import balanceApi from "./balance"; +// 渠道后台管理api +import channelBApi from "./channelBackground"; +// 渠道管理api +import channelApi from "./channelManagement"; +import homeApi from "./home"; +// 热点管理接口 +import hotApi from "./hotManagement"; +// 落地页配置接口 +import LandPageApi from "./landPage"; +// 登陆api接口 +import loginApi from "./login"; +// 产品管理api接口 +import productApi from "./productManagement"; +// 用户配置api接口 +import discountAreaManagementApi from "./discountAreaManagement"; +// 机器人借口管理 +import roBotApi from "./robot"; +// 统计管理接口 +import staticsAPi from "./statistics"; +// 系统管理api接口 +import systemApi from "./systemManagement"; +// 热点管理接口 +import systemMessage from "./systemMessage"; +// 交易管理api接口 +import transApi from "./transactionManagement"; +// 用户api接口 +import userApi from "./user"; +// 视频api接口 +import videoApi from "./videoManagement"; +// 商区代理接口 +import angentDistrictApi from "./agentDistrictProvider"; +//楼凤模块接口 +import loufApi from "./loufeng"; +//裸聊专区接口 +import nakedChatApi from "./nakedChatManage"; +//小说管理接口 +import fictionApi from "./fiction"; +//av解说管理接口 +import avCommentApi from "./avComment"; +//标签配置接口 +import tagConfigAPi from "./tagConfigList"; +//模块配置接口 +import moduleConfigApi from "./moduleConfig"; +//签到管理 +import signinApi from "./signin"; +//AI +import aiApi from "./ai"; +//动漫 +import animationApi from "./animation"; +// 群组 +import groupChatManagementApi from "./groupChatManagement"; +//老司机媒体模块接口 +import lsjMediaLibApi from './lsjMediaLib'; +//二部媒资库接口 +import mediaLibApi from './mediaLib'; +import contentReviewApi from './contentReview'; +import officialWebsiteApi from './officialWebsite'; +import shortVideoRecommendApi from './shortVideoRecommend'; +const Api = Object.assign({ + ...loginApi, + ...videoApi, + ...userApi, + ...productApi, + ...discountAreaManagementApi, + ...transApi, + ...adsApi, + ...admApi, + ...authorApi, + ...systemApi, + ...activeApi, + ...actressApi, + ...angentApi, + ...staticsAPi, + ...channelApi, + ...channelBApi, + ...homeApi, + ...LandPageApi, + ...hotApi, + ...systemMessage, + ...roBotApi, + ...businessmanApi, + ...balanceApi, + ...angentDistrictApi, + ...loufApi, + ...nakedChatApi, + ...fictionApi, + ...avCommentApi, + ...signinApi, + ...tagConfigAPi, + ...moduleConfigApi, + ...aiApi, + ...animationApi, + ...groupChatManagementApi, + ...lsjMediaLibApi, + ...mediaLibApi, + ...contentReviewApi, + ...officialWebsiteApi, + ...shortVideoRecommendApi, +}); +export default Api; diff --git a/src/api/landPage.js b/src/api/landPage.js new file mode 100755 index 0000000..bcff9b4 --- /dev/null +++ b/src/api/landPage.js @@ -0,0 +1,88 @@ +import ajax from "../utils/request"; +const landPageApi = { + /******************* 域名配置**********************8*/ + // 域名配置请求列表 + getLangPageList(params) { + return ajax({ + url: "/webplt/list", + type: "get", + params: params, + }); + }, + // 新增域名配置 + addLandPage(params) { + return ajax({ + url: "/webplt/add", + type: "post", + params: params, + }); + }, + // 删除域名配置 + deleteLandPage(params) { + return ajax({ + url: "/webplt/del", + type: "delete", + params: params, + }); + }, + // 编辑落地页配置 + editLandPage(params) { + return ajax({ + url: "/webplt/update", + type: "post", + params: params, + }); + }, + /********************* 落地页配置************************/ + // 获取落地页配置 + getLdyList(params) { + return ajax({ + url: "/ldy/cfg", + type: "get", + params: params, + }); + }, + //编辑 + updateLdy(params) { + return ajax({ + url: "/ldy/update", + type: "post", + params, + }); + }, + + // // 添加按钮状态 + // addSwitchFlag(params) { + // return ajax({ + // url: '/switch/add', + // type: 'post', + // params: params + // }); + // }, + // // 获取开关 + // getSwitchList(params) { + // return ajax({ + // url: '/switch/list', + // type: 'get', + // params: params + // }); + // } + // // 删除开关 + // deleteSwitch(params) { + // return ajax({ + // url: '/switch/del', + // type: 'delete', + // params: params + // }); + // }, + // // 获取开关 + // getSwitchList(params) { + // return ajax({ + // url: '/switch/list', + // type: 'get', + // params: params + // }); + // } +}; + +export default landPageApi; diff --git a/src/api/login.js b/src/api/login.js new file mode 100755 index 0000000..006df31 --- /dev/null +++ b/src/api/login.js @@ -0,0 +1,45 @@ +import ajax from '../utils/request' +const loginApi = { + /********************************登陆管理*********************************** */ + // 登陆 + login(params) { + return ajax({ + url: '/login', + type: 'post', + params: params + }) + }, + // sso登陆 + slogin(params) { + return ajax({ + url: '/slogin', + type: 'post', + params: params + }) + }, + // 登陆验证 + verify(params) { + return ajax({ + url: '/verify', + type: 'post', + params: params + }) + }, + // 刷新token + refreshToken(params) { + return ajax({ + url: '/refresh', + type: 'get', + params: params + }) + }, + // 登出 + logout(params) { + return ajax({ + url: '/logout', + type: 'post', + params: params + }) + }, +} +export default loginApi diff --git a/src/api/loufeng.js b/src/api/loufeng.js new file mode 100644 index 0000000..505b3b4 --- /dev/null +++ b/src/api/loufeng.js @@ -0,0 +1,121 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-21 14:11:47 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-17 19:43:50 + */ +import ajax from "../utils/request"; +const loufApi={ + /** ********************楼凤列表************************* */ + // 获取楼凤列表 + getLouFengList(params) { + return ajax({ + url: '/loufeng/list', + type: 'post', + params: params + }) + }, + // 新增 + addLoufeng(params) { + return ajax({ + url: '/loufeng/add', + type: 'post', + params: params + }) + }, + // 修改 + updateLoufeng(params) { + return ajax({ + url: '/loufeng/edit', + type: 'post', + params: params + }) + }, + // 删除 + deleteLoufeng(params) { + return ajax({ + url: '/loufeng/del', + type: 'delete', + params: params + }) + }, + // 取消置顶 + cancelToplf(params) { + return ajax({ + url: '/loufeng/cancelTop', + type: 'post', + params: params + }) + }, + /**************楼凤配置******************/ + // 获取楼凤列表 + getLoufCfgList(params) { + return ajax({ + url: '/loufeng/getConfig', + type: 'get', + params: params + }) + }, + // 修改 + editLoufCfg(params) { + return ajax({ + url: '/loufeng/setConfig', + type: 'post', + params: params + }) + }, + + /**************举报信息列表******************/ + // 获取举报信息 + getFeedbList(params) { + return ajax({ + url: '/loufeng/getFeedback', + type: 'post', + params: params + }) + }, + // 修改举报信息 + editFeedb (params) { + return ajax({ + url: '/loufeng/processFeedback', + type: 'post', + params: params + }) + }, + + /** ********************楼凤广告配置************************* */ + // 获取列表 + getLfAdList(params) { + return ajax({ + url: '/loufengad/list', + type: 'post', + params: params + }) + }, + // 新增 + addLfAd(params) { + return ajax({ + url: '/loufengad/add', + type: 'post', + params: params + }) + }, + // 修改 + updateLfAd(params) { + return ajax({ + url: '/loufengad/edit', + type: 'post', + params: params + }) + }, + // 删除 + deleteLfAd(params) { + return ajax({ + url: '/loufengad/del', + type: 'post', + params: params + }) + }, +} + + export default loufApi; \ No newline at end of file diff --git a/src/api/lsjMediaLib.js b/src/api/lsjMediaLib.js new file mode 100644 index 0000000..429adeb --- /dev/null +++ b/src/api/lsjMediaLib.js @@ -0,0 +1,143 @@ +import request from "../utils/request"; + +export default { + /** + * 动漫相关接口 + */ + // 获取视频列表 + lsjComicsList(params) { + return request({ + url: '/laosiji/comics/search', + type: 'post', + params + }) + }, + + // 获取视频列表 + lsjComicsDel(params) { + return request({ + url: '/laosiji/comics/search', + type: 'post', + params + }) + }, + lsjComicsDetail(params) { + return request({ + url: '/laosiji/comics/detail', + type: 'post', + params + }) + }, + lsjComicsAdd(params) { + return request({ + url: '/laosiji/comics/add', + type: 'post', + params + }) + }, + /** + * 小说相关接口 + */ + + // 获取视频列表 + lsjNovelList(params) { + return request({ + url: '/laosiji/novel/search', + type: 'post', + params + }) + }, + + // 获取视频列表 + lsjNovelDel(params) { + return request({ + url: '/laosiji/novel/search', + type: 'post', + params + }) + }, + lsjNovelDetail(params) { + return request({ + url: '/laosiji/novel/detail', + type: 'post', + params + }) + }, + lsjNovelAdd(params) { + return request({ + url: '/laosiji/novel/add', + type: 'post', + params + }) + }, + + /** + * 帖子相关接口 + */ + // 获取视频列表 + lsjPostList(params) { + return request({ + url: '/laosiji/post/search', + type: 'post', + params + }) + }, + + // 获取视频列表 + lsjPostDel(params) { + return request({ + url: '/laosiji/post/search', + type: 'post', + params + }) + }, + lsjPostDetail(params) { + return request({ + url: '/laosiji/post/detail', + type: 'post', + params + }) + }, + lsjPostAdd(params) { + return request({ + url: '/laosiji/post/add', + type: 'post', + params + }) + }, + + /** + * 视频相关接口 + */ + // 获取视频列表 + lsjVideoList(params) { + return request({ + url: '/laosiji/movie/search', + type: 'post', + params + }) + }, + + // 获取视频列表 + lsjVideoDel(params) { + return request({ + url: '/laosiji/movie/search', + type: 'post', + params + }) + }, + lsjVideoDetail(params) { + return request({ + url: '/laosiji/movie/detail', + type: 'post', + params + }) + }, + lsjVideoAdd(params) { + return request({ + url: '/laosiji/movie/add', + type: 'post', + params + }) + } +} \ No newline at end of file diff --git a/src/api/marquee.js b/src/api/marquee.js new file mode 100644 index 0000000..6fe8bb9 --- /dev/null +++ b/src/api/marquee.js @@ -0,0 +1,37 @@ +import axios from '../utils/request'; + +// 获取跑马灯列表 +export function getAnnounceList(params) { + return axios({ + url: '/announce/list', + type: 'get', + params + }) +} + +// 新增跑马灯 +export function addAnnounce(params) { + return axios({ + url: '/announce/add', + type: 'post', + params + }) +} + +// 修改跑马灯 +export function updateAnnounce(params) { + return axios({ + url: '/announce/update', + type: 'post', + params + }) +} + +// 删除跑马灯 +export function deleteAnnounce(params) { + return axios({ + url: '/announce/del', + type: 'delete', + params + }) +} diff --git a/src/api/mediaLib.js b/src/api/mediaLib.js new file mode 100644 index 0000000..375a386 --- /dev/null +++ b/src/api/mediaLib.js @@ -0,0 +1,48 @@ +import request from "../utils/request"; + +export default { + /** + * 视频相关接口 + */ + // 获取视频列表 + mediaSearch(params) { + return request({ + url: '/tianyu/search', + type: 'post', + params + }) + }, + + // 删除视频 + mediaDel(params) { + return request({ + url: '/mediafile/del', + type: 'post', + params + }) + }, + // 添加资源 + mediaAdd(params) { + return request({ + url: '/tianyu/add', + type: 'post', + params + }) + }, + // 资源更新 + mediaUpdate(params) { + return request({ + url: '/mediafile/update', + type: 'post', + params + }) + }, + // 资源更新预览时长 + updatePreTime(params) { + return request({ + url: '/mediafile/update/prefile', + type: 'post', + params + }) + } +} \ No newline at end of file diff --git a/src/api/moduleConfig.js b/src/api/moduleConfig.js new file mode 100644 index 0000000..1515152 --- /dev/null +++ b/src/api/moduleConfig.js @@ -0,0 +1,178 @@ +import axios from '../utils/request'; + +// 模块配置 +const moduleConfApi = { + // 获取标签配置列表 + getTagConfigs(params) { + return axios({ + url: '/tag/conf', + type: 'get', + params + }) + }, + // 获取模块配置列表 + getModules(params) { + return axios({ + url: '/module/conf/list', + type: 'post', + params + }) + }, + // 新增模块 + addModule(params, noFiltering) { + return axios({ + url: '/module/conf/add', + type: 'post', + params + }, noFiltering) + }, + // 修改模块 + editModule(params, noFiltering) { + return axios({ + url: '/module/conf/edit', + type: 'post', + params + }, noFiltering) + }, + // 删除模块 + deleteModule(params) { + return axios({ + url: '/module/conf/delete', + type: 'post', + params + }) + }, + + // 获取专题列表 + getSections(params) { + return axios({ + url: '/module/section/list', + type: 'post', + params + }) + }, + // 新增专题 + addSection(params) { + return axios({ + url: '/module/section/add', + type: 'post', + params + }) + }, + // 修改专题 + editSection(params) { + return axios({ + url: '/module/section/edit', + type: 'post', + params + }) + }, + // 删除专题 + deleteSection(params) { + return axios({ + url: '/module/section/delete', + type: 'post', + params + }) + }, + // 查询专题点击量 + queryClicks(params) { + return axios({ + url: '/module/section/clicks', + type: 'post', + params + }) + }, + + // 获取视频列表 + getVideos(params) { + return axios({ + url: '/module/video/list', + type: 'post', + params + }) + }, + // 新增视频 + addVideo(params) { + return axios({ + url: '/module/video/add', + type: 'post', + params + }) + }, + // 批量新增视频 + addVideos(params) { + return axios({ + url: '/module/video/add/batch', + type: 'post', + params + }) + }, + // 修改视频 + editVideo(params) { + return axios({ + url: '/module/video/edit', + type: 'post', + params + }) + }, + // 删除视频 + deleteVideo(params) { + return axios({ + url: '/module/video/delete', + type: 'post', + params + }) + }, + // 获取跑马灯内容 + queryMarquee(params) { + return axios({ + url: '/module/conf/marquee', + type: 'get', + params + }) + }, + // 编辑跑马灯 + modifyMarquee(params) { + return axios({ + url: '/module/conf/marquee', + type: 'post', + params + }) + }, + // 金刚区 + // 金刚区列表查询 + queryKingKongList(params) { + return axios({ + url: '/jingang/list', + type: 'get', + params + }) + }, + // 金刚区添加 + addKingKong(params) { + return axios({ + url: '/jingang/add', + type: 'post', + params + }) + }, + // 金刚区修改 + modifyKingKong(params) { + return axios({ + url: '/jingang/update', + type: 'post', + params + }) + }, + // 金刚区删除 + delKingKong(params) { + return axios({ + url: '/jingang/delete', + type: 'post', + params + }) + }, +} + +export default moduleConfApi; \ No newline at end of file diff --git a/src/api/nakedChatManage.js b/src/api/nakedChatManage.js new file mode 100644 index 0000000..2177526 --- /dev/null +++ b/src/api/nakedChatManage.js @@ -0,0 +1,104 @@ +import ajax from "../utils/request"; + +const nakedChatApi = { + /** ********************裸聊专区列表************************* */ + // 商品复选框 + getProductCheckbox(params) { + return ajax({ + url: '/business/product/checkbox', + type: 'get', + params: params + }) + }, + // 获取裸聊列表 + getNakedChatList(params) { + return ajax({ + url: '/nakedchat/list', + type: 'get', + params: params + }) + }, + // 新增 + addNakedChat(params) { + return ajax({ + url: '/nakedchat/create', + type: 'post', + params: params + }) + }, + // 修改 + updateNakedChat(params) { + return ajax({ + url: '/nakedchat/update', + type: 'post', + params: params + }) + }, + // 批量修改裸聊模块 + batchUpdateNakedChat(params) { + return ajax({ + url: '/nakedchat/batch/update', + type: 'post', + params: params + }) + }, + // 官方公告 + nakedChatConfig(params) { + return ajax({ + url: '/nude/chat/config', + type: 'get', + params: params + }) + }, + // 修改官方公告 + updateNakedChatConfig(params) { + return ajax({ + url: '/nude/chat/config', + type: 'put', + params: params + }) + }, + // 获取裸聊购买列表 + getNakedChatBuyList(params) { + return ajax({ + url: '/nakedchatorder/list', + type: 'get', + params: params + }) + }, + // 更新裸聊购买 + updateNakedchatorder(params) { + return ajax({ + url: '/nakedchatorder/update', + type: 'post', + params: params + }) + }, + // 获取裸聊购买列表 + confirmUseCode(params) { + return ajax({ + url: '/nude/chat/use/code', + type: 'put', + params: params + }) + }, + + // 获取裸聊举报信息列表 + queryFeedback(params) { + return ajax({ + url: '/nude/chat/feedback', + type: 'get', + params: params + }) + }, + + operateFeedback(params) { + return ajax({ + url: '/nude/chat/feedback/operate', + type: 'post', + params: params + }) + }, +} + +export default nakedChatApi; \ No newline at end of file diff --git a/src/api/officialWebsite.js b/src/api/officialWebsite.js new file mode 100644 index 0000000..e85466b --- /dev/null +++ b/src/api/officialWebsite.js @@ -0,0 +1,171 @@ +import ajax from '../utils/request'; + +const BASE = '/officialWebsite'; + +const officialWebsiteApi = { + // 基础数据 + getOfficialWebsiteBasic() { + return ajax({ url: BASE, type: 'get' }); + }, + createOfficialWebsiteBasic(params) { + return ajax({ url: BASE, type: 'post', params }); + }, + updateOfficialWebsiteBasic(params) { + return ajax({ url: BASE, type: 'put', params }, true); + }, + deleteOfficialWebsiteBasic(params) { + return ajax({ url: BASE, type: 'delete', params }); + }, + + // 创作者 + getHeroList(params) { + return ajax({ url: `${BASE}/hero/list`, type: 'get', params }); + }, + createHero(params) { + return ajax({ url: `${BASE}/hero/create`, type: 'post', params }); + }, + updateHero(params) { + return ajax({ url: `${BASE}/hero/update`, type: 'put', params }, true); + }, + deleteHero(params) { + return ajax({ url: `${BASE}/hero/delete`, type: 'delete', params }); + }, + + // 专辑 + getAlbumList(params) { + return ajax({ url: `${BASE}/album/list`, type: 'get', params }); + }, + createAlbum(params) { + return ajax({ url: `${BASE}/album/create`, type: 'post', params }); + }, + updateAlbum(params) { + return ajax({ url: `${BASE}/album/update`, type: 'put', params }, true); + }, + deleteAlbum(params) { + return ajax({ url: `${BASE}/album/delete`, type: 'delete', params }); + }, + + // 视频 + getOfficialVideoList(params) { + return ajax({ url: `${BASE}/video/list`, type: 'get', params }); + }, + createOfficialVideo(params) { + return ajax({ url: `${BASE}/video/create`, type: 'post', params }); + }, + updateOfficialVideo(params) { + return ajax({ url: `${BASE}/video/update`, type: 'put', params }, true); + }, + deleteOfficialVideo(params) { + return ajax({ url: `${BASE}/video/delete`, type: 'delete', params }); + }, + batchOfficialVideo(params) { + return ajax({ url: `${BASE}/video/batch`, type: 'put', params }, true); + }, + // 导入后台视频库视频 + importOfficialVideo(params) { + return ajax({ url: `${BASE}/video/import`, type: 'put', params }, true); + }, + getOfficialVideoListFromVid(params) { + return ajax({ url: `${BASE}/video/listFromVid`, type: 'get', params }); + }, + + // 写真 + getPhotographList(params) { + return ajax({ url: `${BASE}/photograph/list`, type: 'get', params }); + }, + createPhotograph(params) { + return ajax({ url: `${BASE}/photograph/create`, type: 'post', params }); + }, + updatePhotograph(params) { + return ajax({ url: `${BASE}/photograph/update`, type: 'put', params }, true); + }, + deletePhotograph(params) { + return ajax({ url: `${BASE}/photograph/delete`, type: 'delete', params }); + }, + batchPhotograph(params) { + return ajax({ url: `${BASE}/photograph/batch`, type: 'put', params }, true); + }, + + // 标签 + getOfficialTagList(params) { + return ajax({ url: `${BASE}/tag/list`, type: 'get', params }); + }, + createOfficialTag(params) { + return ajax({ url: `${BASE}/tag/create`, type: 'post', params }); + }, + updateOfficialTag(params) { + return ajax({ url: `${BASE}/tag/update`, type: 'put', params }, true); + }, + deleteOfficialTag(params) { + return ajax({ url: `${BASE}/tag/delete`, type: 'delete', params }); + }, + + // 招聘表单 + getRecruitFormList(params) { + return ajax({ url: `${BASE}/recruitForm/list`, type: 'get', params }); + }, + updateRecruitForm(params) { + return ajax({ url: `${BASE}/recruitForm/update`, type: 'put', params }, true); + }, + deleteRecruitForm(params) { + return ajax({ url: `${BASE}/recruitForm/delete`, type: 'delete', params }); + }, + + // 职位 + getJobList(params) { + return ajax({ url: `${BASE}/jobList/list`, type: 'get', params }); + }, + createJob(params) { + return ajax({ url: `${BASE}/jobList/create`, type: 'post', params }); + }, + updateJob(params) { + return ajax({ url: `${BASE}/jobList/update`, type: 'put', params }, true); + }, + deleteJob(params) { + return ajax({ url: `${BASE}/jobList/delete`, type: 'delete', params }); + }, + + // 新闻 + getNewsList(params) { + return ajax({ url: `${BASE}/news/list`, type: 'get', params }); + }, + createNews(params) { + return ajax({ url: `${BASE}/news/create`, type: 'post', params }); + }, + updateNews(params) { + return ajax({ url: `${BASE}/news/update`, type: 'put', params }, true); + }, + deleteNews(params) { + return ajax({ url: `${BASE}/news/delete`, type: 'delete', params }); + }, + + // 合作伙伴 + getPartnerList(params) { + return ajax({ url: `${BASE}/partner/list`, type: 'get', params }); + }, + createPartner(params) { + return ajax({ url: `${BASE}/partner/create`, type: 'post', params }); + }, + updatePartner(params) { + return ajax({ url: `${BASE}/partner/update`, type: 'put', params }, true); + }, + deletePartner(params) { + return ajax({ url: `${BASE}/partner/delete`, type: 'delete', params }); + }, + + // Business + getBusinessList(params) { + return ajax({ url: `${BASE}/business/list`, type: 'get', params }); + }, + createBusiness(params) { + return ajax({ url: `${BASE}/business/create`, type: 'post', params }); + }, + updateBusiness(params) { + return ajax({ url: `${BASE}/business/update`, type: 'put', params }, true); + }, + deleteBusiness(params) { + return ajax({ url: `${BASE}/business/delete`, type: 'delete', params }); + }, +}; + +export default officialWebsiteApi; diff --git a/src/api/productManagement.js b/src/api/productManagement.js new file mode 100755 index 0000000..c632bba --- /dev/null +++ b/src/api/productManagement.js @@ -0,0 +1,458 @@ +import ajax from "../utils/request"; + +const productApi = { + /********************************产品和订单管理*********************************** */ + /********************************VIP商品列表*********************************** */ + // VIP商品列表 + getPruductList(params) { + return ajax({ + url: "/business/product/list", + type: "get", + params: params, + }); + }, + // VIP所有权益列表 + getProductAllList() { + return ajax({ + url: "/productBenefit/all/list", + type: "get", + }); + }, + // 新增栏目 + getNewSection(params) { + return ajax({ + url: "/business/product", + type: "post", + params: params, + }); + }, + // 编辑栏目 + getEditSection(params) { + return ajax({ + url: "/business/product/update", + type: "post", + params: params, + }); + }, + // 删除栏目 + getDeleteSection(params) { + return ajax({ + url: "/business/product", + type: "delete", + params: params, + }); + }, + /********************************VIP权益列表*********************************** */ + // VIP权益列表 + getProductBenefitList(params) { + return ajax({ + url: "/productBenefit/list", + type: "get", + params: params, + }); + }, + // 新增权益 + newProductBenefit(params) { + return ajax({ + url: "/productBenefit/add", + type: "post", + params: params, + }); + }, + // 编辑权益 + editProductBenefit(params) { + return ajax({ + url: "/productBenefit/update", + type: "post", + params: params, + }); + }, + // 删除权益 + deleteProductBenefit(params) { + return ajax({ + url: "/productBenefit/del", + type: "delete", + params: params, + }); + }, + /********************************金币列表*********************************** */ + // 新增金币 + addGold(params) { + return ajax({ + url: "/recharge/gold/add", + type: "post", + params: params, + }); + }, + // 获取金币配置列表 + getGoldList(params) { + return ajax({ + url: "/recharge/gold/list", + type: "get", + params: params, + }); + }, + // 修改金币配置 + updateGold(params) { + return ajax({ + url: "/recharge/gold/update", + type: "post", + params: params, + }); + }, + // 删除金币配置 + delGold(params) { + return ajax({ + url: "/recharge/gold/delete", + type: "delete", + params: params, + }); + }, + /********************************积分配置列表*********************************** */ + // 获取积分配置列表 + getIntegralConfigList(params) { + return ajax({ + url: "/integral_config", + type: "get", + params: params, + }); + }, + // 添加积分配置 + addIntegralConfig(params) { + return ajax({ + url: "/integral_config", + type: "post", + params: params, + }); + }, + // 修改积分配置 + updateIntegralConfig(params) { + return ajax({ + url: "/integral_config", + type: "put", + params: params, + }); + }, + /********************************预售配置列表*********************************** */ + // 获取预售配置 + getAdvanceConfigList(params) { + return ajax({ + url: "/advance_config/list", + type: "get", + params: params, + }); + }, + // 添加预售配置 + addAdvanceConfig(params) { + return ajax({ + url: "/advance_config/create", + type: "post", + params: params, + }); + }, + // 删除预售配置 + delAdvanceConfig(params) { + return ajax({ + url: "/advance_config/delete", + type: "post", + params: params, + }); + }, + // 修改预售配置 + updateAdvanceConfig(params) { + return ajax({ + url: "/advance_config/update", + type: "post", + params: params, + }); + }, + /********************************游戏金币列表*********************************** */ + // 新增游戏金币 + addGameGold(params) { + return ajax({ + url: "/recharge/game/gold/add", + type: "post", + params: params, + }); + }, + // 获取游戏金币配置列表 + getGameGoldList(params) { + return ajax({ + url: "/recharge/game/gold/list", + type: "get", + params: params, + }); + }, + // 修改游戏金币配置 + updateGameGold(params) { + return ajax({ + url: "/recharge/game/gold/update", + type: "post", + params: params, + }); + }, + // 删除游戏金币配置 + delGameGold(params) { + return ajax({ + url: "/recharge/game/gold/delete", + type: "delete", + params: params, + }); + }, + + /********************************货币列表*********************************** */ + // 新增货币 + addCurrency(params) { + return ajax({ + url: "/currency", + type: "post", + params: params, + }); + }, + // 获取货币配置列表 + getCurrencyList(params) { + return ajax({ + url: "/currency", + type: "get", + params: params, + }); + }, + // 修改货币配置 + updateCurrency(params, noFiltering) { + return ajax( + { + url: "/currency", + type: "put", + params: params, + }, + noFiltering + ); + }, + + /********************************金币优惠配置*********************************** */ + // 新增金币优惠配置 + addPayGold(params) { + return ajax({ + url: "/gold/cfg/add", + type: "post", + params: params, + }); + }, + // 获取金币支付配置列表 + getPayGoldList(params) { + return ajax({ + url: "/gold/cfg/list", + type: "get", + params: params, + }); + }, + // 编辑金币支付配置 + updatePayGold(params) { + return ajax({ + url: "/gold/cfg/edit", + type: "post", + params: params, + }); + }, + // 删除金币支付配置 + delPayGold(params) { + return ajax({ + url: "/gold/cfg/del", + type: "delete", + params: params, + }); + }, + /********************************推广落地页列表*********************************** */ + // 新增推广落地页 + addPromote(params) { + return ajax({ + url: "/promoteUrl/insert", + type: "post", + params: params, + }); + }, + // 获取推广落地页配置列表 + getPromoteList(params) { + return ajax({ + url: "/promoteUrl/list", + type: "get", + params: params, + }); + }, + // 修改推广落地页配置 + updatePromote(params) { + return ajax({ + url: "/promoteUrl/update", + type: "post", + params: params, + }); + }, + // 删除推广落地页配置 + delPromote(params) { + return ajax({ + url: "/promoteUrl/delete", + type: "delete", + params: params, + }); + }, + /********************************支付方式列表*********************************** */ + // 新增支付方式 + addChannel(params) { + return ajax({ + url: "/recharge/channel/add", + type: "post", + params: params, + }); + }, + // 获取支付方式配置列表 + getChannelList(params) { + return ajax({ + url: "/recharge/channel/list", + type: "get", + params: params, + }); + }, + // 修改支付方式配置 + updateChannel(params) { + return ajax({ + url: "/recharge/channel/update", + type: "post", + params: params, + }); + }, + // 删除支付方式配置 + delChannel(params) { + return ajax({ + url: "/recharge/channel/delete", + type: "delete", + params: params, + }); + }, + + /********************************产品展示位置配置列表*********************************** */ + // 获取列表 + getPositionList(params) { + return ajax({ + url: "/business/productPosition/list", + type: "post", + params: params, + }); + }, + // 新增 + addPosition(params) { + return ajax({ + url: "/business/productPosition/add", + type: "post", + params: params, + }); + }, + // 编辑 + editPosition(params) { + return ajax({ + url: "/business/productPosition/edit", + type: "post", + params: params, + }); + }, + //删除 + deletePosition(params) { + return ajax({ + url: "/business/productPosition/del", + type: "post", + params: params, + }); + }, + // 产品展示位置 + getNames(params) { + return ajax({ + url: "/business/productPosition/names", + type: "post", + params: params, + }); + }, + /********************************VIP升级配置*********************************** */ + // 获取VIP升级配置信息 + getConfig(params) { + return ajax({ + url: "/business/getConfig", + type: "get", + params: params, + }); + }, + //编辑配置信息 + setConfig(params) { + return ajax({ + url: "/business/setConfig", + type: "post", + params: params, + }); + }, + /********************************官方下载管理*********************************** */ + // 官方下载管理列表 + getOfficialList(params) { + return ajax({ + url: "/official/list", + type: "get", + params: params, + }); + }, + // 新增官方下载 + addOfficial(params) { + return ajax({ + url: "/official/add", + type: "post", + params: params, + }); + }, + // 编辑官方下载 + updOfficial(params) { + return ajax({ + url: "/official/update", + type: "post", + params: params, + }); + }, + // 删除栏目 + delOfficial(params) { + return ajax({ + url: "/official/delete", + type: "delete", + params: params, + }); + }, + /********************************banner活动管理*********************************** */ + // 获取banner活动列表 + getBannerjumpList(params) { + return ajax({ + url: "/bannerjump/list", + type: "get", + params, + }); + }, + // 新增banner活动 + addBannerjump(params) { + return ajax({ + url: "/bannerjump/create", + type: "post", + params, + }); + }, + // 修改banner活动 + updateBannerjump(params) { + return ajax({ + url: "/bannerjump/update", + type: "post", + params, + }); + }, + // 删除banner活动 + deleteBannerjump(params) { + return ajax({ + url: "/bannerjump/delete", + type: "post", + params, + }); + }, +}; + +export default productApi; diff --git a/src/api/robot.js b/src/api/robot.js new file mode 100644 index 0000000..ca8f19c --- /dev/null +++ b/src/api/robot.js @@ -0,0 +1,57 @@ +import ajax from '../utils/request'; + +const robotApi = { + + /***************************机器人配置****************************** */ + // 请求机器人列表 + getRbotList(params) { + return ajax({ + url: '/robot/conf/list', + type: 'get', + params: params + }); + }, + // 添加机器人配置 + addRbot(params) { + return ajax({ + url: '/robot/conf/add', + type: 'post', + params: params + }); + }, + // 修改机器人列表 + updateRbot(params) { + return ajax({ + url: '/robot/conf/update', + type: 'post', + params: params + }); + }, +/***************************聊天内容****************************** */ + // 机器人聊天内容列表 + getContentList(params) { + return ajax({ + url: '/robot/content/list', + type: 'get', + params: params + }) + }, + // 增加聊天内容 + addContent(params) { + return ajax({ + url: '/robot/content/add', + type: 'post', + params: params + }) + }, + // 删除聊天内容 + delContent(params) { + return ajax({ + url: '/robot/content/del', + type: 'delete', + params: params + }) + } +}; + +export default robotApi; diff --git a/src/api/shortVideoRecommend.js b/src/api/shortVideoRecommend.js new file mode 100644 index 0000000..aa3722e --- /dev/null +++ b/src/api/shortVideoRecommend.js @@ -0,0 +1,97 @@ +import ajax from '../utils/request'; + +const shortVideoRecommendApi = { + // 付费引导配置 + getPaymentGuideList(params) { + return ajax({ + url: '/payment-guide/list', + type: 'get', + params, + }); + }, + addPaymentGuide(params) { + return ajax({ + url: '/payment-guide/add', + type: 'post', + params, + }); + }, + editPaymentGuide(params) { + return ajax({ + url: '/payment-guide/edit', + type: 'post', + params, + }); + }, + deletePaymentGuide(params) { + // id 走 query(params),request 对非 get 会把 params 放进 data + return ajax({ + url: `/payment-guide/delete?id=${encodeURIComponent(params.id)}`, + type: 'delete', + }); + }, + + // 评论 Banner 配置 + getCommentBannerList(params) { + return ajax({ + url: '/banner/list', + type: 'get', + params: { + scene: 'COMMENT_TOP', + ...params, + }, + }); + }, + addCommentBanner(params) { + return ajax({ + url: '/banner/add', + type: 'post', + params, + }); + }, + editCommentBanner(params) { + return ajax({ + url: '/banner/edit', + type: 'post', + params, + }); + }, + deleteCommentBanner(params) { + return ajax({ + url: '/banner/delete', + type: 'delete', + params, + }); + }, + + // VIP 卡片实验 + getVipCardExperimentCurrent() { + return ajax({ + url: '/vip-card-experiment/current', + type: 'get', + }); + }, + publishVipCardExperiment(params) { + return ajax({ + url: '/vip-card-experiment/publish', + type: 'post', + params, + }); + }, + disableVipCardExperiment(params) { + return ajax({ + url: '/vip-card-experiment/disable', + type: 'post', + params, + }); + }, + getVipCardExperimentStatistics(params) { + return ajax({ + url: '/vip-card-experiment/statistics', + type: 'get', + params, + }); + }, +}; + +export default shortVideoRecommendApi; diff --git a/src/api/signin.js b/src/api/signin.js new file mode 100644 index 0000000..e0fbb40 --- /dev/null +++ b/src/api/signin.js @@ -0,0 +1,125 @@ +import ajax from '../utils/request'; + +const signinApi = { + // 新增奖品 + addSignin(params) { + return ajax({ + url: '/task/prize', + type: 'post', + params: params + }); + }, + // 修改奖品 + editSignin(params) { + return ajax({ + url: '/task/prize', + type: 'put', + params: params + }, true); + }, + // 查询奖品 + querySignin(params) { + return ajax({ + url: '/task/prize', + type: 'get', + params: params + }); + }, + + // 查询奖品--配置页面 + queryPrizeBox(params) { + return ajax({ + url: '/activity/prize/box', + type: 'get', + params: params + }); + }, + // 新增配置 + addSigninConfig(params) { + return ajax({ + url: '/task/sign/add', + type: 'post', + params: params + }); + }, + // 修改配置 + editSigninConfig(params) { + return ajax({ + url: '/task/sign/edit', + type: 'post', + params: params + }); + }, + // 查询配置 + querySigninConfig(params) { + return ajax({ + url: '/task/sign/list', + type: 'get', + params: params + }); + }, + + // 签到历史记录(参考 qiyou2_admin_client) + getCheckinHistoryList(params) { + return ajax({ + url: '/checkin/history/list', + type: 'post', + params + }); + }, + deleteCheckinHistory(params) { + return ajax({ + url: '/checkin/history/del', + type: 'post', + params + }); + }, + + // 签到奖品配置列表(参考 qiyou2_admin_client) + checkinCfgAdd(params) { + return ajax({ + url: '/checkinprize/add', + type: 'post', + params + }); + }, + checkinCfgDel(params) { + return ajax({ + url: '/checkinprize/del', + type: 'post', + params + }); + }, + checkinCfgSearch(params) { + return ajax({ + url: '/checkinprize/list', + type: 'post', + params + }); + }, + checkinCfgUpdate(params) { + return ajax({ + url: '/checkinprize/update', + type: 'post', + params + }); + }, + + // 文档后台管理接口 + getCheckingCg(params = {}) { + return ajax({ + url: '/checkin/conf/get', + type: 'post', + params + }); + }, + updateCheckingCg(params) { + return ajax({ + url: '/checkin/conf/update', + type: 'post', + params + }); + }, +} + +export default signinApi; \ No newline at end of file diff --git a/src/api/statistics.js b/src/api/statistics.js new file mode 100755 index 0000000..fa234d5 --- /dev/null +++ b/src/api/statistics.js @@ -0,0 +1,98 @@ +import ajax from '../utils/request' + +const staticsApi = { + /***************************金币流水统计管理****************************** */ + // 请求金币流水列表 + getGlodList(params) { + return ajax({ + url: '/log/gold', + type: 'get', + params: params + }) + }, + // 请求金币流水-用途列表 + getUseList(params) { + return ajax({ + url: '/log/goldType', + type: 'get', + params: params + }) + }, + /***************************营收数据****************************** */ + getRevenue(params) { + return ajax({ + url: '/stats/revenue/list', + type: 'get', + params: params + }) + }, + /***************************用户今日统计****************************** */ + getUserTody(params) { + return ajax({ + url: '/stats/user/daily/list', + type: 'get', + params: params + }) + }, + /***************************提现充值成功统计****************************** */ + getOrderStats(params) { + return ajax({ + url: '/stats/order/list', + type: 'get', + params: params + }) + }, + /** + * 获取交易统计里 趋势图详情接口 + * @param {*} params + */ + getEchartData(data) { + return ajax({ + url: '/stats/order/sucRate', + type: 'post', + params:data + }) + }, + /***************************视频收入统计****************************** */ + getVIncomeList(params) { + return ajax({ + url: '/stats/video/earn/list', + type: 'get', + params: params + }) + }, + /***************************广告点击统计****************************** */ + getClickStatistics(params) { + return ajax({ + url: '/log/ads/statistical', + type: 'get', + params: params + }) + }, + /***************************广告ab用户分析****************************** */ + getAdgroupList(params) { + return ajax({ + url: '/adgroup/list', + type: 'post', + params: params + }) + }, + /***************************视频销售金币统计****************************** */ + getVideoPayGoldStat(params) { + return ajax({ + url: '/stats/video/earn/aggregate', + type: 'get', + params: params + }) + }, + /***************************视频扣量金币统计****************************** */ + getVideoKlGoldStat(params) { + return ajax({ + url: '/stats/video/publisher/deduction', + type: 'get', + params: params + }) + }, +} + +export default staticsApi diff --git a/src/api/systemManagement.js b/src/api/systemManagement.js new file mode 100755 index 0000000..6c922f5 --- /dev/null +++ b/src/api/systemManagement.js @@ -0,0 +1,70 @@ +import ajax from '../utils/request' +const systemApi = { + /********************************版本管理*********************************** */ + // 请求版本管理模块配置列表 + getVersionList(params) { + return ajax({ + url: '/ver/list', + type: 'get', + params: params + }) + }, + // 删除tags + getVersionDelets(params) { + return ajax({ + url: '/ver', + type: 'delete', + params: params + }) + }, + // 编辑tags + getVersionPut(params) { + return ajax({ + url: '/ver/update', + type: 'post', + params: params + }) + }, + // 增加tags + getVersionPost(params) { + return ajax({ + url: '/ver', + type: 'post', + params: params + }) + }, + /** ***********************ip配置************************** */ + // 请求列表 + getIpConfigList(params) { + return ajax({ + url: '/ipwhite/list', + type: 'get', + params: params + }) + }, + // 新增 + addIpConfig(params) { + return ajax({ + url: '/ipwhite/add', + type: 'post', + params: params + }) + }, + // 编辑 + updateIpConfig(params) { + return ajax({ + url: '/ipwhite/edit', + type: 'post', + params: params + }) + }, + // 删除 + delIpConfig(params) { + return ajax({ + url: '/ipwhite/del', + type: 'delete', + params: params + }) + } +} +export default systemApi diff --git a/src/api/systemMessage.js b/src/api/systemMessage.js new file mode 100644 index 0000000..729c9cd --- /dev/null +++ b/src/api/systemMessage.js @@ -0,0 +1,104 @@ +import ajax from "../utils/request"; +const systemMessageApi = { + /********************************系统管理*********************************** */ + // 获取消息通知列表 + getSystemMessage(params) { + return ajax({ + url: "/infmt/notice/list", + type: "get", + params: params, + }); + }, + // 删除消息通知 + removeMessage(params) { + return ajax({ + url: "/infmt/notice/delete", + type: "delete", + params: params, + }); + }, + addMessage(params) { + return ajax({ + url: "/infmt/notice/add", + type: "post", + params: params, + }); + }, + // 编辑通知 + editMessage(params) { + return ajax({ + url: "/infmt/notice/update", + type: "post", + params: params, + }); + }, + // 获取邮件列表 + getEmailList(params) { + return ajax({ + url: "/infmt/mail/list", + type: "get", + params: params, + }); + }, + // 添加邮件 + addEmail(params) { + return ajax({ + url: "/infmt/mail/add", + type: "post", + params: params, + }); + }, + // 删除邮件 + removeEmail(params) { + return ajax({ + url: "/infmt/mail/delete", + type: "delete", + params: params, + }); + }, + /********************************系统配置列表*********************************** */ + // 获取系统配置列表 + getSysconfAll(params) { + return ajax({ + url: "/sysconf/all", + type: "get", + params: params, + }); + }, + // 添加系统配置 + addSysconf(params) { + return ajax({ + url: "/sysconf/create", + type: "post", + params: params, + }); + }, + // 删除系统配置 + delSysconf(params) { + return ajax({ + url: "/sysconf/delete", + type: "post", + params: params, + }); + }, + // 修改系统配置 + updateSysconf(params) { + return ajax( + { + url: "/sysconf/update", + type: "post", + params: params, + }, + true + ); + }, + // selectValues下拉框选项修改 + updateSysSelect(params) { + return ajax({ + url: "/sysconf/update/select", + type: "post", + params: params, + }); + }, +}; +export default systemMessageApi; diff --git a/src/api/tagConfigList.js b/src/api/tagConfigList.js new file mode 100644 index 0000000..7a2d7a0 --- /dev/null +++ b/src/api/tagConfigList.js @@ -0,0 +1,30 @@ +import ajax from "../utils/request"; + +const tagConfigsListApi = { + // 新增标签配置 + addTagConfig(params) { + return ajax({ + url: '/tag/conf/add', + type: 'post', + params + }) + }, + // 删除标签配置 + delTagConfig(params) { + return ajax({ + url: '/tag/conf/delete', + type: 'post', + params + }) + }, + // 修改标签配置 + editTagConfig(params) { + return ajax({ + url: '/tag/conf/update', + type: 'post', + params + }) + } +} + +export default tagConfigsListApi; \ No newline at end of file diff --git a/src/api/transactionManagement.js b/src/api/transactionManagement.js new file mode 100755 index 0000000..b10156f --- /dev/null +++ b/src/api/transactionManagement.js @@ -0,0 +1,250 @@ +import ajax from "../utils/request"; + +const transApi = { + /********************************充值订单管理列表*********************************** */ + // 请求充值订单列表 + getOrderList(params) { + return ajax({ + url: "/recharge/order/list", + type: "get", + params: params, + }); + }, + // 编辑状态说明 + editStatusText(params) { + return ajax({ + url: "/recharge/order/update", + type: "post", + params: params, + }); + }, + // 把订单信息通知到第三方平台 + handAddScore(params) { + return ajax({ + url: "/daichong/order/handScore", + type: "post", + params: params, + }); + }, + /********************************积分兑换列表*********************************** */ + // 获取积分兑换列表 + getIntegralExchangeList(params) { + return ajax({ + url: "/integral_exchange", + type: "get", + params: params, + }); + }, + // 修改积分兑换 + updateIntegralExchange(params) { + return ajax({ + url: "/integral_exchange", + type: "put", + params: params, + }); + }, + /********************************提现订单管理列表*********************************** */ + // 请求提现列表 + getWithdrawList(params) { + return ajax({ + url: "/withdraw/list", + type: "get", + params: params, + }); + }, + // 提现审核 + WithdrawExamine(params) { + return ajax({ + url: "/withdraw/check", + type: "post", + params: params, + }); + }, + /********************************预售订单管理列表*********************************** */ + // 请求预售订单列表 + getAdvanceOrderList(params) { + return ajax({ + url: "/advance_order", + type: "get", + params: params, + }); + }, + exportAdvanceOrder(params) { + return ajax({ + url: "/advance_order/export", + type: "post", + params: params, + }); + }, + /********************************提现方式*********************************** */ + // 新增提现方式 + addWChannel(params) { + return ajax({ + url: "/withdraw/channel/add", + type: "post", + params: params, + }); + }, + // 获取提现方式配置列表 + getWChannelList(params) { + return ajax({ + url: "/withdraw/channel/list", + type: "get", + params: params, + }); + }, + // 修改提现方式配置 + updateWChannel(params) { + return ajax({ + url: "/withdraw/channel/update", + type: "post", + params: params, + }); + }, + // 修改提现税率 + updateTax(params) { + return ajax({ + url: "/withdraw/channel/batch", + type: "post", + params: params, + }); + }, + // 删除提现方式配置 + delWChannel(params) { + return ajax({ + url: "/withdraw/channel/delete", + type: "delete", + params: params, + }); + }, + /********************************提现银行配置*********************************** */ + // 提现银行配置列表配置 + cashBankList(params) { + return ajax({ + url: "/bankType/list", + type: "get", + params: params, + }); + }, + // 提现银行配置新增 + addCashBank(params) { + return ajax({ + url: "/bankType/add", + type: "post", + params: params, + }); + }, + // 提现银行配置编辑 + editCashBank(params) { + return ajax({ + url: "/bankType/update", + type: "post", + params: params, + }); + }, + // 提现银行配置删除 + delCashBank(params) { + return ajax({ + url: "/bankType/del ", + type: "delete", + params: params, + }); + }, + + /******************************财务转账列表******************************/ + // 获取财务转账列表 + getTransferList(params) { + return ajax({ + url: "/withdraw/finan/list", + type: "get", + params: params, + }); + }, + // 回执请求 + receipt(params) { + return ajax({ + url: "/withdraw/finan/receipt", + type: "post", + params: params, + }); + }, + /******************************会员购买记录******************************/ + getVipCardPurchaseRecord(params) { + return ajax({ + url: "/business/product/order", + type: "get", + params: params, + }); + }, + + // 导出会员购买记录(POST) + exportVipCardPurchaseRecord(params) { + return ajax({ + url: "/business/product/order/export", + type: "post", + params: params, + }); + }, + + /******************************退款列表******************************/ + // 获取退款列表 + getRefundList(params) { + return ajax({ + url: "/withdraw/refund/list", + type: "get", + params: params, + }); + }, + // 请求 + Refund(params) { + return ajax({ + url: "/withdraw/refund/dealwith ", + type: "post", + params: params, + }); + }, + /******************************** AI图生视频订单 *********************************** */ + getAiImageToVideoList(params) { + return ajax({ + url: "/ai/image_to_video/list", + type: "get", + params, + }); + }, + delAiImageToVideo(params) { + return ajax({ + url: "/ai/image_to_video/delete", + type: "post", + params, + }); + }, + updateAiImageToVideo(params) { + return ajax({ + url: "/ai/image_to_video/update", + type: "post", + params, + }); + }, + getAiTextImage(params) { + return ajax({ + url: "/ai/text_to_image/list", + type: "get", + params + }); + }, + delAiTextImage(params) { + return ajax({ + url: "/ai/text_to_image/delete", + type: "post", + params + }); + }, + updateAiTextImage(params) { + return ajax({ + url: "/ai/text_to_image/update", + type: "post", + params + }); + }, +}; +export default transApi; diff --git a/src/api/user.js b/src/api/user.js new file mode 100755 index 0000000..a2c64a5 --- /dev/null +++ b/src/api/user.js @@ -0,0 +1,556 @@ +import ajax from "../utils/request"; +const userApi = { + /********************************用户管理*********************************** */ + // 添加用户 + addUser(params) { + return ajax({ + url: "/user/add", + type: "post", + params: params, + }); + }, + // 更新用户设备id + resetDev(params) { + return ajax({ + url: "/user/devID/reset", + type: "post", + params: params, + }); + }, + // 请求用户管理模块禁言用户 + getUserBan(params) { + return ajax({ + url: "/user/banned", + type: "post", + params: params, + }); + }, + // 设置用户是否打广告 + setUserAdv(params) { + return ajax({ + url: "/user/advertiser", + type: "post", + params: params, + }); + }, + // 神评或者取消神评 + updateComment(params) { + return ajax({ + url: "/comment/update", + type: "post", + params: params, + }); + }, + // 删除用户评论 + delUserComment(params) { + return ajax({ + url: "/user/deleteComment", + type: "post", + params: params, + }); + }, + // 请求用户列表 + getUserList(params) { + return ajax({ + url: "/user/list", + type: "get", + params: params, + }); + }, + // 更新用户禁止上传状态 + resetForbid(params) { + return ajax({ + url: "/user/forbid", + type: "post", + params: params, + }); + }, + // 请求查看或生成验证码 + getViewCaptcha(params) { + return ajax({ + url: "/extend/viewCaptcha", + type: "get", + params: params, + }); + }, + // 请求用户观看视频详情列表 + getUserPlay(params) { + return ajax({ + url: "/user/record/play", + type: "get", + params: params, + }); + }, + // 请求用户管理模块禁止用户登陆 + getUserLock(params) { + return ajax({ + url: "/user/lock", + type: "post", + params: params, + }); + }, + // 设置ai伴侣余额 + creditAiMateBalance(params) { + return ajax({ + url: "/user/credit/aiMateBalance", + type: "post", + params: params, + }); + }, + // 编辑用户 + editUser(params) { + return ajax({ + url: "/user/update", + type: "post", + params: params, + }); + }, + //重置用户银行卡姓名 + restBankUserName(params) { + return ajax( + { + url: "/user/update", + type: "post", + params: params, + }, + true + ); + }, + // 理由列表 + getReasonList(params) { + return ajax({ + url: "/rejectTemp/list", + type: "get", + params: params, + }); + }, + // 新增理由 + addReasonList(params) { + return ajax({ + url: "/rejectTemp/insert", + type: "post", + params: params, + }); + }, + // 删除理由 + delReasonList(params) { + return ajax({ + url: "/rejectTemp/del", + type: "post", + params: params, + }); + }, + // 编辑理由 + editReasonList(params) { + return ajax({ + url: "/rejectTemp/update", + type: "post", + params: params, + }); + }, + + // 用户加金币 + addUserGold(params) { + return ajax({ + url: "/user/credit", + type: "post", + params: params, + }); + }, + // 用户加AI脱衣免费次数 + addAiUndressFreeTimes(params) { + return ajax({ + url: "/user/update/freeTimes", + type: "post", + params: params, + }); + }, + // 用户加下载次数 + addDownloadTimes(params) { + return ajax({ + url: "/user/update/download", + type: "post", + params: params, + }); + }, + // 用户加抽奖次数 + addLotteryTimes(params) { + return ajax({ + url: "/user/update/lotteryTimes", + type: "post", + params: params, + }); + }, + // 用户加积分 + addUserIntegral(params) { + return ajax({ + url: "/user/integral", + type: "post", + params: params, + }); + }, + // 用户加果币 + addUserFruitCoin(params) { + return ajax({ + url: "/user/credit/fruitCoin", + type: "post", + params: params, + }); + }, + // 用户VIP权益 + getUserVipInfo(params) { + return ajax({ + url: "/user/vipInfo", + type: "get", + params: params, + }); + }, + // 获取账号凭证 + getQrcode(params) { + return ajax({ + url: "/user/qr_code", + type: "post", + params: params, + }); + }, + // 查询会员卡 + queryVipCard(params) { + return ajax({ + url: "/business/product/list", + type: "get", + params: params, + }); + }, + // 查询游戏码 + queryUserGameCode(params) { + return ajax({ + url: "/user/queryGameCode", + type: "get", + params: params, + }); + }, + // 用户导出 + exportUserList(params) { + return ajax({ + url: "/export/userList", + type: "get", + params: params, + }); + }, + /********************************背包列表*********************************** */ + // 获取背包列表 + getBackpackList(params) { + return ajax({ + url: "/backpack", + type: "get", + params: params, + }); + }, + /********************************用户私信列表*********************************** */ + // 请求用户私信列表 + getChatMessageList(params) { + return ajax({ + url: "/user/chatMessage/list", + type: "get", + params: params, + }); + }, + // 请求用户私信列表 + chatMessageSend(params) { + return ajax({ + url: "/user/chatMessage/send", + type: "post", + params: params, + }); + }, + /********************************用户登陆日志*********************************** */ + // 请求用户登陆日志列表 + getLoginLog(params) { + return ajax({ + url: "/user/login/list", + type: "get", + params: params, + }); + }, + /********************************用户ip限制*********************************** */ + // 请求ip限制列表 + getIpBlock(params) { + return ajax({ + url: "/ipblock/list", + type: "get", + params: params, + }); + }, + // 修改IP限制 + editIpBlock(params) { + return ajax({ + url: "/ipblock/edit", + type: "post", + params: params, + }); + }, + // 删除IP限制 + delIpBlock(params) { + return ajax({ + url: "/ipblock/del", + type: "delete", + params: params, + }); + }, + // 添加IP限制 + addIpBlock(params) { + return ajax({ + url: "/ipblock/add", + type: "post", + params: params, + }); + }, + /********************************用户观看日志*********************************** */ + // 请求用户观看记录列表 + getWatchLog(params) { + return ajax({ + url: "/user/play/list", + type: "get", + params: params, + }); + }, + /********************************用户常见问题*********************************** */ + //请求用户常见问题列表 + + //请求用户常见问题列表 + getUserQuestionList(params) { + return ajax({ + url: "/user/faq/list", + type: "get", + params, + }); + }, + //请求用户常见问题分类列表 + getClassificationList(params) { + return ajax({ + url: "/user/faq/cate/list ", + type: "get", + params, + }); + }, + // 新增问题 + AddQuestion(params) { + return ajax({ + url: "/user/faq/add", + type: "post", + params, + }); + }, + // 编辑问题 + EditQuestion(params) { + return ajax({ + url: "/user/faq/update", + type: "post", + params, + }); + }, + // 删除问题 + DeleteQuestion(params) { + return ajax({ + url: "/user/faq/del", + type: "delete", + params, + }); + }, + /********************************用户举报列表*********************************** */ + // 请求用户举报列表 + getUserReport(params) { + return ajax({ + url: "/user/report/list", + type: "get", + params: params, + }); + }, + // 请求用户举报列表 + setRept(params) { + return ajax({ + url: "/user/report/setStatus", + type: "post", + params: params, + }); + }, + // 请求举报分类列表 + getReportTypes(params) { + return ajax({ + url: "/user/report/types/list", + type: "get", + params: params, + }); + }, + /********************************黑名单列表*********************************** */ + //请求黑名单列表 + getBlackList(params) { + return ajax({ + url: "/blacklist/list", + type: "get", + params, + }); + }, + // 移除黑名单 + removeBlackList(params) { + return ajax({ + url: "/blacklist/delete", + type: "delete", + params: params, + }); + }, + // 添加黑名单 + addBlackList(params) { + return ajax({ + url: "/blacklist/add", + type: "post", + params: params, + }); + }, + + /********************************用户推荐列表*********************************** */ + // 请求用户推荐列表 + getRecommendationList(params) { + return ajax({ + url: "/user/reco/list", + type: "get", + params: params, + }); + }, + // 用户推荐修改 + updateRecommendation(params) { + return ajax({ + url: "/user/reco/modify", + type: "post", + params: params, + }); + }, + // 用户推荐新增 + addRecommendation(params) { + return ajax({ + url: "/user/reco/add", + type: "post", + params: params, + }); + }, + // 用户推荐删除 + delRecommendation(params) { + return ajax({ + url: "/user/reco/del", + type: "post", + params: params, + }); + }, + + /**********************用户反馈列表******************** */ + // 请求用户反馈列表 + getFeedbackList(params) { + return ajax({ + url: "/user/feedback/list", + type: "get", + params: params, + }); + }, + //用户反馈修改 + updateFeedback(params) { + return ajax({ + url: "/user/feedback/update", + type: "post", + params: params, + }); + }, + //用户反馈删除 + delFeedback(params) { + return ajax({ + url: "/user/feedback/del", + type: "delete", + params: params, + }); + }, + //查询游戏余额 + queryBalance(params) { + return ajax({ + url: "/game/wali/balance/get", + type: "post", + params: params, + }); + }, + //回收游戏余额 + recycleGameBal(params) { + return ajax({ + url: "/game/wali/transfer", + type: "post", + params: params, + }); + }, + //回收金币 + recycleIncome(params) { + return ajax({ + url: "/user/credit/gold", + type: "post", + params: params, + }); + }, + + /**********************用户操作日志列表******************** */ + // 请求用户日志列表 + getUserLogList(params) { + return ajax({ + url: "/operation/log/list", + type: "get", + params: params, + }); + }, + + // 查询所有工作室用户 + queryStudioList(params) { + return ajax({ + url: "/user/madou/list ", + type: "post", + params: params, + }); + }, + /********************************用户资源配置*********************************** */ + // 请求用户资源配置列表 + getResource(params) { + return ajax({ + url: "/user/resource/list", + type: "get", + params: params, + }); + }, + // 删除用户资源配置 + delResource(params) { + return ajax({ + url: "/user/resource/del", + type: "post", + params: params, + }); + }, + // 新增用户资源配置 + addResource(params) { + return ajax({ + url: "/user/resource/add", + type: "post", + params: params, + }); + }, + // 编辑用户资源配置 + updResource(params) { + return ajax({ + url: "/user/resource/update", + type: "post", + params: params, + }); + }, + // 请求用户ai伴侣交易列表 + getUserAiMateTransList(params) { + return ajax({ + url: "/aimate/trans_list", + type: "get", + params: params, + }); + }, +}; + +export default userApi; diff --git a/src/api/videoManagement.js b/src/api/videoManagement.js new file mode 100755 index 0000000..f08eb43 --- /dev/null +++ b/src/api/videoManagement.js @@ -0,0 +1,813 @@ +import ajax from "../utils/request"; +const videoApi = { + /********************************审核视频相关接口*********************************** */ + queryTagList(params) { + return ajax({ + url: "/tag/pure/list", + type: "get", + params: params, + }); + }, + getVideoList(params) { + return ajax({ + url: "/vid/list", + type: "get", + params: params, + }); + }, + queryHappTopList(params) { + return ajax({ + url: "/image/list", + type: "post", + params: params, + }); + }, + delHappTopList(params) { + return ajax({ + url: "/image/delete", + type: "post", + params: params, + }); + }, + updataHappTopList(params) { + return ajax({ + url: "/image/update", + type: "post", + params: params, + }); + }, + queryVidHot(params) { + return ajax({ + url: "/vid/search", + type: "post", + params: params, + }); + }, + exportVideoList(params) { + return ajax({ + url: "/vid/export", + type: "post", + // responseType: "blob", + params: params, + }); + }, + // 视频删除接口 + deleteVideos(params) { + return ajax({ + url: "/vid/del", + type: "delete", + params: params, + }); + }, + // 单个视频审核接口 + examineVideo(params) { + return ajax({ + url: "/vid/batch/pass", + type: "post", + params: params, + }); + }, + // 批量视频审核接口 + batchReview(params) { + return ajax({ + url: "/vid/batch/edit", + type: "post", + params: params, + }); + }, + // 从专题批量视频删除接口 + batchDelete(params) { + return ajax({ + url: "/module/video/delete/batch", + type: "post", + params: params, + }); + }, + // 视频编辑 + editVideoInfo(params) { + return ajax( + { + url: "/vid/update", + type: "post", + params: params, + }, + true + ); + }, + // 上传图片 + fileUpload(params) { + return ajax({ + url: "/vid/uploadStatic", + type: "post", + headers: { + "Content-Type": "multipart/form-data", + }, + params: params, + }); + }, + // 推送为精选 + setChosen(params) { + return ajax({ + url: "/vid/batch/update", + type: "post", + params: params, + }); + }, + + // 是否推荐 + setRecommend(params) { + return ajax({ + url: "/vid/push", + type: "post", + params: params, + }); + }, + // 批量是否推荐 + batchSetRecommend(params) { + return ajax({ + url: "/vid/batch/reco", + type: "post", + params: params, + }); + }, + // 批量修改帖子类型 + batchSetVideoType(params) { + return ajax({ + url: "/vid/batch/newsType/update", + type: "post", + params: params, + }); + }, + // 取消推送 + cancelRecommend(params) { + return ajax({ + url: "/vid/push/delete", + type: "post", + params: params, + }); + }, + // 推送列表 + recommendList(params) { + return ajax({ + url: "/vid/push/list", + type: "get", + params: params, + }); + }, + + // 视频上传 + uploadVideo(params) { + return ajax({ + url: "/vid/submit", + type: "post", + params: params, + }); + }, + // 精选视频推送 + pushVideo(params) { + return ajax({ + url: "/vid/push", + type: "post", + params: params, + }); + }, + // 审核不通过理由列表 + // 查询 + queryFailList(params) { + return ajax({ + url: "/rejectTemp/vid/list", + type: "get", + params: params, + }); + }, + // 新增 + addFailList(params) { + return ajax({ + url: "/rejectTemp/vid/insert", + type: "post", + params: params, + }); + }, + // 删除 + delFailList(params) { + return ajax({ + url: "/rejectTemp/vid/del", + type: "post", + params: params, + }); + }, + // 编辑 + editFailList(params) { + return ajax({ + url: "/rejectTemp/vid/update", + type: "post", + params: params, + }); + }, + // 视频审查 + videoFeviewList(params, urll) { + return ajax({ + url: "/vid/view/" + urll, + type: "get", + params: params, + }); + }, + // 获取专题 + sectionList(params) { + return ajax({ + url: "/module/section/all", + type: "post", + params: params, + }); + }, + // 批量新增视频 + batch(params) { + return ajax({ + url: "/module/video/add/batch", + type: "post", + params: params, + }); + }, + // 批量新增视频 + getVideoActivity(params) { + return ajax({ + url: "/video_activity/box", + type: "get", + params: params, + }); + }, + + /** + * 断点续传视频验证是否分片上传完毕 + * @param {*} data + */ + uploadDotJson(params) { + return ajax({ + url: "/vid/uploadDotJson", + type: "post", + params: params, + headers: { + "Content-Type": "application/json; charset=utf-8", + }, + }); + }, + uploadDotStream(params) { + return ajax({ + url: "/vid/uploadDotStream", + type: "post", + params: params, + }); + }, + // 批量编辑标签 + batchEditTags(params) { + return ajax({ + url: "/vid/batch/update/tags", + type: "post", + params: params, + }); + }, + /********************************城市列表*********************************** */ + // 删除城市 + deleteCity(params) { + return ajax({ + url: "/vid/location/hotCity/delete", + type: "post", + params: params, + }); + }, + // 获取城市列表 + getCityList(params) { + return ajax({ + url: "/vid/location/city/list", + type: "get", + params: params, + }); + }, + // 编辑 + updateCity(params) { + return ajax({ + url: "/vid/location/city/update", + type: "post", + params: params, + }); + }, + /********************************热门城市*********************************** */ + // 新增热门城市 + addHotCity(params) { + return ajax({ + url: "/vid/location/hotCity/add", + type: "post", + params: params, + }); + }, + // 删除热门城市 + deleteHotCity(params) { + return ajax({ + url: "/vid/location/hotCity/delete", + type: "delete", + params: params, + }); + }, + // 获取热门城市列表 + getHotCityList(params) { + return ajax({ + url: "/vid/location/hotCity/list", + type: "get", + params: params, + }); + }, + // 编辑热门城市 + editHotCity(params) { + return ajax({ + url: "/vid/location/hotCity/update", + type: "post", + params: params, + }); + }, + /********************************评论管理*********************************** */ + // 回复评论 + replyComment(params) { + return ajax({ + url: "/comment/send", + type: "post", + params: params, + }); + }, + // 请求评论管理模块配置列表 + getCommentList(params) { + return ajax({ + url: "/comment/list", + type: "get", + params: params, + }); + }, + // 请求评论管理模块封禁用户 + getCommentBan(params) { + return ajax({ + url: "/comment/ban", + type: "post", + params: params, + }); + }, + // 请求评论管理模块通过审核 + getCommentAccess(params) { + return ajax({ + url: "/comment/access", + type: "post", + params: params, + }); + }, + // 评论批量通过 + commentBatchPass(params) { + return ajax({ + url: "/comment/batch/access", + type: "post", + params: params, + }); + }, + // 删除评论 + delComment(params) { + return ajax({ + url: "/comment/delete", + type: "post", + params: params, + }); + }, + // 根据评论内容删除评论 + deleteContent(params) { + return ajax({ + url: "/web/comment/delete", + type: "post", + params: params, + }); + }, + // 根据评论内容删除评论 + // upLoadContent(params) { + // return ajax({ + // url: '/comment/importExcel', + // type: 'post', + // params: params + // }) + // }, + + //导入评论内容 + iExcel(params) { + return ajax({ + url: "/comment/importExcel", + type: "post", + params: params, + }); + }, + /********************************短视频最热*********************************** */ + // 请求萝莉岛最热模块配置列表 + getVideoHotList(params) { + return ajax({ + url: "/vid/tone/list", + type: "get", + params: params, + }); + }, + // 编辑萝莉岛最热 + editVideoHot(params) { + return ajax({ + url: "/vid/tone/update", + type: "post", + params: params, + }); + }, + /********************************标签管理*********************************** */ + // 添加标签 + addTags(params) { + return ajax({ + url: "/tag/add", + type: "post", + params: params, + }); + }, + // 请求标签列表 + getTagList(params) { + return ajax({ + url: "/tag/list", + type: "get", + params: params, + }); + }, + // 请求推荐标签列表 + getRecmdList(params) { + return ajax({ + url: "/recmd/list", + type: "get", + params: params, + }); + }, + // 请求新增推荐标签 + addRecmdList(params) { + return ajax({ + url: "/recmd/add", + type: "post", + params: params, + }); + }, + // 编辑推荐标签 + editRecmdList(params) { + return ajax({ + url: "/recmd/update", + type: "post", + params: params, + }); + }, + // 删除推荐标签 + deleteRecmdList(params) { + return ajax({ + url: "/recmd/delete", + type: "delete", + params: params, + }); + }, + // 删除tags + deleteTags(params) { + return ajax({ + url: "/tag/delete", + type: "delete", + params: params, + }); + }, + // 编辑标签 + editTags(params) { + return ajax({ + url: "/tag/update", + type: "post", + params: params, + }); + }, + // 推送至精彩 + pushWonder(params) { + return ajax({ + url: "/vid/wonder/add", + type: "post", + params: params, + }); + }, + /********************************发现精彩*********************************** */ + // 删除推荐精彩 + deleteWonder(params) { + return ajax({ + url: "/vid/wonder/delete", + type: "delete", + params: params, + }); + }, + // 获取精彩视频列表 + getWonderList(params) { + return ajax({ + url: "/vid/wonder/list", + type: "get", + params: params, + }); + }, + // 编辑发现精彩 + editWonder(params) { + return ajax({ + url: "/vid/wonder/update", + type: "post", + params: params, + }); + }, + /********************************视频热度计算方式*********************************** */ + // 获取视频热度计算方式 + queryVidPopularity(params) { + return ajax({ + url: "/vid/popularity/config", + type: "get", + params, + }); + }, + // 修改视频热度计算方式 + modifyVidPopularity(params) { + return ajax({ + url: "/vid/popularity/config", + type: "post", + params, + }); + }, + /********************************资源管理*********************************** */ + // 删除资源 + deleteSource(params) { + return ajax({ + url: "/source/del", + type: "delete", + params: params, + }); + }, + // 获取资源列表 + getSourceList(params) { + return ajax({ + url: "/source/list", + type: "get", + params: params, + }); + }, + // 添加资源 + addSource(params) { + return ajax({ + url: "/source/add", + type: "post", + params: params, + }); + }, + // 编辑资源 + editSource(params) { + return ajax({ + url: "/source/edit", + type: "post", + params: params, + }); + }, + /********************************过滤词管理*********************************** */ + // 过滤词列表 + filterList(params) { + return ajax({ + url: "/filter/list", + type: "get", + params: params, + }); + }, + // 过滤词删除 + filterDelete(params) { + return ajax({ + url: "/filter/delete", + type: "delete", + params: params, + }); + }, + // 过滤词添加 + filterAdd(params) { + return ajax({ + url: "/filter/add", + type: "post", + params: params, + }); + }, + + /***********************免费视频观看配置列表************************ */ + // 过滤词列表 + // 删除 + deletefreeVid(params) { + return ajax({ + url: "/freeVid/cfg/del", + type: "delete", + params: params, + }); + }, + // 获取请求列表 + getfreeVidList(params) { + return ajax({ + url: "/freeVid/cfg/list", + type: "get", + params: params, + }); + }, + // 添加 + addfreeVid(params) { + return ajax({ + url: "/freeVid/cfg/add", + type: "post", + params: params, + }); + }, + // 编辑 + editfreeVid(params) { + return ajax({ + url: "/freeVid/cfg/edit", + type: "post", + params: params, + }); + }, + + /***********************活动配置************************ */ + + // 查询活动配置 + queryActiveConfig(params) { + return ajax({ + url: "/video_activity", + type: "get", + params: params, + }); + }, + + // 新增活动配置 + addActiveConfig(params) { + return ajax({ + url: "/video_activity", + type: "post", + params: params, + }); + }, + + // 编辑活动配置 + eidtActiveConfig(params) { + return ajax({ + url: "/video_activity", + type: "put", + params: params, + }); + }, + /********************************金币视频配置*********************************** */ + // 请求金币视频配置 + getVideoGoldCoin(params) { + return ajax({ + url: "/video_gold_coin", + type: "get", + params: params, + }); + }, + // 添加金币视频配置 + addVideoGoldCoin(params) { + return ajax({ + url: "/video_gold_coin", + type: "post", + params: params, + }); + }, + // 修改金币视频配置 + editVideoGoldCoin(params) { + return ajax({ + url: "/video_gold_coin", + type: "put", + params: params, + }); + }, + // 删除金币视频配置 + deleteVideoGoldCoin(params) { + return ajax({ + url: "/video_gold_coin", + type: "delete", + params: params, + }); + }, + /***********************视频资源库************************ */ + // 查询资源库列表 + queryMediaResConfig(params) { + return ajax({ + url: "/mediaResource/list", + type: "get", + params: params, + }); + }, + // 使用 + useMediaRes(params) { + return ajax({ + url: "/mediaResource/use", + type: "post", + params: params, + }); + }, + // 使用 + ignoreMediaRes(params) { + return ajax({ + url: "/mediaResource/ignore", + type: "post", + params: params, + }); + }, + /**************************自动上线视频配置**************************/ + // 视频自动上线列表接口 + getVidTimeOnlineList(params) { + return ajax({ + url: "/vid/timeOnline/list", + type: "get", + params: params, + }); + }, + // 视频自动上线新增接口 + editVidTimeOnline(params) { + return ajax({ + url: "/vid/timeOnline/edit", + type: "post", + params: params, + }); + }, + // 视频自动上线删除接口 + delVidTimeOnline(params) { + return ajax({ + url: "/vid/timeOnline/del", + type: "post", + params: params, + }); + }, + // 视频自动上线批量新增接口 + batchVidTimeOnline(params) { + return ajax({ + url: "/vid/timeOnline/batchAudit", + type: "post", + params: params, + }); + }, + /********************************快捷搜索管理*********************************** */ + // 获取快捷搜索列表 + getQuickSearchList(params) { + return ajax({ + url: "/quickSearch/list", + type: "get", + params: params, + }); + }, + // 新增快捷搜索 + addQuickSearch(params) { + return ajax({ + url: "/quickSearch/create", + type: "post", + params: params, + }); + }, + // 删除快捷搜索 + deleteQuickSearch(params) { + return ajax({ + url: "/quickSearch/delete", + type: "post", + params: params, + }); + }, + // 编辑快捷搜索 + editQuickSearch(params) { + return ajax({ + url: "/quickSearch/update", + type: "post", + params: params, + }); + }, + /***********************表情包管理************************ */ + // 获取表情包列表 + getEmojiList(params) { + return ajax({ + url: "/emoji/list", + type: "get", + params, + }); + }, + // 新增表情包 + addEmoji(params) { + return ajax({ + url: "/emoji/create", + type: "post", + params, + }); + }, + // 修改表情包 + updateEmoji(params) { + return ajax({ + url: "/emoji/update", + type: "post", + params, + }); + }, + // 删除表情包 + deleteEmoji(params) { + return ajax({ + url: "/emoji/delete", + type: "post", + params, + }); + }, +}; +export default videoApi; diff --git a/src/assets/images/1.png b/src/assets/images/1.png new file mode 100755 index 0000000000000000000000000000000000000000..96e920fdba6f52f2021a086c5c50afa1dc31c503 GIT binary patch literal 7528 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/bg.jpeg b/src/assets/images/bg.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..cece6b3d26f2ae85c211188c04cf8c64e1c96fbc GIT binary patch literal 74170 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 A+W-In literal 0 HcmV?d00001 diff --git a/src/assets/images/bind.png b/src/assets/images/bind.png new file mode 100755 index 0000000000000000000000000000000000000000..3140905dafd59671b4a686d56dc244f370cf86ff GIT binary patch literal 1701 zcmV;W23q-vP)R-~rJ;gc45_!=Zq7 ziekJFq6y$ZqFGG9(CND25DX*+2yBl?L{MZww)4y^+tSWm*g!~j{%ZPr^WOLK-tTz7 zA>8B--Q@bw0dS)$*inIw3IIrp(QyKV;Tm|Dz|=>B*60&_hdW>59laalXPuICL#NQ` z(Q>Z~Ray+7g_a_T_A+bBLTX~G9mEX-I5AotSk(zzz&y%r8fxGr)oS7uE4y|B$c~!b z7hS7{G`#4cNEwOli=Qwa<3*<^TB_L=SrvU$7(a{D7KRTl(Hr1LVZ$q&z4_ zz(_kG4D9oPWB!skoDIuUn0T}49mXjT?PBmz0(vkokbnn_b^>$MpGs`F0##`m05pZ= zDFX4AfTxq3HKwW6srZ&cC?f;`>wJQ?vfrK!zn99%h|z@rtu#yI89_Diss4Y(6{t{r zaaP$w(3+qcUtpIgux9`#@eJ%I zLOp@EX%NN`^JD-cEV62vPF`nllPIkcfU-(yOyfNPxMY5Hw{G2IxBj%MxZC_SX5lT( z&Hu(=2-qg}svu6(NHtXgQidI9lPiFuc*4uUr1Gj=7Sj*5lxf3+jwi#lcw*+vWHnbp^jIXg0 zpNUAD!5Bgi>PjJU;plXY=yT&c1b!r-Ccg7hg^Vce1Te;6`?CqaG4n)E1(NagRsnNi zX}m_*-Zplq6yj7^8gz+p#P}XFFAk*=Z@U4cMQI5E%ZzpcV?r5#%Yv1INky?ea3a#X z%$Q#?UW7PVJEyl#6HE=BMwnflR5m&RWJKvD0I!?ifgeJu@?a6bIrEqua1Ufv;va*m zGA8k7dxq=@qK3^sM3x;+yng_6p)R)CX{=olYUy>)AGrSEXb)ZYMl zlx=gsx{#_ot^b!3oL>H=-ORV#qa0s#|G z3ndeJ)8_hQMd=^|LrV>bX?q|QpIG>>DJ+c_bO@qhr6P>Zvl018W?tteULU7yIJ%UH z^i#9^A*>80mFHZQw;5zb=_3YancOhP0;xoC0k$pZ*Mh1t#maX&B1ehYa;;fGQ(Bb1 zAYhuo*@Z6PyZWe!Ca(ZFQF=lHihX){CCVWfAOhHw`LH~b$-GutGhH%m%6z9q=?DRX z49*S*Rb{YO@ddlIDCzBOamtjwuW{$woUWRgu>3fPKl3te$^bH=q<^;PS@tK845&(N z#Q>2x_Yn)bZQk1&R298TH9fYsG>6O=oKQxTb^v&&+$-mTY9dexK%s?j6a(x8cm@0T zP@a4KK`rO*76hJY_gTehp%($NqWl(v7nv3x(X2o+{;?N`%a{93y9J^-{$yNrg7D(c zY0jH;W@_boSkrbBsE=XrxFFC(|DO1-Zb7r6RL{Uz{kp6%&#X=*>aPXDOXiCe(0`=E z@?s)hZXvV@Ep%V7F@C}h!r}}$Corb_Q_44215t_i)=CwGWh2sNW?1db=Yy)!-3lNR zmQoD$+to1`+6^zN}eSqsc^!&RlTeN9w1mCO!g<0)_y!&J1@*y z{zDi}-ZnqqqJ`>$jq&pZzfCpLNI`&pSWdFrp)?J#>IP+>SK*cbt>Ww}p|?;ufGz;& zZxx7u`W8W(a{HbQr!6a1D?Q3gBZzq@11$p4UX8UQP9JaGfGjUG&Jflv2}oA8&|`fY z<5{<$?Ky6HrK|*kfdf9~$^KNL{Lb2*N^N{OUh1)lKHTDn%C veZ#fCw+?{z&uL{IJ1S6FzS`gVrmw*N{)q8`1ds}S00000NkvXXu0mjfBCsil literal 0 HcmV?d00001 diff --git a/src/assets/images/czje.png b/src/assets/images/czje.png new file mode 100755 index 0000000000000000000000000000000000000000..c1e2a77d01d01ba45da3217fe26866ecae924b60 GIT binary patch literal 3280 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 KMNUMnLSTa4i-N-d literal 0 HcmV?d00001 diff --git a/src/assets/images/dl.png b/src/assets/images/dl.png new file mode 100755 index 0000000000000000000000000000000000000000..7da7f18289a3b7ff3361828e3a0154a4e69915e0 GIT binary patch literal 1014 zcmV7fa5Xb*xn@YJ+m85thRiGX!apKb5?ST~310TIr3fL5>wDmKQ8o0rwY6Hji(hsQx z*&B*P0s=%X1VImJBBe>Zma5Vm+JZm`3GWJ`ejo%*0Pmn(uS=4eX4kuRHj>|UcV_;- zH}l?`_XsO|&t)~+nMn(fY$)L)CBP}0ImUiUedKMYsK?iLZ%{y z8F;%1qHBjBJ|z{jcNc&31YoH9-T_^E@>+Fd!xly{oj6FY>dS)3Sc!DgHkcS$2WkXh&uo}82GkR&wtb` z@zpqnB2EEF1N4Wa=hoB%z_t-HAL%S=hno#x%9%bUa^gyQenHiEDj`D=Er1|di&O?o zHTxd3RZi;KAOTKhml}ZqN@})J_m+hqYrs@{)-jiFRs{1<^8URv{d(?E!vU5G;OD!c zinCyJyPLv=`0QMI?exh9|K}rc2K)&0@~Jln_t*g{K6 z_BesxuQ1RE<{qb$KYwTUKK~h!1h7>aiZ}*fpR0KMNur#3W#YK8m>{wMP9|jWH4*kZ zYXT@x+)7E4{kP^rL>j;?r_Tv|&=vhtJWjh_p3L2-Lih$S-ww(qc^Q-R{1)4TF91W%TmsRyK%ql0CSWY-0+i&;VIu0Y z-Fj-~Otoio2pW93u(-U1fKUG|A>x!&(0;2dbe{meB8Tv^sfy2-aj3e86EQ2*G1Y&) z>N?T@hLZUTpabsA7r4eY8d(5C6-UA7sUBpj66I8Tje{(b0Hz}P8Ti0Gz#avb5F10y41#GlfIlTYzu;Nl+sm9PG}w>3z};1eL|6O7(W^lO`LVSh zcZo1c6y$MN7F$8M?4Fue2s}bDy5L7hUH>v|0CP73&b7eJ%+*5khgP|vJ| kY17I;n6p`ruN9wxr%znmKvir{G5`Po07*qoM6N<$f-U>h4*&oF literal 0 HcmV?d00001 diff --git a/src/assets/images/dsp.png b/src/assets/images/dsp.png new file mode 100755 index 0000000000000000000000000000000000000000..a55bd114e3773eef4cab8d4889e6e4cd5e16b89f GIT binary patch literal 971 zcmV;+12p`JP)>@RP#(A4MbH!q2TrKOHV=V#wBjK=KQvA^g@__0@y5GW=RCXf`OMF=znR~d z5c5Vc=SN+jnsyE`!HSa%F+9VUd+P#~wDSanIdKvI*4B!^Gb@vN2RaU5F@Qw?rbHw`Lxl3p$b&Ga;qTJbp{3iOeLm1(=YZnQX*7= zaynBGM2gCsArDxf!oAmU&RdH)P+u>rFpy71ysT2ToZU3CtWvhK1*#uD z=-DL2>*hA-o89R3pcCT27M0?eV002u zULREf+%r9?%b@?(Myp*;2Mg%>Xyh9yEH!S(dLjC=`+>^J>_Sec<3wUHm=}RCITALE zcOZJetnO1y>@aT@{|vZV>w+T^vpq_P)`&pG&TL_YWuugDYIhR2W4fiGYu4CbbeC=C tFsXR`)qn-Oq$~Hd#u{kqk9nMfe*_f*T2D>({K)_S002ovPDHLkV1joyylemf literal 0 HcmV?d00001 diff --git a/src/assets/images/fzsj.png b/src/assets/images/fzsj.png new file mode 100755 index 0000000000000000000000000000000000000000..bf0b388e6ba821287ce027ec892d9b16a2da5047 GIT binary patch literal 1706 zcmV;b237fqP)2O$vI6Lq%hsmAtmp1t<|u%k9uYSrC+KjwQg@B3!PB@}q} zD%UPD)7Jp%p4YrGQD56HuuMGV!E5%UVc=T;JD%6PRAfCWVt{Me%K&afb2rVJb4g#v zwd@-JjRQOhK>q9i*k|TV!@$;Pb#+sX*FcQOcfOAcFWzzL{n}Ls$oTMXG3LB% z$iUiI&6(Ysn!C!xivY&E7_vb$u+VC?Mj}rHAi%tCZm-Vt3qr;h0wNRBV4_pk0qlaY z!v<{<^9UG|AWWx>l#nb9q7;xEF!FVSiI&Hzx5P7vXRmU7oVg`o`F7%m5}r`&6!wT( zz@56b2BNF#vkJ4k@JQc@;53OZ>G$S|hL&s=o$&qkjd{VWt;)%_J+5WT`1BoWBaD8* zl=6sc*+RjW!;4B+5MK22@^5qd*2doJ_B4D<`^>)&3=aPM!Vfopai{Ff;I1&Q2lJFS zqdENoIFitEEt^9SA=?N63=Iv9kKJ+Z{#miVV#Yg~VGmk_xieMg8woF=*vO+owWq+? zGPj+JPaH@jiXvidG459EkHA>SFzWB-(BQeV-+%sZ#vR)+YtF<|0AkND<4f7t^O~o1 zHFhogR{*bwuYAJ01I#BG^l9ikUL4zAT~Y@BQJGsL<`3nwS#t`9df|zk3~(# z%!{Mjt4j=~J!{U-0+RIXz{F_vrepzqKZSwpRXTd)I{JXr#KalA=0wv9W13Qy@((r{1OV@Ez#`dunT)6sz*fG71Qjt zg$y9+hlG;U95ODfJr19S@=RGUg@Ckyh;pqsA?)P{nXdTEJBEQc%*uc%1SC-_a+?o& zY6IjKV7)}AJ|+{0Yh9ZM=;LVMT`<={B&r)wW;#pNjmrb7HjNHRydrD$l)6iS#(qdD zzK^Y}c2OpfWSE2*seUhrl3A*2*+RjxQN#0^pI|WA)W~&KlKQ@afy;tSN620I>os@FR#0((Rl+*VdIWiJk(}K zE^DRQqK7tVO@cDnYd23O2uC}-m{d{++6jni+cdzaYhA*+S#vH3vgEz#zc=Mtw&+UG zc2(uFP%#;}L4e*m-6y7bCKeVA+f1pZUQTEQ-S(idpe7`Z#_Yp~%?(`uJ5g?4h$X2w z&?PanmrhE<_i<5YuN?Zd1w^o*iu*KeGSRwf8gvrCZhD{zWO68Diwp#!s+t_yfE6Xg z>bo`|onkkoFKUg3S##Qivl{^QdmA$`ulr2P`f1A{o;Wc$8Ak~ahj%WJZfuf1!EOTB z4N&CiMSyoa@6lQ(4RR0b`#4fEfh1Tcr)o=hETgB@&G0h6yHj(QWBLUW;gtxjq$cFE zkjC$Av0BE^Ugo-%E$>v?(wi7aDpBm(ni0>GeHGA);ps7Xp&tY3HUBBH`BBcvBclLF z${QWi@S`-U=vsPBW7eG0flSC>x-gZ|grbJ^J1<$GhVNnmAX-t>QySjy#z#Fq$*y6> zO{p}Y&dic39Q%ieq{I${c+`0AS<*%3*jt}tpwGq|0!05`4F5|kKI7#=?V#g`mV*4B zIQatqDO<`+w07*qoM6N<$g6fb# AfdBvi literal 0 HcmV?d00001 diff --git a/src/assets/images/gm.png b/src/assets/images/gm.png new file mode 100755 index 0000000000000000000000000000000000000000..24a1ada1a56777cf91a5e43232e5b129b460d172 GIT binary patch literal 2160 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/icon.png b/src/assets/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3c2ff5b1500b7b8028ec9df4f80bccb530ae56b8 GIT binary patch literal 41608 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 D#!uOj literal 0 HcmV?d00001 diff --git a/src/assets/images/jb.png b/src/assets/images/jb.png new file mode 100755 index 0000000000000000000000000000000000000000..befc39eedd7934628777e89a522c6912b9a3e80c GIT binary patch literal 2451 zcmV;E32gR>P)k?a^tJ6YKo@18wqJUf>ZxgWo3R}ewhi=6J0ki|6WmY_X`Q_GV?AG zZ6%f(iAX;vaCiLY^lGQy9zDfY_%T2FefMx{b93V@5gif{jJnU&XW{1d<(ISjyp;Fs zqZkOoN~Pj^WS(e}4i+qam<%N?cYlkXt(p_PhFVg{Bo zzq^Xz4>r(j`af7im_NPv_N9@w;Bc?rC8jNA0Y*s_9ZC=kR(R(X5e>?{*3K%%_?~&N zfj2Mfhawt#RPMDhzw_hey9SGVB%(eMca@T}JZze9{e6}1KS_u>o6a>58vy=9W+%vt z#01ZrmU}JjQQu|A2M{1;dAB-4L2Dz|An6d`in*cn8m>8D_#5xYp18Uk$wZTOGKGt{GQ^1=)PZ&>m5S= zB9hJ|yt~Lt)H*jR^-5UavAJPF7Y3_O>{Eu$jsId zp9sGtl191rwK=TT<TP|zU?e^eB4g+;)4zbq|=P}7g;atZfuNsteoixJ19-fs-`w5~sC!+neJ?L&kDf%^S!&ZAj zcd}9yXi3N~=E6=|b>QNNh&mi-){U81k*XNNanr&rGo26>x*{`FD(i))5yH9B$r0B& znXg)_LB&{4Wu zP74M`YNPSu^6MubUNqZ1EAFCT<$&60nlfVM(nq4Gz_k~?%^YkIiOsb>C6fbH?`<4L zGYqF^Nv2*h(7diYTjR;(+(+$cc~JL4)!o~S?%I7fKNkgzipA-zMm1&fLa(*yIw&>} zSb}G)z;)j2LPG`=45%PW%_31yK3qxBtmh=$238{ka2y#L!=w&u@5OQR8HmTSY1WBE zO{`hXv+sTwPG7@0a}OH)ncRiYT9#d_p1+o7+ytJ}G^N{;FrPgQ!)YTKF-|l2Kp%8K z7d~hhsfj$R#R0GiBi#^mwNrROGw7V$~P1(a>e~(P=rryKynR@Q%<$`LeZ;^OE1xp{MQ| z6xEOr@Tomj_g$ME7BEOrRc&J!&v#h3GZVSWIx$rH5!vV_kyDk+8Bx%&Bm><#9*;+x zn;U2l?^BL}cIE-x0WJuCor{I~c?Yv(pl#mj81}O%40aN&KCiUXKWCOE$Y8j4+_p?< zF}SM0#{$D@9f=*4JtC{i%nc&>fQmnj^M=*q6JQnh-4GoqMX#-=fFUmMfgu@q#~)_V zD(K5VS#+6;9ZNC^z>|V|VyX41)wrl=te<8(dg!{AA| z*E;ntR9x!K_$b>Mr=_;@6W>Qw4M#msi25g1 z=+0MFGvrCGpvq5(<7+f`%{Lcj3>JgHJwh%B&}Q@s3v}W1sN1#E6v+rdU$^f(45x>i zrHu~qx9h=9xz~Dw53QwU92H|o0*PL4#6vRuaI3_&FgG#5jgz{gTAciNsuZ<7B%_H}JhE@@Ry2u6Sv%1z<#~Dqf7Npo!7*1;` zg{)n3K*Ar=8eaMCi=Ozgcl^<5m*{ol39m5{(h5CEd&O7~#n(Qv(R0HTJm3WFw8*!~ z=r1EtLN@pH-?=CVE>ghSp-I7R$ zgJNUVO&T7+;ky5Hf?Vud6~oM6*?1sh)C>%Ai}0n{O6rV$PBbwVd|fQqwSb3p!ps;7 z26t=H{4*B10KxbgRrmfAg6)m2BLwnxY}e2|A$ZNIDElH)UzkTe6_fn-{{WMd2c5J) RejWe-002ovPDHLkV1g`Rry&3U literal 0 HcmV?d00001 diff --git a/src/assets/images/jbtx.png b/src/assets/images/jbtx.png new file mode 100755 index 0000000000000000000000000000000000000000..3b7914a7a607f074fd11ae80d77be2bbfec84f18 GIT binary patch literal 971 zcmV;+12p`JP)R4D5 z{SqG3gD|sHc&I}W6zGo9$si(P=X>L`-F21Sb^ml$*g5Sm@6Yo*@B4krY6sx`D?}( zY7-E(^0zkqZ&997a4ad(6-*q8^^(@&yy2SA`E^6I(El|>otHq zxrQO8W=}+WCG8z2VEI)E{#dTy<93tlV$`(xz4p^l0yDl~HxpgU6MWp9ZYidAky5|^ z5MVRG21B0C_WV6y1F83911tcx0r~s?b7?2-=kE!E7&gl|@puHf>xpQ?39xc_bTN$< zqo9k?LaX%sC#slwb*j>qUoHBTm6>12gKRav|4b^TUblpRtVXeKdlRd25;HL8HT6wP zd!17@k=c5+R=BB+n7h-h2`1`c#<#}T literal 0 HcmV?d00001 diff --git a/src/assets/images/timg.jpeg b/src/assets/images/timg.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..fa6eaac0d6d3e8658237ef43a7aaa3501ffbbf93 GIT binary patch literal 16969 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

YZBSk)RUWNHOu`N8k%V;o3h1^=b|4 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 D{B1qT literal 0 HcmV?d00001 diff --git a/src/assets/images/user.png b/src/assets/images/user.png new file mode 100755 index 0000000000000000000000000000000000000000..a0e11ce18ba94f5e672b948071df3cb3ae51084f GIT binary patch literal 2275 zcmV<92pso`P)$ ze~c7&75}{1I|SMaDR|t>9=1h{+Ey%u+wUGkN-bKjrBxG6o3;qte)oWuXs|T~HN9%6 zv6MhlD#y;!AAo6-nkdAiwUknWa5D>yiUt2rkmlH#gQEOOLE(0unc1D)xn+OM9UO)@ z|IK{g`@Hx0zVCbA_x%pxDu3uI_aFbi1dfT0Pxp~C7mT?8sRXEQG#Rh~wwaw@UI1;s zF_ZqsP)2#c5$K)t_%+VR)62oUJe*^+hDdo%HM$N5<$K!Nua7v9=KvfhMR`^2?#hJ2 z>n}AR0=DS5nK`!^M3V<->?nhO8a2}|_zE31_LKo{19%@Z-lIlkS0DQN8ZR_VW`!ri!R;V?Jt)u2ozYDCDfe48p6n#%C(9ir z;FQC>BAQ9B3_~Im0lQ7!!4BRH0us}FHIsU!mJv(HM+jKSz&Kxyz~5BO^sn4^J1*z2 zgIP?NMZlzfWWn2_X8J4jNYo`@O;3Ijea;SmCKSLjryFv!KD+D1GxfmzaZAXJ03Pw* z8T_@VncfoA?-hx-19}F)7X#l}Gj*kwo%#ggavd0pd=Sml>*`c8XvGq5fM|B1Qkf^u zoSbpXf!EKM%UVLZQJq)%&Z{&t{dhGJHJ!0q+h;>j-YA71PpGE;Y}lC(${n7PREIUN zRm5WMR15iV5s8?*8-zDYvh*!AlX|_9-I@e!k$i^1PvjMOvu37?%V01hY>{}BL2C=T zztc?Ji%6v>nB)ZNR?XD30TZx9!Um|h5cUV7rvBPs9QSp4r?%hfM3lc2-cM_$KB^j? zH6=L`jraqYy^^hf+nUX^Q7&IK0!Lzxj#23RabF=4p^4*mrw(2UfxT0bjambr1<>H) zI6Q1@OXh`tR>QP~e2Ibi`2|4Bv`lJsXaYTL$WlOmyFK z3QZc{o$@1c5xf;kECtl2zs}(?@~$FLiYL_8&Tw@@*XLO zZ;3<_p!NB0l+w&pM`!|kbLTMoy6k^^1&Sc1?$*m&i2?D+H*iXE&8ugkAEN`E7wrYb zGuXiz>X&uGxIOJEMV-8X7uTUb3LzRiR8}!{y~04V1s7piE4PgLO$RCujWOO zQBB>;n*kB%owlgS$>rSIdy@ymv`)>WmJEi3Jx#W94yB%7QRZmf>x;W>Ii@XSHv{p) z_j#JBZyGRx!ZP{}fHl6d!aSjQ5T`6lB#r|#rhv0iGxcv*a_Gb93$+V1dL*aN`%qHnFP)=Xm*R4 z+Tnk*;&K@n4+Uqu=vWBny$K1k3<6HLk#O7Vd}$5+&|Wz7V{K0B2wFi<=r_n&$E zp1_-$GwBWWOoS$2iNwPMddzPF>H$|6KSG4HboSqCoA+({=)}zVqtBgdJW&gWfE}#h zd97Rj^`LX0Hzx1R5tb5Au@VsI7_)N>1UE-Otc(JoiNQ@(jP7?BYg;mU*Z!GHt{r{u z{9Q!U1c#bHJOdT%xWrXMUs?&TW(2ZAE+n8*7~QJ$Rs&(I3pTNQ@vv0`!& z2bc5{TS68aOClUp4Sk|V;HXGU%7IJ(!`*j>u%N}z-Hvd`pB|Bz6al#{ z`-uG9VS!r1wk71DVtY^csz<<%%T>%+R`B+1&D0C0pdt6)GZ3sa3>Z;UZ>wh6iY0Xr zdj}zRFYyRug*2#eQ&6vc9STZEM509j9q_x|T8I6fcw%ORsn8H|h6>6(dB^yWW~M(i z6i(K|w1wQxz?bqfOY>Eu^3}Z+PkavSk#!?*kgT|T2#n47u(EX)U&*o(vx8lha z{%RFzH`4unWL#D+Yk>7%8u+tj>bF%B z&kET?KnsAwWXF80Q`mVX4=0_yi&e_KJEQFlGyRk^%3=nuhf?sXJftmP)OMERj45uvdd~%C#fMcdtHI zPid&eEg{{#DCXiTMDb=L<-XS=Ab*qZ*DK#W)&sblUC`+XvhP`d=k) x`2-wmYoFNEz2Wa+CnofnI4t0mmb>Z+{1=YVU3OUjqTm1k002ovPDHLkV1lYXTiyTw literal 0 HcmV?d00001 diff --git a/src/assets/images/vip.png b/src/assets/images/vip.png new file mode 100755 index 0000000000000000000000000000000000000000..1c7a298c8dd16273d9261759d11e435bcaa45a39 GIT binary patch literal 734 zcmV<40wMj0P)9pv1CW~h49N#zgFq|l zL}Eq)b*zolfrSxr$PgRH`Qtm^dp4EgDN-)J=kfdA?`(%~$`3l_{8$K7UBR&mgg4w< zszBDE_g?ik>G4J8Ts!nW5Fn!Sj0pse`wqZu6(GCs6>h^|-R(f&p6q-?=&t$RW(;4c zfGRu)T`L1$nE)63gn&r3ROq;GW!g!#g*f3S1k$}IyB<^oxZz6`FackhKoNM`_ck$# z%6Ta@GXl9<$Rxb+3YdmBDo_yqzU-zJk2BIjWx*S%K$-CD0%gOq3RD5lCQubTivSTi zLO?z}2wmIv5i;po?r_;S9s{B`Bv<@agh%%o7}${#nHEh36Rdv@Qu6T<|K z`{(sY&JjKBKC%1l=h<=m0#n+CLEtYp(QDgpKS)dP3e4zvSph+`GX^&l*92jMfJ@2k zGhxH>y*F&P)5(N$7Ob>@5Ia`}d#$uY;B4Il#C`%SM9UiNC89hP$VnR=fe1WkxC0Qb zN1sJTQeQwKDs=@y$NeUN)lqCdw));KPYX%FM-%A?gpT_{0FM&j<)3wH|J8}UfF!(% z03dq*`kyWXxC-FHymeNrg%seU$-_o-TM)&Iv&cRWo#vocqlc>>+edmastB)Ef$?pM zfN)6o1VNwAo;&lj-rN15w~-ZqR}si2Oy2f9TGZ2rO}v>a2(KbQnT+QX(15RAKoed? zfWL(ZCmavpI{QFg8_kZS3~3;#vB5Ma6jiwZDZ$ik=j4FE$GPj3U3 Q5C8xG07*qoM6N<$g2NO{$N&HU literal 0 HcmV?d00001 diff --git a/src/assets/images/welcome.jpg b/src/assets/images/welcome.jpg new file mode 100755 index 0000000000000000000000000000000000000000..1dac02fe524d2e6e84a501d2e6c3afb6b0ef6fda GIT binary patch literal 89348 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 XZ^I*PU$(ja%f5E=KnaEapUM9MjSV60 literal 0 HcmV?d00001 diff --git a/src/assets/images/xf.png b/src/assets/images/xf.png new file mode 100755 index 0000000000000000000000000000000000000000..da8d11138e1ad0b9efbf703eb663147827418790 GIT binary patch literal 2909 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 Hu0mjf<4tm~ literal 0 HcmV?d00001 diff --git a/src/assets/images/xfz.png b/src/assets/images/xfz.png new file mode 100755 index 0000000000000000000000000000000000000000..4925aaf4e86999eb853dfe34d7ee7665c5c0d984 GIT binary patch literal 1437 zcmV;O1!DS%P)~0HS+Xj*ux>kdRxFI@PiU|^cU+e!5?OVf`^MdMw`soaIXnB&E_-4B?0w$n zeV+5a=iGA+Lzsf6zrnco8n~W>xSyCc1~dRSc~XdBBM>+g?Ao2GR2o%Epc0?aw=QRP z-vHqmzc^<8hCzu%Df5UQw$%GcGw0~BI6&_Kn5QC^8Lgp|xk)8v1UqJPe>O$u4h&Q+ zB^Gx9?s8YqkD;V_xR?m1A@(VVo*#?A8!@hCn*r5$WpmsVt?3)6-sS?^^OF(qR?s%z z&i%im$6o{3t5`+PSSqMwF0IGb5z#gmky7G5bcHy$leV0b7)(~6b5}orGtcD=)hM;X7l!=n6T(2JcSb$zGL)fm_ z=IY${>G0OI#BR|AMn+gEjLO`TGUw>VX#n*q=6b`%cENb35+fyIf7NVrxeTwbIj26p z09D-YLsnS1hS*^uS}P+$5pzYe&6{One9iTQV@(03ld9%2x^a?$CK(Z`7|k|)b$gt? zpjmT3L0it8$`O9hl4fIWd(9kk!0(!EE}4GjBJmXgm(P})^xoDhWLtBlojFgiqZ{V| z+*!_GRstl0B-?fv0r`?t{%*pcbTx!%#82+;-udbwrEN7 zfGobCa=i^N%qKCp9?TmFcwB<$3KLEcqgAubFY@t@9^V6S$#$0DzX9Q0nr*!#kI&g# z4v#WD1@Hy{x0hW!fV0e;BA{ci+C8zjbDvWV@92it&W4JxJZzt4o3*O(LzTM_HePfY zyUGNg0nh=aR5p-J)phOtO*K&_Y($x{Up0;h9|V);tEzDxo_ZT%&kCZ?iUkwU$KW?L z+ww+U>2X%I+`-prl@JtRhPUs0Scza5d<{S+fle`V=jHh|?e`r0_WOlC9Yl_96o@BaU(hzo?npdA z7b7iq4`xNPAUwgqBLHrd7g{-zf#U+yMgqrbyAnU=GZr&g}V3m6ie@2J8*zE z-!RlHyM?RViZ4S42*;|jII^(Y{Ap;;6{%do!E=Q6f*xDvg5C$P%s1840WLH1hoO|U zv%nlP?+m4^9r@b454sD{#$e?oc`AH*SNjF#h-qUmmG~-OkfR%40@yqiLdTdhU0^Ot zyt*!FwdWG{*T;i{Rb2K%Jw^c&8s?eHtw_e@t1A|zKK~;(tK<#XgbE!CIrXkIHVWb= z0Spqv*TGcc+kB#FYfffFX3fcr(j;S~4y&`3o8+pGGVBHs?8-xLf3L9xp~Wk%%gp^CS%2K9jqQA(VdRG|uvi(h<9V rG4M;swvKxMWpk4ua=dcPXmkGnNhc@1eCo+&00000NkvXXu0mjff~&Aj literal 0 HcmV?d00001 diff --git a/src/assets/images/yq.png b/src/assets/images/yq.png new file mode 100755 index 0000000000000000000000000000000000000000..e663f4fe03bc7c62b09af9501d6ea72d30a317a0 GIT binary patch literal 1716 zcmV;l221&gP)-80YKbhU7`nh%=u-bp+HB!C{AcwHmUc9p;{KP6rw`wDDUvZaYn?u=zppQwn)C6ZSW^G*Pl6z~o^ zOX{<&ud2k4nniyhwlEq1>IA$6fU!rQ=hT50~#5utjn^ zz{$ZRA;cF%jx<3j-AetdrYafoWx%`p9~TK3*N0sW?YO)Sg!hI;^3{H3!KVTF1b~MJ zlM!0=jA{6p?y<0TLZ-o3;f+73TjnFGynYRQ1K?tpTw`8dmrcK{ny3=4FK#Szh}t~N ze%&&Q#a)eG*+AbFEt8y6kNs94oTNEZr*yO)sg^)x{8-b9Gy5IwmjYHhG3B(nFP`pK ziB&f6Q$un_B*Nbfky4*-rJ^bcR57+l_5xhz;s*xk!gIP(->bwb8^|@v*`#6b(BqFx z)H0h?5~yN&h3sG;F}S!nm=o(X_o>7x8|ZFIUS8wy7ar-ix@8X5!gyV_knY=irpuSt z=!)qbsV`Nyl@0X7*G$#uub(~AKXl7HRV9Hc#uoBKp^J6+K%J0T?)#m$TZzO~*;zvhR_w*jx1Uj*UyLLvq)idpG5{Upu_Vf=5T)6s?}g)?Y_!y(1Wv+Gn_mgVDNCEhG@$J8}RDE0uV2` z2Zsps4zaU$fT?SuLqE7w6zK(E(YsSi}{VsAWoD-$mnRXgpvWtO`s z6)BYrbPHoa1hj*J+7h;YW^7^NE%jEqM@9H(On1|&n3i{LhQ`-v;Af(lbh}@kss?gG zwh-`CDKQbYA&)K5PV;NO303iSLT+%edd7S(a1q;aV=jo?-lupG@KDq;pH>wT1ec2& z%gEd0GxPFTg~Nj}XW(Gt>I?GPz{q{69@Mu8{5jO`Zu%Ko_8R!-( zFVf&x1f1atAW%!xN<9-)Opv(JJ%aB?$QIJw+PPaiSN%RcW6lX8B1}wR1Kzp4+hIn$ z0;;$Igc0e++QQfkP@toEfZKH|-8`a*ZBcS~3%sja=7O*yE5+MFau|NyGHHZ?oRIs; zJ6rZmLAcR=z`VS#F3 z)S1st-7@bAr6NRdpk*{CWCwYNt9jz)=>Zz65SmAX2ATm|$l}KfhqYPt+3lZ?mmt49 zr87|N?5S7-IU#dY*lY~YxnZ|@enpq!0~xS|;co9HxkSe!`N=c?r@p70(b5H_+T&cD zf#S)t&(q;Bce?UB!u=i%RQqB%Y(OM80z8YE_f%?M|0}^kdH(^8y_Qe^nk1zF0000< KMNUMnLSTX=)hjaq literal 0 HcmV?d00001 diff --git a/src/assets/images/zj.png b/src/assets/images/zj.png new file mode 100755 index 0000000000000000000000000000000000000000..e32a0adca8f93d6cdda16326539ba50fd08a7f3e GIT binary patch literal 1298 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 WJ!Vf5sxH(30000 + + +
+ + + + + + + + + + +
+
+ +
+ + + + + diff --git a/src/components/ConfigTable/index.vue b/src/components/ConfigTable/index.vue new file mode 100644 index 0000000..7dcf9bf --- /dev/null +++ b/src/components/ConfigTable/index.vue @@ -0,0 +1,363 @@ + + + + + diff --git a/src/components/Gallery/index.vue b/src/components/Gallery/index.vue new file mode 100644 index 0000000..d0e43a5 --- /dev/null +++ b/src/components/Gallery/index.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/LongText.vue b/src/components/LongText.vue new file mode 100644 index 0000000..ac926e5 --- /dev/null +++ b/src/components/LongText.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/src/components/ShowVideo/index.vue b/src/components/ShowVideo/index.vue new file mode 100644 index 0000000..a06d9dc --- /dev/null +++ b/src/components/ShowVideo/index.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/components/VueDplayerHls/index.vue b/src/components/VueDplayerHls/index.vue new file mode 100644 index 0000000..052b11e --- /dev/null +++ b/src/components/VueDplayerHls/index.vue @@ -0,0 +1,140 @@ + + + + diff --git a/src/components/baseUpload.vue b/src/components/baseUpload.vue new file mode 100755 index 0000000..b796d9a --- /dev/null +++ b/src/components/baseUpload.vue @@ -0,0 +1,274 @@ + + + diff --git a/src/components/baseUploadNew.vue b/src/components/baseUploadNew.vue new file mode 100755 index 0000000..92bab2f --- /dev/null +++ b/src/components/baseUploadNew.vue @@ -0,0 +1,203 @@ + + + diff --git a/src/components/baseUploadOld.vue b/src/components/baseUploadOld.vue new file mode 100755 index 0000000..1c710f2 --- /dev/null +++ b/src/components/baseUploadOld.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/components/batchTagsPopup.vue b/src/components/batchTagsPopup.vue new file mode 100755 index 0000000..4a116e0 --- /dev/null +++ b/src/components/batchTagsPopup.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/components/clipboardPic.vue b/src/components/clipboardPic.vue new file mode 100644 index 0000000..3d51b57 --- /dev/null +++ b/src/components/clipboardPic.vue @@ -0,0 +1,140 @@ + + + diff --git a/src/components/commentAction.vue b/src/components/commentAction.vue new file mode 100644 index 0000000..68531cf --- /dev/null +++ b/src/components/commentAction.vue @@ -0,0 +1,134 @@ + + diff --git a/src/components/cropper.vue b/src/components/cropper.vue new file mode 100755 index 0000000..562f391 --- /dev/null +++ b/src/components/cropper.vue @@ -0,0 +1,186 @@ + + + + \ No newline at end of file diff --git a/src/components/decrypt-img/index.vue b/src/components/decrypt-img/index.vue new file mode 100644 index 0000000..6edd697 --- /dev/null +++ b/src/components/decrypt-img/index.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/components/decrypt-img/tool.js b/src/components/decrypt-img/tool.js new file mode 100644 index 0000000..5dd8776 --- /dev/null +++ b/src/components/decrypt-img/tool.js @@ -0,0 +1,60 @@ +export const decryptTool = { + decryptKey: "2019ysapp7527", + cachedBlobs: {}, + // 并发控制 + maxConcurrency: 10, + activeCount: 0, + queue: [], + /** + * @description 图片解密 + * @param url 需要解密的url + * @returns 解密过后的图片链接 + */ + async imgDecypt(url) { + return new Promise((resolve, reject) => { + const task = async () => { + try { + const r = await fetch(url); + const rb = await r.arrayBuffer(); + const blobUrl = this.imgEncrypt(rb); + resolve(blobUrl); + } catch (e) { + reject(e); + } finally { + // 任务完成,减少计数并尝试启动下一个队列任务 + this.activeCount = Math.max(0, this.activeCount - 1); + if (this.queue.length > 0) { + const next = this.queue.shift(); + this.activeCount++; + next(); + } + } + }; + + if (this.activeCount < this.maxConcurrency) { + this.activeCount++; + task(); + } else { + this.queue.push(task); + } + }); + }, + /** + * 图片解密 + * @param buffer buffer + * @returns + */ + imgEncrypt(buffer) { + const bytes = new Uint8Array(buffer); + const encoder = new TextEncoder(); + const KEY = encoder.encode(this.decryptKey); + for (let i = 0; i < 100; i++) { + bytes[i] ^= KEY[i % KEY.length]; + } + const blob = new Blob([bytes], { + type: "image/png", + }); + const url = URL.createObjectURL(blob); + return url; + }, +}; diff --git a/src/components/globalUploader.vue b/src/components/globalUploader.vue new file mode 100644 index 0000000..863ae3d --- /dev/null +++ b/src/components/globalUploader.vue @@ -0,0 +1,389 @@ + + + + + + \ No newline at end of file diff --git a/src/components/imgLoad.vue b/src/components/imgLoad.vue new file mode 100755 index 0000000..4f30cc2 --- /dev/null +++ b/src/components/imgLoad.vue @@ -0,0 +1,50 @@ + + + + \ No newline at end of file diff --git a/src/components/imgsUpload.vue b/src/components/imgsUpload.vue new file mode 100644 index 0000000..b404713 --- /dev/null +++ b/src/components/imgsUpload.vue @@ -0,0 +1,245 @@ + + + diff --git a/src/components/media-popup.vue b/src/components/media-popup.vue new file mode 100755 index 0000000..e3440e0 --- /dev/null +++ b/src/components/media-popup.vue @@ -0,0 +1,161 @@ + + + + diff --git a/src/components/mediaTagSelector.vue b/src/components/mediaTagSelector.vue new file mode 100644 index 0000000..025ae2e --- /dev/null +++ b/src/components/mediaTagSelector.vue @@ -0,0 +1,128 @@ + + + \ No newline at end of file diff --git a/src/components/multipleChannels.vue b/src/components/multipleChannels.vue new file mode 100644 index 0000000..c55fff5 --- /dev/null +++ b/src/components/multipleChannels.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/components/radioChannel.vue b/src/components/radioChannel.vue new file mode 100644 index 0000000..187307f --- /dev/null +++ b/src/components/radioChannel.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/components/reasonAction.vue b/src/components/reasonAction.vue new file mode 100644 index 0000000..a75b145 --- /dev/null +++ b/src/components/reasonAction.vue @@ -0,0 +1,240 @@ + + + + diff --git a/src/components/rich-editor/index.vue b/src/components/rich-editor/index.vue new file mode 100644 index 0000000..80d6a71 --- /dev/null +++ b/src/components/rich-editor/index.vue @@ -0,0 +1,418 @@ + + + + + diff --git a/src/components/rich-preview/content.vue b/src/components/rich-preview/content.vue new file mode 100644 index 0000000..4f4816d --- /dev/null +++ b/src/components/rich-preview/content.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/components/rich-preview/index.vue b/src/components/rich-preview/index.vue new file mode 100644 index 0000000..afcb98b --- /dev/null +++ b/src/components/rich-preview/index.vue @@ -0,0 +1,89 @@ + + + + diff --git a/src/components/selectReasonAction.vue b/src/components/selectReasonAction.vue new file mode 100644 index 0000000..479b5e3 --- /dev/null +++ b/src/components/selectReasonAction.vue @@ -0,0 +1,292 @@ + + + + diff --git a/src/components/tagSelector.vue b/src/components/tagSelector.vue new file mode 100644 index 0000000..9efc25c --- /dev/null +++ b/src/components/tagSelector.vue @@ -0,0 +1,143 @@ + + + diff --git a/src/main.js b/src/main.js new file mode 100755 index 0000000..1bb1bfa --- /dev/null +++ b/src/main.js @@ -0,0 +1,58 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-30 14:43:04 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-18 11:31:13 + */ +import Vue from "vue"; +import App from "./App.vue"; +import router from "./router"; +import store from "./stroe"; +import ElementUI from "element-ui"; +import Router from "vue-router"; +import filters from "@/utils/filter"; +import "./assets/scss/element-variables.scss"; +import "video.js/dist/video-js.css"; +import "./permission"; +import components from "@/utils/gloabalComponents"; +import uploader from "vue-simple-uploader"; +import VueCropper from "vue-cropper"; +import AudioPlayer from '@liripeng/vue-audio-player' +import '@liripeng/vue-audio-player/lib/vue-audio-player.css' +Vue.prototype.$store = store; +// 引入lodash +import _ from "lodash"; +import { LoginPlugin } from "./plugins/LoginPlugin"; + +Vue.prototype._ = _; +const originalPush = Router.prototype.push; +Router.prototype.push = function push(location) { + return originalPush.call(this, location).catch((err) => err); +}; +// 注册全局过滤器 +Object.keys(filters).forEach((k) => Vue.filter(k, filters[k])); + +// 全局组件注册 +Vue.use(components); +// 图片裁剪组件注册 +Vue.use(VueCropper); +// 全局路由 +Vue.use(Router); +// 登陆插件 +Vue.use(LoginPlugin, { router }); +// 引入element-ui +Vue.use(ElementUI); +// 引入分片上传 +Vue.use(uploader); +//引入音频插件 +Vue.use(AudioPlayer); +//阻止启动生产模式的消息 +Vue.config.productionTip = false; + +const vue = new Vue({ + router, + store, // 注册store选项 把 store 对象提供给 “store” 选项,实现把 store 的实例注入所有的子组件 + render: (h) => h(App), //生成VNodes树<=>虚拟DOM +}).$mount("#app"); + +export default vue; diff --git a/src/permission.js b/src/permission.js new file mode 100755 index 0000000..6a2fbd7 --- /dev/null +++ b/src/permission.js @@ -0,0 +1,67 @@ +import router from "./router"; +import store from "./stroe"; +import local from "@/utils/localStroage.js"; +import { getQueryString } from "@/utils/index.js"; +/** + * @description 设置全局路由守卫,判断用户是否登陆 + * @param to 开始路由 + * @param form 目的路由 + * @param next 做拦截处理 + * @public + */ +router.beforeEach((to, form, next) => { + let userInfo = local.get("userInfo"); + // 获取当前用户权限 + let userRouter = local.get("role"); + // 判断用户是否登陆 + if (userInfo) { + // 在登陆状态下跳转到登录页面,则自动跳转到当前页 + if (to.path === "/login" || to.path === "/") { + next({ + path: "/welcome", + }); + // 移除所有的标签 + store.dispatch("removeAllTag"); + } else { + // 用户没有页面权限时,直接跳转到欢迎页 + if (!userRouter || userRouter.length === 0) { + next({ + path: "/welcome", + }); + return; + } + // 用户有页面权限,判断路由是否存在,不存在则实时刷新路由 + let hasRoles = + store.state.routerList && store.state.routerList.length > 0; + if (hasRoles) { + next(); + } else { + // 用户刷新后,vuex的数据被清空实时刷新数据,从locastorage中获取数据并刷新。 + store.dispatch("refreshRouter"); + // 重定向到该页面 + next({ + ...to, + replace: true, + }); + } + store.dispatch("setRouterActive", to.path); + } + const n = getQueryString('n'); + const p = getQueryString('p'); + if (n && p) { + const hostname = window.location.origin + window.location.pathname; + window.history.replaceState(null, null, hostname); + } + } else { + if (to.path !== "/login" && to.path !== "/") { + next({ + path: "/login", + query: { + redirect: to.fullPath, + }, + }); + } else { + next(); + } + } +}); diff --git a/src/plugins/LoginPlugin.js b/src/plugins/LoginPlugin.js new file mode 100644 index 0000000..2ea03ec --- /dev/null +++ b/src/plugins/LoginPlugin.js @@ -0,0 +1,145 @@ +import API from "@/api"; + +function getUserInfoRaw() { + return localStorage.getItem("userInfo"); +} + +/** 用 token 识别会话,避免 refresh 改写 userInfo JSON 后误清线路缓存 */ +function getSessionKey(userInfoRaw) { + if (!userInfoRaw) return ""; + try { + const info = JSON.parse(userInfoRaw); + return info && info.token ? String(info.token) : userInfoRaw; + } catch (e) { + return userInfoRaw; + } +} + +export const LoginPlugin = { + install(Vue, { router }) { + console.log("Login plugin:::", Vue.prototype, router); + + // 已请求失败(如 token 失效)后不再重复拉;重新登录后会重置 + let sourceInfoLoadFailed = false; + // 并发去重:同一时刻只允许一次 getSourceList + let sourceInfoPromise = null; + // 递增以作废进行中的请求结果,避免登出后旧请求回写 + let loadSeq = 0; + let lastSessionKey = ""; + + const showError = (error) => { + console.error("update or sync source info error:::", error); + Vue.prototype.$message.error("图片、视频资源将无法展示,推出重新登陆"); + }; + + const resetSourceInfoLoadState = () => { + loadSeq += 1; + sourceInfoLoadFailed = false; + sourceInfoPromise = null; + Vue.prototype.$sourceInfo = null; + }; + + const updateSourceInfo = async () => { + const userInfoRaw = getUserInfoRaw(); + if (!userInfoRaw) { + lastSessionKey = ""; + resetSourceInfoLoadState(); + return; + } + + const sessionKey = getSessionKey(userInfoRaw); + // 会话切换(重新登录 / 换账号)后允许再拉;同会话仅 token 刷新不清理已成功的线路 + if (lastSessionKey && lastSessionKey !== sessionKey) { + resetSourceInfoLoadState(); + } + lastSessionKey = sessionKey; + + if (Vue.prototype.$sourceInfo || sourceInfoLoadFailed) return; + if (sourceInfoPromise) return sourceInfoPromise; + + const seq = ++loadSeq; + sourceInfoPromise = (async () => { + try { + const r = await API.getSourceList(); + // 请求返回时会话已变(登出 / 重登),丢弃结果 + if (seq !== loadSeq || getSessionKey(getUserInfoRaw()) !== sessionKey) { + return; + } + if (r.code !== 200) { + sourceInfoLoadFailed = true; + throw new Error(r.tip || r.msg || "getSourceList failed"); + } + syncSourceInfo(r.data); + } catch (error) { + if (seq !== loadSeq || getSessionKey(getUserInfoRaw()) !== sessionKey) { + return; + } + sourceInfoLoadFailed = true; + showError(error); + } finally { + if (seq === loadSeq) { + sourceInfoPromise = null; + } + } + })(); + + return sourceInfoPromise; + }; + + const syncSourceInfo = (info) => { + info = info || []; + Vue.prototype.$sourceInfo = info; + sourceInfoLoadFailed = false; + try { + let _index = localStorage.getItem("overallSituationLine") || 0; + if (findUrls(info, "AdminImage")) { + Vue.prototype.$imgUrls = [ + ...findUrls(info, "IMAGE"), + ...findUrls(info, "AdminImage"), + ]; + } else { + Vue.prototype.$imgUrls = [...findUrls(info, "IMAGE")]; + } + Vue.prototype.$vidUrls = findUrls(info, "VID"); + Vue.prototype.$audUrls = findUrls(info, "AUDIO"); + Vue.prototype.$imgUrl = + Vue.prototype.$imgUrls[_index].url || Vue.prototype.$imgUrls[0].url; + Vue.prototype.$vidUrl = Vue.prototype.$vidUrls[0].url; + Vue.prototype.$audUrl = Vue.prototype.$audUrls[0].url; + } catch (error) { + sourceInfoLoadFailed = true; + showError(error); + } + }; + + const findUrls = (info, key) => { + return ( + info.find((kv) => kv.type === key) && + info.find((kv) => kv.type === key).domain + ); + }; + + Vue.prototype.$syncSourceInfo = syncSourceInfo; + Vue.prototype.$setOverallSituationLine = (index) => { + localStorage.setItem("overallSituationLine", index); + Vue.prototype.$imgUrl = + Vue.prototype.$imgUrls[index].url || Vue.prototype.$imgUrls[0].url; + Vue.prototype.$vidUrl = Vue.prototype.$vidUrls[0].url; + Vue.prototype.$audUrl = Vue.prototype.$audUrls[0].url; + location.reload(); + }; + + router.beforeEach(async (to, from, next) => { + if (to.path === "/" || to.path === "/login") { + // 回到登录页且本地已无登录态时,清理失败标记,便于重新登录后拉取 + if (!getUserInfoRaw()) { + lastSessionKey = ""; + resetSourceInfoLoadState(); + } + return next(); + } + await updateSourceInfo(); + return next(); + }); + }, +}; diff --git a/src/router/activity.js b/src/router/activity.js new file mode 100755 index 0000000..1a12f61 --- /dev/null +++ b/src/router/activity.js @@ -0,0 +1,184 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-13 17:37:19 + * @LastEditors: 王枫叶x + * @LastEditTime: 2020-10-21 14:27:58 + */ +import WebActivity from "../views/activityManagement/webActivity"; +import RedemptionCode from "../views/activityManagement/redemptionCode"; +import RedemptionLog from "../views/activityManagement/redemptionLog"; +// 活动-奖品列表 +import RedemptionPrize from "../views/activityManagement/redemptionPrize"; +import TenderActivity from "../views/activityManagement/tenderActivity"; +import BuyPage from "../views/activityManagement/buyPage"; +import PrizePoolList from "../views/activityManagement/prizepoolList"; +import ConfigurationList from "../views/activityManagement/configurationList"; +import DailyTaskList from "../views/activityManagement/dailyTaskList"; +import GrowingTaskList from "../views/activityManagement/growingTaskList"; +import OneTaskList from "../views/activityManagement/oneTaskList"; +import NewActivityList from "../views/activityManagement/newActivityList"; +// import ListOfPrizes from "../views/activityManagement/listOfPrizes"; +// import LotteryList from "../views/activityManagement/lotteryList"; +import GoldeneggLog from "../views/activityManagement/goldeneggLog"; +import Main from "../views/main"; + +const ActivityRouter = { + path: "/activity-list", + component: Main, + title: "活动管理", + icon: "el-icon-s-promotion", + meta: { + keepAlive: true, + }, + children: [ + { + path: "/web-activity", + component: WebActivity, + name: "webActivity", + title: "活动列表", + meta: { + title: "活动列表", + keepAlive: true, + }, + }, + { + path: "/newActivityList", + component: NewActivityList, + name: "newActivityList", + title: "新版活动列表", + meta: { + title: "新版活动列表", + keepAlive: true, + }, + }, + { + path: "/redemption-code", + component: RedemptionCode, + name: "redemptionCode", + title: "兑换码列表", + meta: { + title: "兑换码列表", + keepAlive: true, + }, + }, + { + path: "/redemption-log", + component: RedemptionLog, + name: "redemptionLog", + title: "兑换码兑换日志", + meta: { + title: "兑换码兑换日志", + keepAlive: true, + }, + }, + // 活动-奖品列表 + { + path: "/redemption-prize", + component: RedemptionPrize, + name: "redemptionPrize", + title: "奖品列表", + meta: { + title: "奖品列表", + keepAlive: true, + }, + }, + { + path: "/prize-pool-list", + component: PrizePoolList, + name: "prizePoolList", + title: "奖池列表", + meta: { + title: "奖池列表", + keepAlive: true, + }, + }, + // { + // path: '/list-prizes', + // component: ListOfPrizes, + // name: 'listOfPrizes', + // title: '任务福利列表', + // meta: { + // title: '任务福利列表', + // keepAlive: true + // } + // }, + { + path: "/configuration-list", + component: ConfigurationList, + name: "configurationList", + title: "签到任务", + meta: { + title: "签到任务", + keepAlive: true, + }, + }, + { + path: "/one-task-list", + component: OneTaskList, + name: "oneTaskList", + title: "一次性任务列表", + meta: { + title: "一次性任务列表", + keepAlive: true, + }, + }, + { + path: "/daily-task-list", + component: DailyTaskList, + name: "dailyTaskList", + title: "日常任务列表", + meta: { + title: "日常任务列表", + keepAlive: true, + }, + }, + { + path: "/growing-task-list", + component: GrowingTaskList, + name: "growingTaskList", + title: "成长任务列表", + meta: { + title: "成长任务列表", + keepAlive: true, + }, + }, + { + path: "/tender-activity", + component: TenderActivity, + name: "tenderActivity", + title: "嫩模获奖记录", + meta: { + title: "嫩模获奖记录", + keepAlive: true, + }, + }, + { + path: "/buy-page", + component: BuyPage, + name: "buyPage", + title: "嫩模购买列表", + meta: { + title: "嫩模购买列表", + keepAlive: true, + }, + }, + // { + // path: "/lottery-list", + // component: LotteryList, + // name: "lotteryList", + // title: "摇奖号列表", + // meta: { title: "摇奖号列表", keepAlive: true }, + // }, + { + path: "/goldeneggLog", + component: GoldeneggLog, + name: "goldeneggLog", + title: "活动记录", + meta: { + title: "活动记录", + keepAlive: true, + }, + }, + ], +}; +export default ActivityRouter; diff --git a/src/router/actress.js b/src/router/actress.js new file mode 100644 index 0000000..46f3299 --- /dev/null +++ b/src/router/actress.js @@ -0,0 +1,25 @@ +import ActressList from "../views/actressManagement/actressList"; +import Main from "../views/main"; + +const ActressRouter = { + path: "/actress", + component: Main, + title: "女优管理", + icon: "el-icon-s-promotion", + meta: { + keepAlive: true + }, + children: [{ + path: "/actressList", + component: ActressList, + name: "actressList", + title: "女优列表", + meta: { + title: "女优列表", + keepAlive: true + }, + }, + + ], +}; +export default ActressRouter; \ No newline at end of file diff --git a/src/router/administrators.js b/src/router/administrators.js new file mode 100755 index 0000000..b869a78 --- /dev/null +++ b/src/router/administrators.js @@ -0,0 +1,29 @@ +import AdminList from '../views/administrators/adminList'; +import AdminLog from '../views/administrators/adminLog'; + +import Main from '../views/main'; + +const Administrators = { + path: '/admin-list', + component: Main, + title: '系统管理员', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/admin-list', + component: AdminList, + name: 'adminList', + title: '管理员列表', + meta: { title: '管理员列表' ,keepAlive: true } + }, + { + path: '/admin-log', + component: AdminLog, + name: 'adminLog', + title: '管理员操作日志', + meta: { title: '管理员操作日志' ,keepAlive: true } + } + ] +}; +export default Administrators; diff --git a/src/router/advertising.js b/src/router/advertising.js new file mode 100755 index 0000000..a04f8de --- /dev/null +++ b/src/router/advertising.js @@ -0,0 +1,36 @@ +import AdList from '../views/advertisingManagement/adList' +import ClickLog from '../views/advertisingManagement/clickLog' +import AnnouncementManagement from '../views/advertisingManagement/announcementManagement' + +import Main from '../views/main' +const AdvertisingRouter = { + path: '/ad-List', + component: Main, + title: '广告管理', + icon: 'el-icon-s-fold', + meta: { keepAlive: true }, + children: [ + { + path: '/ad-List', + component: AdList, + name: 'adList', + title: '广告列表', + meta: { title: '广告列表' ,keepAlive: true } + }, + { + path: '/click-Log', + component: ClickLog, + name: 'clickLog', + title: '点击日志', + meta: { title: '点击日志' ,keepAlive: true } + }, + { + path: '/announcement-Management', + component: AnnouncementManagement, + name: 'announcementManagement', + title: '公告管理', + meta: { title: '公告管理' ,keepAlive: true } + } + ] +} +export default AdvertisingRouter diff --git a/src/router/agent.js b/src/router/agent.js new file mode 100755 index 0000000..66a5308 --- /dev/null +++ b/src/router/agent.js @@ -0,0 +1,53 @@ +import ProxyList from '../views/agentManagement/proxyList' +import ExtensionLog from '../views/agentManagement/extensionLog' +// import DomainManagement from '../views/agentManagement/domainManagement' +// import DistrictProvider from '../views/agentManagement/districtProvider' +import PromotionHierarchy from '../views/agentManagement/promotionHierarchy' +import Main from '../views/main' + +const VideoRouter = { + path: '/proxy-list', + component: Main, + title: '代理管理', + icon: 'el-icon-s-cooperation', + meta: { keepAlive: true }, + children: [ + { + path: '/proxy-list', + component: ProxyList, + name: 'proxyList', + title: '代理列表', + meta: { title: '代理列表' ,keepAlive:true} + }, + // 暂时和落地页配置重复,待删除 TODO + //{ + // path: '/domain-management', + // component: DomainManagement, + // name: 'domainManagement', + // title: '域名管理', + // meta: { title: '域名管理' ,keepAlive:true} + //}, + { + path: '/extension-log', + component: ExtensionLog, + name: 'extensionLog', + title: '用户推广日志', + meta: { title: '用户推广日志' ,keepAlive:true} + }, + // { + // path: '/district-provider', + // component: DistrictProvider, + // name: 'districtProvider', + // title: '商区代理管理', + // meta: { title: '商区代理管理' ,keepAlive:true} + // }, + { + path: '/promotion-hierarchy', + component: PromotionHierarchy, + name: 'promotionHierarchy', + title: '用户推广查询', + meta: { title: '用户推广查询' ,keepAlive:true} + } + ] +} +export default VideoRouter diff --git a/src/router/agentDistrictProvider.js b/src/router/agentDistrictProvider.js new file mode 100644 index 0000000..37e4207 --- /dev/null +++ b/src/router/agentDistrictProvider.js @@ -0,0 +1,59 @@ +import DistrictProvider from "../views/agentDistrictProvider/districtProvider"; +import DayTable from "../views/agentDistrictProvider/dayTable"; +import MonthTable from "../views/agentDistrictProvider/monthTable"; +import DomainList from "../views/agentDistrictProvider/domainList"; +import AdReview from "../views/agentDistrictProvider/adReview"; +import ManageAuthrity from "../views/agentDistrictProvider/manageAuthrity"; +import Main from "../views/main"; + +const AgentDistrictRouter = { + path: "/district-provider", + component: Main, + title: "商区管理", + icon: "el-icon-s-cooperation", + meta: { keepAlive: true }, + children: [ + { + path: "/month-table", + component: MonthTable, + name: "monthTable", + title: "每月报表", + meta: { title: "每月报表", keepAlive: true }, + }, + { + path: "/day-table", + component: DayTable, + name: "dayTable", + title: "每日报表", + meta: { title: "每日报表", keepAlive: true }, + }, + { + path: "/district-provider", + component: DistrictProvider, + name: "districtProvider", + title: "代理列表", + }, + { + path: "/domain-list", + component: DomainList, + name: "domainList", + title: " 域名绑定", + meta: { title: "域名绑定", keepAlive: true }, + }, + { + path: "/ad-review", + component: AdReview, + name: "adReview", + title: "广告审核", + meta: { title: "广告审核", keepAlive: true }, + }, + { + path: "/mg-review", + component: ManageAuthrity, + name: "manageAuthrity", + title: "代理权限", + meta: { title: "代理权限", keepAlive: true }, + }, + ], +}; +export default AgentDistrictRouter; diff --git a/src/router/ai.js b/src/router/ai.js new file mode 100644 index 0000000..569b3ae --- /dev/null +++ b/src/router/ai.js @@ -0,0 +1,91 @@ +import AiTradeList from "../views/aiManagement/aiTradeList"; +import AiChangeFaceStencil from "../views/aiManagement/aiChangeFaceStencil"; +import AiChangeFaceList from "../views/aiManagement/aiChangeFaceList"; +import AiChangeFaceImgList from "../views/aiManagement/aiChangeFaceImgList"; +import AiImageToVideoList from "../views/aiManagement/aiImageToVideoList"; +// import AiTemplate from "../views/aiManagement/AiTemplate"; +import AIDrawList from "../views/aiManagement/AIDrawList"; +import AiNovelList from "../views/aiManagement/aiNovelList"; +import AIPlazaList from "../views/aiManagement/aiPlazaList"; +import Aimatev2OrderLogs from "../views/aiManagement/aimatev2OrderLogs"; +import Main from "../views/main"; +const AiRouter = { + path: "/aiModule", + component: Main, + title: "AI管理", + icon: "el-icon-sort", + meta: { keepAlive: true }, + children: [ + // { + // path: "/ai-template", + // component: AiTemplate, + // name: "AiTemplate", + // title: "AI模版模块列表", + // meta: { title: "AI模版模块列表", keepAlive: true }, + // }, + { + path: "/ai-change-face-stencil", + component: AiChangeFaceStencil, + name: "aiChangeFaceStencil", + title: "AI模版列表", + meta: { title: "AI模版列表", keepAlive: true }, + }, + { + path: "/ai-trade-list", + component: AiTradeList, + name: "aiTradeList", + title: "AI脱衣交易列表", + meta: { title: "AI脱衣交易列表", keepAlive: true }, + }, + { + path: "/ai-change-face-list", + component: AiChangeFaceList, + name: "aiChangeFaceList", + title: "AI换脸交易列表", + meta: { title: "AI换脸交易列表", keepAlive: true }, + }, + { + path: "/ai-change-face-img-list", + component: AiChangeFaceImgList, + name: "aiChangeFaceImgList", + title: "AI图片换脸交易列表", + meta: { title: "AI图片换脸交易列表", keepAlive: true }, + }, + { + path: "/ai-image-to-video-list", + component: AiImageToVideoList, + name: "AiImageToVideoList", + title: "AI图生视频列表", + meta: { title: "AI图生视频列表", keepAlive: true }, + }, + { + path: "/ai-draw-list", + component: AIDrawList, + name: "AiDrawList", + title: "AI绘图列表", + meta: { title: "AI绘图列表", keepAlive: true }, + }, + { + path: "/ai-novel-list", + component: AiNovelList, + name: "AiNovelList", + title: "AI小说列表", + meta: { title: "AI小说列表", keepAlive: true }, + }, + { + path: "/ai-plaza-list", + component: AIPlazaList, + name: "AiPlazaList", + title: "AI广场列表", + meta: { title: "AI广场列表", keepAlive: true }, + }, + { + path: "/aimatev2-order-logs", + component: Aimatev2OrderLogs, + name: "Aimatev2OrderLogs", + title: "AI女友消费流水", + meta: { title: "AI女友消费流水", keepAlive: true }, + }, + ], +}; +export default AiRouter; diff --git a/src/router/animation.js b/src/router/animation.js new file mode 100644 index 0000000..ce98842 --- /dev/null +++ b/src/router/animation.js @@ -0,0 +1,106 @@ +import AnimeList from "../views/animationManage/animeList"; +import LatitudeList from "../views/animationManage/latitudeList"; +import AnimeTagsList from "../views/animationManage/animeTagsList"; +// import AnimeContentList from "../views/animationManage/animeContentList"; +import CartoonBatchUpdList from "../views/animationManage/bulkUpload"; +import SubsetBatchUpdList from "../views/animationManage/subsetBatchUpdList"; +import AcgVidResCfg from "../views/animationManage/acgVidResCfg"; +// import RecommendList from "../views/animationManage/recommendList"; +// import RecommendSignature from "../views/animationManage/recommendSignature"; +// import TaskList from "../views/animationManage/taskList"; +import Main from "../views/main"; + +const animeRouter = { + path: "/animeList", + component: Main, + title: "媒体管理", + icon: "el-icon-video-camera-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/animeList", + component: AnimeList, + name: "animeList", + title: "媒体列表", + meta: { title: "媒体列表", keepAlive: true }, + }, + { + path: "/dramaList", + component: AnimeList, + name: "dramaList", + title: "短剧列表", + meta: { title: "短剧列表", keepAlive: false }, + }, + // { + // path: "/recommendList", + // component: RecommendList, + // name: "recommendList", + // title: "推荐列表", + // meta: { title: "推荐列表", keepAlive: true }, + // }, + // { + // path: "/taskList", + // component: TaskList, + // name: "taskList", + // title: "任务列表", + // meta: { title: "任务列表", keepAlive: true }, + // }, + { + path: "/cartoon-batchUpd-list", + component: CartoonBatchUpdList, + name: "cartoonBatchUpdList", + title: "批量上传", + meta: { + title: "批量上传", + keepAlive: true, + }, + }, + { + path: "/subset-batchUpd-list", + component: SubsetBatchUpdList, + name: "subsetBatchUpdList", + title: "子媒体批量上传", + meta: { + title: "子媒体批量上传", + keepAlive: true, + }, + }, + // { + // path: "/animeContentList", + // component: AnimeContentList, + // name: "animeContentList", + // title: "动漫内容列表", + // meta: { title: "动漫内容列表", keepAlive: true }, + // }, + { + path: "/animeTagsList", + component: AnimeTagsList, + name: "animeTagsList", + title: "标签列表", + meta: { title: "标签列表", keepAlive: true }, + }, + // { + // path: "/recommend-signature", + // component: RecommendSignature, + // name: "recommendSignature", + // title: "推荐标签", + // meta: { title: "推荐标签", keepAlive: true }, + // }, + { + path: "/latitudeList", + component: LatitudeList, + name: "latitudeList", + title: "纬度列表", + meta: { title: "纬度列表", keepAlive: true }, + }, + { + path: "/acg-vid-res-cfg", + component: AcgVidResCfg, + name: "acgVidResCfg", + title: "Acg媒体资源库", + meta: { title: "Acg媒体资源库", keepAlive: true }, + }, + ], +}; + +export default animeRouter; diff --git a/src/router/avcomment.js b/src/router/avcomment.js new file mode 100755 index 0000000..ccf8579 --- /dev/null +++ b/src/router/avcomment.js @@ -0,0 +1,33 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-09-28 16:52:13 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-09-30 18:00:06 + */ +import AvCommentConfig from "../views/avcomment/avCommentConfig"; +import AvCommentList from "../views/avcomment/list"; +import Main from "../views/main"; +const ShuiguoRouter = { + path: "/avcomment-list", + component: Main, + title: "AV图文管理", + icon: "el-icon-user-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/avcomment-list", + component: AvCommentList, + name: "avCommentList", + title: "AV图文列表", + meta: { title: "AV图文列表", keepAlive: false }, + }, + { + path: "/avcomment-config", + component: AvCommentConfig, + name: "avCommentConfig", + title: "AV图文配置", + meta: { title: "AV图文配置", keepAlive: false }, + }, + ], +}; +export default ShuiguoRouter; diff --git a/src/router/baseRouter.js b/src/router/baseRouter.js new file mode 100755 index 0000000..bbfa290 --- /dev/null +++ b/src/router/baseRouter.js @@ -0,0 +1,40 @@ +import Login from '../views/login' +import Main from '../views/main' + +// 不需要权限控制的路由 +const baseRouter = [ + { + path: '/', + // name: 'login', + component: Login + }, + { + path: '/login', + name: 'login', + component: Login + }, + { + path: '/main', + component: Main, + redirect: '', + title: '', + icon: '', + children: [ + { + path: '/welcome', + component: () => import('@/views/welcome/index'), + name: 'welcome', + title: '欢迎页', + icon: '' + }, + { + path: '/role', + component: () => import('../views/role/index'), + name: 'role', + title: '权限', + icon: '' + } + ] + } +] +export default baseRouter diff --git a/src/router/business.js b/src/router/business.js new file mode 100644 index 0000000..bce2bcc --- /dev/null +++ b/src/router/business.js @@ -0,0 +1,38 @@ + +import Main from '../views/main'; +import BusinessmanList from '../views/businessmanManagement/businessmanList' +import BalanceList from '../views/businessmanManagement/balanceList' +import RechargeList from '../views/businessmanManagement/rechargeList' +const BusinessRouter = { + + path: '/Business', + component: Main, + title: '商人管理', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/businessmanList', + component:BusinessmanList, + name: 'BusinessmanList', + title: '商人列表', + meta: { title: '商人列表' ,keepAlive:true} + }, + { + path: '/balanceList', + component:BalanceList, + name: 'BalanceList', + title: '商人上分列表', + meta: { title: '商人上分列表' ,keepAlive:true} + }, + { + path: '/rechargeList', + component:RechargeList, + name: 'RechargeList', + title: '商人代充订单', + meta: { title: '商人代充订单' ,keepAlive:true} + } + ] + +} +export default BusinessRouter \ No newline at end of file diff --git a/src/router/channel.js b/src/router/channel.js new file mode 100755 index 0000000..2b75fad --- /dev/null +++ b/src/router/channel.js @@ -0,0 +1,68 @@ +import ChannelConfiguration from '../views/channelManagement/channelconfiguration' +import ChannelNumber from '../views/channelManagement/channelNumber' +import ChannelProvider from '../views/channelManagement/channelProvider' +import ChannelLog from '../views/channelManagement/channelLog' +import ChannelManagement from '../views/channelManagement/channelManagement' +import ChannelCost from '../views/channelManagement/channelCost' +import ChannelQuery from '../views/channelManagement/channelQuery' +import Main from '../views/main' + +const ChannelRouter = { + path: '/channel-query', + component: Main, + title: '渠道管理', + icon: 'el-icon-s-marketing', + meta: { keepAlive: true }, + children: [ + { + path: '/channel-query', + component: ChannelQuery, + name: 'channelQuery', + title: '渠道查询', + meta: { title: '渠道查询' ,keepAlive:true} + }, + { + path: '/channel-log', + component: ChannelLog, + name: 'channelLog', + title: '渠道日志', + meta: { title: '渠道日志' ,keepAlive:true} + }, + { + path: '/channel-number', + component: ChannelNumber, + name: 'channelNumber', + title: '渠道号管理', + meta: { title: '渠道号管理' ,keepAlive:true} + }, + { + path: '/channel-provider', + component: ChannelProvider, + name: 'channelProvider', + title: '渠道商管理', + meta: { title: '渠道商管理' ,keepAlive:true} + }, + { + path: '/channel-management', + component: ChannelManagement, + name: 'channelManagement', + title: '渠道成本管理', + meta: { title: '渠道成本管理' ,keepAlive:true} + }, + { + path: '/channel-configuration', + component: ChannelConfiguration, + name: 'channelconfiguration', + title: '渠道页面配置', + meta: { title: '渠道页面配置' ,keepAlive:true} + }, + { + path: '/channel-cost', + component: ChannelCost, + name: 'channelCost', + title: '渠道成本修改记录', + meta: { title: '渠道成本修改记录' ,keepAlive:true} + } + ] +} +export default ChannelRouter diff --git a/src/router/channelBack.js b/src/router/channelBack.js new file mode 100755 index 0000000..f2161c6 --- /dev/null +++ b/src/router/channelBack.js @@ -0,0 +1,45 @@ +import ChannelDetails from '../views/channelBackground/channelDetails' +import ChannelBook from '../views/channelBackground/channelBook' +import AutomaticBilling from '../views/channelBackground/automaticBilling' +import BankConfiguration from '../views/channelBackground/bankConfiguration' + +import Main from '../views/main' + +const ChannelBRouter = { + path: '/channel-details', + component: Main, + title: '渠道后台', + icon: 'el-icon-set-up', + meta: { keepAlive: true }, + children: [ + { + path: '/channel-details', + component: ChannelDetails, + name: 'channelDetails', + title: '渠道明细', + meta: { title: '渠道明细' ,keepAlive:true} + }, + { + path: '/channel-book', + component: ChannelBook, + name: 'channelBook', + title: '渠道账簿', + meta: { title: '渠道账簿' ,keepAlive:true} + }, + { + path: '/automatic-billing', + component: AutomaticBilling, + name: 'automaticBilling', + title: '自助结算审核', + meta: { title: '自助结算审核' ,keepAlive:true} + }, + { + path: '/bank-configuration', + component: BankConfiguration, + name: 'BankConfiguration', + title: '银行卡信息', + meta: { title: '银行卡信息' ,keepAlive:true} + } + ] +} +export default ChannelBRouter diff --git a/src/router/cinema.js b/src/router/cinema.js new file mode 100644 index 0000000..8502088 --- /dev/null +++ b/src/router/cinema.js @@ -0,0 +1,85 @@ +import TodayRecommend from '../views/cinemaManagement/todayRecommend' +import MoveList from '../views/cinemaManagement/movieList' +import ActressList from '../views/cinemaManagement/actressList' +import ChannelsManagement from '../views/cinemaManagement/channelsManagement' +import WatchHistory from '../views/cinemaManagement/watchHistory' +import FavoriteHistory from '../views/cinemaManagement/favoriteHistory' +import RecommendedList from '../views/cinemaManagement/recommendedList' +import ActressCollection from '../views/cinemaManagement/actressCollection' +import ActressRating from '../views/cinemaManagement/actressRating' + +import Main from '../views/main' + +const CinemaRouter = { + path: '/today-recommend', + component: Main, + title: '影院管理', + icon: 'el-icon-video-camera', + meta: { keepAlive: true }, + children: [ + { + path: '/today-recommend', + component: TodayRecommend, + name: 'todayRecommend', + title: '今日推荐', + meta: { title: '今日推荐' ,keepAlive:true} + }, + { + path: '/move-list', + component: MoveList, + name: 'moveList', + title: '影片列表', + meta: { title: '影片列表' ,keepAlive:true} + }, + { + path: '/actress-list', + component: ActressList, + name: 'cinemaActressList', + title: '女优列表', + meta: { title: '女优列表' ,keepAlive:true} + }, + { + path: '/channels-management', + component: ChannelsManagement, + name: 'channelsmanagement', + title: '频道管理', + meta: { title: '频道管理' ,keepAlive:true} + }, + { + path: '/watch-history', + component: WatchHistory, + name: 'watchHistory', + title: '影片观看记录', + meta: { title: '影片观看记录' ,keepAlive:true} + }, + { + path: '/favorite-history', + component: FavoriteHistory, + name: 'favoriteHistory', + title: '影片收藏记录', + meta: { title: '影片收藏记录' ,keepAlive:true} + }, + { + path: '/recommended-list', + component: RecommendedList, + name: 'recommendedList', + title: '影片推荐列表', + meta: { title: '影片推荐列表' ,keepAlive:true} + }, + { + path: '/actress-collection', + component: ActressCollection, + name: 'actressCollection', + title: '女优收藏记录', + meta: { title: '女优收藏记录' ,keepAlive:true} + }, + { + path: '/actress-rating', + component: ActressRating, + name: 'actressRating', + title: '女优评分记录', + meta: { title: '女优评分记录' ,keepAlive:true} + }, + ] +} +export default CinemaRouter \ No newline at end of file diff --git a/src/router/contentReview.js b/src/router/contentReview.js new file mode 100644 index 0000000..a151ac2 --- /dev/null +++ b/src/router/contentReview.js @@ -0,0 +1,44 @@ +import Main from "../views/main"; + +const ContentReviewRouter = { + path: "/content-review", + component: Main, + title: "内容审查", + icon: "el-icon-view", + meta: { keepAlive: true }, + children: [ + { + path: "/content-review/sensitive-word", + component: () => import("@/views/contentReview/sensitiveWord/index.vue"), + name: "contentReviewSensitiveWord", + title: "敏感词管理", + meta: { + title: "敏感词管理", + keepAlive: true, + }, + }, + { + path: "/content-review/review-task", + component: () => import("@/views/contentReview/reviewTask/index.vue"), + name: "contentReviewReviewTask", + title: "检测任务", + meta: { + title: "检测任务", + keepAlive: true, + }, + }, + { + path: "/content-review/review-task/detail/:taskId", + component: () => import("@/views/contentReview/reviewTask/detail.vue"), + name: "contentReviewTaskDetail", + title: "任务详情", + meta: { + title: "任务详情", + keepAlive: false, + hideInMenu: true, + }, + }, + ], +}; + +export default ContentReviewRouter; diff --git a/src/router/discountAreaManagement.js b/src/router/discountAreaManagement.js new file mode 100644 index 0000000..3b49352 --- /dev/null +++ b/src/router/discountAreaManagement.js @@ -0,0 +1,27 @@ +import DiscountAreaList from "../views/discountAreaManagement/discountAreaList"; +import DiscountAreaVideoList from "../views/discountAreaManagement/discountAreaVideoList"; +import Main from "../views/main"; +const discountAreaManagementRouter = { + path: "/discount-area-list", + component: Main, + title: "折扣专区管理", + icon: "el-icon-user-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/discount-area-list", + component: DiscountAreaList, + name: "discountAreaList", + title: "折扣专区列表", + meta: { title: "折扣专区列表", keepAlive: true }, + }, + { + path: "/discount-area-video-list", + component: DiscountAreaVideoList, + name: "discountAreaVideoList", + title: "折扣专区视频列表", + meta: { title: "折扣专区视频列表", keepAlive: true }, + }, + ], +}; +export default discountAreaManagementRouter; diff --git a/src/router/fiction.js b/src/router/fiction.js new file mode 100644 index 0000000..bfc15a1 --- /dev/null +++ b/src/router/fiction.js @@ -0,0 +1,52 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-12-17 20:50:49 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-26 14:41:16 + */ + +import Main from '../views/main'; +import audiobook from '../views/fiction/audiobook' +import novel from '../views/fiction/novel' +import report from '../views/fiction/report' +import audiobookCfg from '../views/fiction/audiobookCfg' +const fictionRouter = { + + path: '/fiction', + component: Main, + title: '小说管理', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/novel', + component:novel, + name: 'novel', + title: '小说列表', + meta: { title: '小说列表' ,keepAlive:true} + }, + { + path: '/audiobook', + component:audiobook, + name: 'audiobook', + title: '有声小说', + meta: { title: '有声小说' ,keepAlive:true} + }, + { + path: '/report', + component:report, + name: 'report', + title: '举报列表', + meta: { title: '举报列表' ,keepAlive:true} + }, + { + path: '/audiobookCfg', + component:audiobookCfg, + name: 'audiobookCfg', + title: '折扣率配置', + meta: { title: '折扣率配置' ,keepAlive:true} + } + ] + +} +export default fictionRouter diff --git a/src/router/gathering.js b/src/router/gathering.js new file mode 100644 index 0000000..9bcd12f --- /dev/null +++ b/src/router/gathering.js @@ -0,0 +1,30 @@ + +import Main from '../views/main'; +import GatheringBalanceList from '../views/gatheringManagement/gatheringBalanceList' +import GatheringBusinessmen from '../views/gatheringManagement/gatheringBusinessmen' +const GatheringRouter = { + + path: '/Gathering', + component: Main, + title: '聚商管理', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/gatheringBusinessmen', + component:GatheringBusinessmen, + name: 'gatheringBusinessmen', + title: '聚商列表', + meta: { title: '聚商列表' ,keepAlive:true} + }, + { + path: '/gatheringBalanceList', + component:GatheringBalanceList, + name: 'gatheringBalanceList', + title: '聚商上分列表', + meta: { title: '聚商上分列表' ,keepAlive:true} + } + ] + +} +export default GatheringRouter diff --git a/src/router/groupChatManagement.js b/src/router/groupChatManagement.js new file mode 100644 index 0000000..6c0ebc9 --- /dev/null +++ b/src/router/groupChatManagement.js @@ -0,0 +1,36 @@ +import GroupList from "../views/groupChatManagement/groupList"; +import ImgroupmemberList from "../views/groupChatManagement/imgroupmemberList"; +import ImmessageList from "../views/groupChatManagement/immessageList"; +import Main from "../views/main"; + +const GroupChatManagementRouter = { + path: "/groupChatManagement", + component: Main, + title: "群聊管理", + icon: "el-icon-s-cooperation", + meta: { keepAlive: true }, + children: [ + { + path: "/groupList", + component: GroupList, + name: "groupList", + title: "群组列表", + meta: { title: "群组列表", keepAlive: true }, + }, + { + path: "/imgroupmemberList", + component: ImgroupmemberList, + name: "imgroupmemberList", + title: "群成员列表", + meta: { title: "群成员列表", keepAlive: true }, + }, + { + path: "/immessageList", + component: ImmessageList, + name: "immessageList", + title: "群消息列表", + meta: { title: "群消息列表", keepAlive: true }, + }, + ], +}; +export default GroupChatManagementRouter; diff --git a/src/router/hotSpot.js b/src/router/hotSpot.js new file mode 100644 index 0000000..9dc0bd5 --- /dev/null +++ b/src/router/hotSpot.js @@ -0,0 +1,30 @@ +import FindWonderful from '../views/hotManagement/findWonderful' +import RankPage from '../views/hotManagement/rankPage' + +import Main from '../views/main' + +const hotRouter = { + path: '/find-wonderful', + component: Main, + title: '热点管理', + icon: 'el-icon-s-flag', + meta: { keepAlive: true }, + children: [ + { + path: '/rank-page', + component: RankPage, + name: 'rankPage', + title: '排行页面', + meta: { title: '排行页面' ,keepAlive:true} + }, + { + path: '/find-wonderful', + component: FindWonderful, + name: 'findWonderful', + title: '发现精彩', + meta: { title: '发现精彩' ,keepAlive:true} + } + ] +} + + export default hotRouter \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js new file mode 100755 index 0000000..0e6d17b --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,15 @@ +import Vue from "vue"; +import Router from "vue-router"; + +// 引入公共路由 +import baseRouter from "./baseRouter"; + +Vue.use(Router); + +// 实例化vue-router +const router = new Router({ + mode: "hash", + base: process.env.BASE_URL, + routes: baseRouter, +}); +export default router; diff --git a/src/router/land.js b/src/router/land.js new file mode 100644 index 0000000..9968f5e --- /dev/null +++ b/src/router/land.js @@ -0,0 +1,29 @@ +import landCfg from "../views/landManagement/landCfg"; +import landPage from "../views/landManagement/landPage"; + +import Main from "../views/main"; + +const LandRouter = { + path: "/land-button", + component: Main, + title: "落地页管理", + icon: "el-icon-platform-eleme", + meta: { keepAlive: true }, + children: [ + { + path: "/land-page", + component: landPage, + name: "landPage", + title: "域名配置", + meta: { title: "域名配置", keepAlive: true }, + }, + { + path: "/land-cfg", + component: landCfg, + name: "landCfg", + title: "落地页配置", + meta: { title: "落地页配置", keepAlive: true }, + }, + ], +}; +export default LandRouter; diff --git a/src/router/loufeng.js b/src/router/loufeng.js new file mode 100644 index 0000000..0a0ab14 --- /dev/null +++ b/src/router/loufeng.js @@ -0,0 +1,50 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-21 14:16:37 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-10-29 20:58:33 + */ +import LouFengList from "../views/loufengManagement/louFengList"; +import LoufCfg from "../views/loufengManagement/loufCfg"; +import Feedback from "../views/loufengManagement/feedback"; +import loufadCfg from "../views/loufengManagement/loufadCfg"; +import Main from "../views/main"; + +const loufRouter={ + path: "/loufeng-list", + component: Main, + title: "楼凤管理", + icon: "el-icon-s-promotion", + meta: { keepAlive: true }, + children: [ + { + path: "/loufeng-list", + component: LouFengList, + name: "LouFengList", + title: "楼凤列表", + meta: { title: "楼凤列表", keepAlive: true }, + }, + { + path: "/louf-cfg", + component: LoufCfg, + name: "LoufCfg", + title: "城市和折扣配置", + meta: { title: "城市和折扣配置", keepAlive: true }, + } , + { + path: "/loufad-cfg", + component: loufadCfg, + name: "loufadCfg", + title: "广告配置", + meta: { title: "广告配置", keepAlive: true }, + } , + { + path: "/feedback", + component: Feedback, + name: "feedback", + title: "举报信息列表", + meta: { title: "举报信息列表", keepAlive: true }, + } + ] +} +export default loufRouter; \ No newline at end of file diff --git a/src/router/lsjMediaLibRouter.js b/src/router/lsjMediaLibRouter.js new file mode 100644 index 0000000..506771a --- /dev/null +++ b/src/router/lsjMediaLibRouter.js @@ -0,0 +1,48 @@ + +import VideoList from "../views/lsjMediaLibrary/videoList"; +import ComicsList from "../views/lsjMediaLibrary/comicsList"; +import PostList from "../views/lsjMediaLibrary/postList"; +import NovelList from "../views/lsjMediaLibrary/novelList"; +import Main from "../views/main"; + +const lsjMediaLibRouter = { + path: '/lsjMediaLibrary', + component: Main, + redirect: '/lsjMediaLibraryVideoList', + name: 'LsjMediaLibrary', + title: '老司机媒资库管理', + icon: 'el-icon-film', + children: [ + { + path: '/lsjMediaLibraryVideoList', + name: 'LsjMediaLibraryVideoList', + title: '影片列表', + component: VideoList, + meta: { title: "老司机影片列表", keepAlive: true }, + }, + { + path: '/lsjMediaLibraryPostList', + name: 'LsjMediaLibraryPostList', + title: '帖子列表', + component: PostList, + meta: { title: "老司机帖子列表", keepAlive: true }, + + }, + { + path: '/lsjMediaLibraryComicsList', + name: 'LsjMediaLibraryComicsList', + title: '漫画列表', + component: ComicsList, + meta: { title: "老司机漫画列表", keepAlive: true }, + + }, + { + path: '/lsjMediaLibraryNovelList', + name: 'LsjMediaLibraryNovelList', + title: '小说列表', + component: NovelList, + meta: { title: "老司机小说列表", keepAlive: true }, + } + ] +} +export default lsjMediaLibRouter; \ No newline at end of file diff --git a/src/router/mainChild.js b/src/router/mainChild.js new file mode 100755 index 0000000..4e2d2da --- /dev/null +++ b/src/router/mainChild.js @@ -0,0 +1,76 @@ +// // 首页 +// import Home from '../views/mainChild/home' +// // 系统管理员 +// import Administrators from '../views/mainChild/administrators' +// // 用户路由 +// import UserRouter from './user' +// // 视频路由 +// import VideoRouter from './video' +// // 统计路由 +// import StatisticsRouter from './statistics' +// // 渠道管理 +// // import SystemRouter from './system' +// // 系统管理 +// import productRouter from './product' +// // 活动管理 +// import ActivityRouter from './activity' +// // 代理管理 +// import AgentRouter from './agent' +// // 广告管理 +// import AdvertisingRouter from './advertising' +// // 交易管理 +// import TransactionRouter from './transaction' +// // 渠道代理后台 +// // import AgentBRouter from './channelBack' +// // 渠道管理 +// import ChannelMRouter from './channel' +// // 落地页管理 +// import LandRouter from './land' +// // 热点管理 +// import hotRouter from './hotSpot' +// // 影院管理 +// import CinemaRouter from './cinema' +// import Welcome from '../views/welcome' + +// let MainChildrenRouter = [ +// { +// path: '/home', +// name: 'home', +// component: Home, +// meta: { +// title: '首页' +// } +// }, +// { +// path: '/administrators', +// name: 'administrators', +// component: Administrators, +// meta: { +// title: '系统管理员' +// } +// }, +// { +// path: '/welcome', +// name: 'welcome', +// component: Welcome +// } +// ] +// MainChildrenRouter = MainChildrenRouter.concat( +// UserRouter, +// VideoRouter, +// StatisticsRouter, +// // SystemRouter, +// ActivityRouter, +// AgentRouter, +// TransactionRouter, +// AgentRouter, +// // AgentBRouter, +// AdvertisingRouter, +// productRouter, +// ChannelMRouter, +// LandRouter, +// hotRouter, +// CinemaRouter +// ) + +// export default MainChildrenRouter diff --git a/src/router/mediaLibRouter.js b/src/router/mediaLibRouter.js new file mode 100644 index 0000000..dcebe6f --- /dev/null +++ b/src/router/mediaLibRouter.js @@ -0,0 +1,22 @@ + +import VideoList from "../views/mediaLibrary/videoList"; +import Main from "../views/main"; + +const mediaLibRouter = { + path: '/mediaLibrary', + component: Main, + redirect: '/mediaLibraryVideoList', + name: 'MediaLibrary', + title: '二部媒资库管理', + icon: 'el-icon-film', + children: [ + { + path: '/mediaLibraryVideoList', + name: 'MediaLibraryVideoList', + title: '影片列表', + component: VideoList, + meta: { title: "二部媒资库管理", keepAlive: true }, + }, + ] +} +export default mediaLibRouter; \ No newline at end of file diff --git a/src/router/moduleConfig.js b/src/router/moduleConfig.js new file mode 100644 index 0000000..e32d020 --- /dev/null +++ b/src/router/moduleConfig.js @@ -0,0 +1,52 @@ +import moduleList from '../views/moduleConfManagement/moduleList' +import sectionList from '../views/moduleConfManagement/sectionList' +import moduleVideoList from '../views/moduleConfManagement/videoList' +import HappinessPlazaTopList from '../views/moduleConfManagement/happinessPlazaTopList' +import kingKongDistrict from '../views/moduleConfManagement/kingKongDistrict' +import Main from "../views/main"; + +const moduleConfRouter={ + path: "/module-conf-management", + component: Main, + title: "模块配置管理", + icon: "el-icon-s-promotion", + meta: { keepAlive: true }, + children: [ + { + path: "/module-list", + component: moduleList, + name: "moduleList", + title: "模块列表", + meta: { title: "模块列表", keepAlive: true }, + }, + { + path: "/section-list", + component: sectionList, + name: "sectionList", + title: "专题列表", + meta: { title: "专题列表", keepAlive: true }, + }, + { + path: "/module-video-list", + component: moduleVideoList, + name: "moduleVideoList", + title: "视频列表", + meta: { title: "视频列表", keepAlive: true }, + }, + { + path: '/happinessPlaza', + component: HappinessPlazaTopList, + name: 'happinessPlazaTopList', + title: '幸福广场置顶列表', + meta: { title: '幸福广场置顶列表' ,keepAlive:true} + }, + { + path: '/kingKongDistrict', + component: kingKongDistrict, + name: 'kingKongDistrict', + title: '金刚区', + meta: { title: '金刚区列表' ,keepAlive:true} + }, + ] +} +export default moduleConfRouter; \ No newline at end of file diff --git a/src/router/nakedChat.js b/src/router/nakedChat.js new file mode 100644 index 0000000..5177334 --- /dev/null +++ b/src/router/nakedChat.js @@ -0,0 +1,36 @@ +import nakedChatList from "../views/nakedChatManage/nakedChatList"; +import nakedChatBuyList from "../views/nakedChatManage/nakedChatBuyList"; +import NakedChatFeedback from "../views/nakedChatManage/nakedChatFeedback"; +import Main from "../views/main"; + +const nakedChatRouter={ + path: "/nakedChat-list", + component: Main, + title: "裸聊专区管理", + icon: "el-icon-s-promotion", + meta: { keepAlive: true }, + children: [ + { + path: "/nakedChat-list", + component: nakedChatList, + name: "nakedChatList", + title: "裸聊专区列表", + meta: { title: "裸聊专区列表", keepAlive: true }, + }, + { + path: "/nakedChatBuy-list", + component: nakedChatBuyList, + name: "nakedChatBuyList", + title: "裸聊购买记录", + meta: { title: "裸聊购买记录", keepAlive: true }, + }, + { + path: "/nakedChat-feedback", + component: NakedChatFeedback, + name: "nakedChatFeedback", + title: "举报信息列表", + meta: { title: "举报信息列表", keepAlive: true }, + } + ] +} +export default nakedChatRouter; \ No newline at end of file diff --git a/src/router/officialWebsite.js b/src/router/officialWebsite.js new file mode 100644 index 0000000..508826b --- /dev/null +++ b/src/router/officialWebsite.js @@ -0,0 +1,101 @@ +import Main from '../views/main'; +import OfficialWebsiteBasic from '../views/officialWebsite/basicData'; +import OfficialWebsiteHero from '../views/officialWebsite/heroList'; +import OfficialWebsiteAlbum from '../views/officialWebsite/albumList'; +import OfficialWebsiteVideo from '../views/officialWebsite/videoList'; +import OfficialWebsitePhotograph from '../views/officialWebsite/photographList'; +import OfficialWebsiteTag from '../views/officialWebsite/tagList'; +import OfficialWebsitePartner from '../views/officialWebsite/partnerList'; +import OfficialWebsiteRecruitForm from '../views/officialWebsite/recruitFormList'; +import OfficialWebsiteJob from '../views/officialWebsite/jobList'; +import OfficialWebsiteNews from '../views/officialWebsite/newsList'; +import OfficialWebsiteBusiness from '../views/officialWebsite/businessList'; + +const OfficialWebsiteRouter = { + path: '/official-website-basic', + component: Main, + title: '品牌站', + icon: 'el-icon-s-flag', + meta: { keepAlive: true }, + children: [ + { + path: '/official-website-basic', + component: OfficialWebsiteBasic, + name: 'officialWebsiteBasic', + title: '基础数据', + meta: { title: '基础数据', keepAlive: true }, + }, + { + path: '/official-website-hero', + component: OfficialWebsiteHero, + name: 'officialWebsiteHero', + title: '创作者管理', + meta: { title: '创作者管理', keepAlive: true }, + }, + { + path: '/official-website-album', + component: OfficialWebsiteAlbum, + name: 'officialWebsiteAlbum', + title: '专辑管理', + meta: { title: '专辑管理', keepAlive: true }, + }, + { + path: '/official-website-video', + component: OfficialWebsiteVideo, + name: 'officialWebsiteVideo', + title: '视频管理', + meta: { title: '视频管理', keepAlive: true }, + }, + { + path: '/official-website-photograph', + component: OfficialWebsitePhotograph, + name: 'officialWebsitePhotograph', + title: '写真管理', + meta: { title: '写真管理', keepAlive: true }, + }, + { + path: '/official-website-tag', + component: OfficialWebsiteTag, + name: 'officialWebsiteTag', + title: '标签管理', + meta: { title: '标签管理', keepAlive: true }, + }, + { + path: '/official-website-partner', + component: OfficialWebsitePartner, + name: 'officialWebsitePartner', + title: '合作伙伴', + meta: { title: '合作伙伴', keepAlive: true }, + }, + { + path: '/official-website-recruit-form', + component: OfficialWebsiteRecruitForm, + name: 'officialWebsiteRecruitForm', + title: '招聘表单', + meta: { title: '招聘表单', keepAlive: true }, + }, + { + path: '/official-website-job', + component: OfficialWebsiteJob, + name: 'officialWebsiteJob', + title: '职位管理', + meta: { title: '职位管理', keepAlive: true }, + }, + { + path: '/official-website-news', + component: OfficialWebsiteNews, + name: 'officialWebsiteNews', + title: '新闻管理', + meta: { title: '新闻管理', keepAlive: true }, + }, + { + path: '/official-website-business', + component: OfficialWebsiteBusiness, + name: 'officialWebsiteBusiness', + title: '业务管理', + meta: { title: '业务管理', keepAlive: true }, + }, + ], +}; + +export default OfficialWebsiteRouter; diff --git a/src/router/permissionRouter.js b/src/router/permissionRouter.js new file mode 100755 index 0000000..fa50099 --- /dev/null +++ b/src/router/permissionRouter.js @@ -0,0 +1,143 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-31 17:53:35 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-12-17 21:24:56 + */ +import Main from "../views/main"; +// 活动管理 +import ActivityRouter from "./activity"; +import AiRouter from "./ai"; +// 管理员路由 +import Administrators from "./administrators"; +// 广告管理 +import AdvertisingRouter from "./advertising"; +// 代理管理 +import AgentRouter from "./agent"; +// 渠道管理 +import VideoRouter from "./video"; +// 影院管理 +import CinemaRouter from "./cinema"; +// 热点管理 +import hotRouter from "./hotSpot"; +// 裸聊专区 +import NakedChatRouter from "./nakedChat"; +// 落地页管理 +import LandRouter from "./land"; +// 产品管理 +import productRouter from "./product"; +// 产品管理 +import discountAreaManagementRouter from "./discountAreaManagement"; +// 机器人管理 +import RobotConfig from "./robot"; +// 统计路由 +import StatisticsRouter from "./statistics"; +// 系统管理 +import SystemRouter from "./system"; +// 系统消息 +import SystemMessageRouter from "./systemMessage"; +// 交易管理 +import TransactionRouter from "./transaction"; +// 用户路由 +import UserRouter from "./user"; +//商区代理路由 +import AgentDistrictRouter from "./agentDistrictProvider"; +// 聚商路由 +import GatheringRouter from "./gathering"; +//商人路由 +import BusinessRouter from "./business"; +//楼凤管理 +import Loufeng from "./loufeng"; +//小说管理 +import FictionRouter from "./fiction"; +//水果管理 +import AvComment from "./avcomment"; +//女优管理 +import ActressRouter from "./actress"; +//签到管理 +import SigninRouter from "./signin"; +//模块配置管理 +import moduleConf from "./moduleConfig"; +//动漫管理 +import AnimeRouter from "./animation"; +// 群聊管理 +import groupChatManagementRouter from './groupChatManagement'; +// 老司机资源库 +import LsjMediaLibRouter from "./lsjMediaLibRouter"; +// 二部媒资库 +import MediaLibRouter from "./mediaLibRouter"; +import ContentReviewRouter from "./contentReview"; +import OfficialWebsiteRouter from "./officialWebsite"; +// 不需要权限控制的路由 +const authRouter = [ + { + path: "/home", + component: Main, + title: "首页", + icon: "el-icon-s-home", + level: 0, + children: [ + { + path: "/home", + component: () => import("@/views/home/index"), + name: "home", + title: "首页", + meta: { + title: "首页", + }, + }, + ], + }, + Administrators, + AiRouter, + VideoRouter, + AnimeRouter, + LsjMediaLibRouter, + MediaLibRouter, + ContentReviewRouter, + OfficialWebsiteRouter, + UserRouter, + StatisticsRouter, + TransactionRouter, + productRouter, + discountAreaManagementRouter, + AgentRouter, + NakedChatRouter, + LandRouter, + AdvertisingRouter, + SystemMessageRouter, + SystemRouter, + RobotConfig, + ActivityRouter, + hotRouter, + CinemaRouter, + GatheringRouter, + BusinessRouter, + Loufeng, + AvComment, + ActressRouter, + FictionRouter, + moduleConf, + groupChatManagementRouter, + SigninRouter, + { + path: "/roleManagement", + component: Main, + title: "权限管理", + icon: "el-icon-s-custom", + level: 0, + children: [ + { + path: "/roleManagement", + component: () => import("@/views/role/index"), + name: "roleManagement", + title: "权限管理", + meta: { + title: "权限管理", + }, + }, + ], + }, + AgentDistrictRouter, +]; +export default authRouter; diff --git a/src/router/product.js b/src/router/product.js new file mode 100755 index 0000000..7ffa3fe --- /dev/null +++ b/src/router/product.js @@ -0,0 +1,149 @@ +import VipProductList from "../views/productManagement/vipProductList"; +import ProductBenefitList from "../views/productManagement/productBenefitList"; +import IntegralConfigure from "../views/productManagement/integralConfigure"; +import MarqueeList from "../views/productManagement/marqueeList"; +import BannerActivityList from "../views/productManagement/bannerActivityList"; +import GlodList from "../views/productManagement/glodList"; +import GameGlodList from "../views/productManagement/gameGlodList"; +import CurrencyList from "../views/productManagement/currencyList"; +import GlodPayList from "../views/productManagement/glodPayList"; +import PromoteUrl from "../views/productManagement/promoteUrl"; +import PayMethod from "../views/productManagement/payMethod"; +import VipCfg from "../views/productManagement/vipCfg"; +import Main from "../views/main"; +import ProductPositionList from "../views/productManagement/productPositionList"; +import OfficialList from "../views/productManagement/officialList"; +import PreSaleConfigure from "../views/productManagement/preSaleConfigure"; +import QuickSearch from "../views/videoManagement/quickSearch"; +import GoldCoinVideoConfig from "../views/videoManagement/goldCoinVideoConfig"; +const ProductRouter = { + path: "/vip-product-list", + component: Main, + title: "产品管理", + icon: "el-icon-s-order", + meta: { keepAlive: true }, + children: [ + { + path: "/vip-product-list", + component: VipProductList, + name: "vipProductList", + title: "VIP商品列表", + meta: { title: "VIP商品列表", keepAlive: true }, + }, + { + path: "/product-benefit-list", + component: ProductBenefitList, + name: "productBenefitList", + title: "VIP权益列表", + meta: { title: "VIP权益列表", keepAlive: true }, + }, + { + path: "/integral-configure", + component: IntegralConfigure, + name: "integralConfigure", + title: "积分配置", + meta: { title: "积分配置", keepAlive: true }, + }, + { + path: "/preSale-configure", + component: PreSaleConfigure, + name: "preSaleConfigure", + title: "预售配置", + meta: { title: "预售配置", keepAlive: true }, + }, + { + path: "/marquee-list", + component: MarqueeList, + name: "marqueeList", + title: "跑马灯列表", + meta: { title: "跑马灯列表", keepAlive: true }, + }, + { + path: "/banner-activity-list", + component: BannerActivityList, + name: "bannerActivityList", + title: "banner活动列表", + meta: { title: "banner活动列表", keepAlive: true }, + }, + + { + path: "/glod-list", + component: GlodList, + name: "glod-list", + title: "金币列表", + meta: { title: "金币列表", keepAlive: true }, + }, + { + path: "/gameGlod-list", + component: GameGlodList, + name: "gameGlod-list", + title: "游戏金币列表", + meta: { title: "游戏金币列表", keepAlive: true }, + }, + { + path: "/currency-list", + component: CurrencyList, + name: "currency-list", + title: "货币列表", + meta: { title: "货币列表", keepAlive: true }, + }, + { + path: "/glod-pay-list", + component: GlodPayList, + name: "glod-pay-list", + title: "金币优惠配置", + meta: { title: "金币优惠配置", keepAlive: true }, + }, + { + path: "/promote-url", + component: PromoteUrl, + name: "promote-url", + title: "推广落地页配置", + meta: { title: "推广落地页配置", keepAlive: true }, + }, + { + path: "/pay-method", + component: PayMethod, + name: "payMethod", + title: "充值渠道管理", + meta: { title: "充值渠道管理", keepAlive: true }, + }, + { + path: "/productPosition-list", + component: ProductPositionList, + name: "productPositionList", + title: "产品位置配置", + }, + { + path: "/vip_Cfg", + component: VipCfg, + name: "vipCfg", + title: "VIP升级配置", + }, + { + path: "/official-list", + component: OfficialList, + name: "officialList", + title: "官方下载列表", + meta: { title: "官方下载列表", keepAlive: true }, + }, + { + path: "/quick-search", + component: QuickSearch, + name: "quickSearch", + title: "官方置顶评论", + meta: { + title: "官方置顶评论", + keepAlive: true, + }, + }, + { + path: "/gold-coin-video-config", + component: GoldCoinVideoConfig, + name: "goldCoinVideoConfig", + title: "预售展示视频", + meta: { title: "预售展示视频", keepAlive: true }, + }, + ], +}; +export default ProductRouter; diff --git a/src/router/robot.js b/src/router/robot.js new file mode 100644 index 0000000..232c0d4 --- /dev/null +++ b/src/router/robot.js @@ -0,0 +1,27 @@ +import RobotConfig from '../views/robot/robotConfig'; +import ChatLibrary from '../views/robot/chatLibrary'; +import Main from '../views/main'; +const RbotRouter = { + path: '/robot-config', + component: Main, + title: '机器人管理', + icon: 'el-icon-s-custom', + meta: { keepAlive: true }, + children: [ + { + path: '/robot-config', + component: RobotConfig, + name: 'robotConfig', + title: '机器人配置', + meta: { title: '机器人配置' ,keepAlive:true} + }, + { + path: '/chat-library', + component: ChatLibrary, + name: 'chatLibrary', + title: '聊天内容', + meta: { title: '聊天内容' ,keepAlive:true} + } + ] +}; +export default RbotRouter; diff --git a/src/router/signin.js b/src/router/signin.js new file mode 100644 index 0000000..c68f2e9 --- /dev/null +++ b/src/router/signin.js @@ -0,0 +1,45 @@ +import CheckinHistoryList from '../views/signinManagement/checkInList'; +import CheckinPrizeCfgList from '../views/signinManagement/checkInCfgList'; +import ConfigurationList from '../views/signinManagement/configurationList'; +import Main from '../views/main'; +const SigninRouter = { + path: '/signinManger', + component: Main, + title: '签到管理', + icon: 'el-icon-s-custom', + meta: { + keepAlive: true + }, + children: [{ + path: '/checkin-history-list', + component: CheckinHistoryList, + name: 'checkinHistoryList', + title: '签到历史记录', + meta: { + title: '签到历史记录', + keepAlive: true + } + }, + { + path: '/checkin-prize-cfg-list', + component: CheckinPrizeCfgList, + name: 'checkinPrizeCfgList', + title: '签到奖品配置列表', + meta: { + title: '签到奖品配置列表', + keepAlive: true + } + }, + { + path: '/checkin-configuration', + component: ConfigurationList, + name: 'checkinConfiguration', + title: '签到配置', + meta: { + title: '签到配置', + keepAlive: true + } + }, + ] +}; +export default SigninRouter; \ No newline at end of file diff --git a/src/router/statistics.js b/src/router/statistics.js new file mode 100755 index 0000000..d21d932 --- /dev/null +++ b/src/router/statistics.js @@ -0,0 +1,108 @@ +import GoldWater from "../views/statistics/goldWater"; +// import UserData from '../views/statistics/userData' +// import RevenueData from '../views/statistics/revenueData' +import UserToday from "../views/statistics/userToday"; +import VideoIncome from "../views/statistics/videoIncome"; +import RechargeLog from "../views/statistics/rechargeLog"; +import WithdrawLog from "../views/statistics/withdrawLog"; +import ClickStatistics from "../views/statistics/clickStatistics"; +import Statistical from "../views/statistics/statistical"; +import VideoPayGoldStat from "../views/statistics/videoPayGoldStat"; +import VideoKlGoldStat from "../views/statistics/videoKlGoldStat"; +import AdvAnalysis from "../views/statistics/advAnalysis"; +import Main from "../views/main"; + +const StatisticsRouter = { + path: "/gold-water", + component: Main, + title: "统计管理", + icon: "el-icon-s-data", + meta: { keepAlive: true }, + children: [ + { + path: "/gold-water", + component: GoldWater, + name: "goldWater", + title: "金币流水统计", + meta: { title: "金币流水统计", keepAlive: true }, + }, + //{ + // path: '/revenue-data', + // component: RevenueData, + // name: 'revenueData', + // title: '营收数据', + // meta: { title: '营收数据' ,keepAlive:true} + //}, + //{ + // path: '/user-data', + // component: UserData, + // name: 'userData', + // title: '用户观看统计', + // meta: { title: '用户观看统计' ,keepAlive:true} + //}, + { + path: "/user-today", + component: UserToday, + name: "userToday", + title: "用户每日统计", + meta: { title: "用户每日统计", keepAlive: true }, + }, + { + path: "/video-income", + component: VideoIncome, + name: "videoIncome", + title: "视频收入统计", + meta: { title: "视频收入统计", keepAlive: true }, + }, + { + path: "/recharge-log", + component: RechargeLog, + name: "rechargeLog", + title: "充值成功统计", + meta: { title: "充值成功统计", keepAlive: true }, + }, + { + path: "/withdraw-log", + component: WithdrawLog, + name: "withdrawLog", + title: "提现成功统计", + meta: { title: "提现成功统计", keepAlive: true }, + }, + { + path: "/click-statistics", + component: ClickStatistics, + name: "clickStatistics", + title: "广告点击统计", + meta: { title: "广告点击统计", keepAlive: true }, + }, + { + path: "/advAnalysis", + component: AdvAnalysis, + name: "advAnalysis", + title: "广告ab测分析", + meta: { title: "广告ab测分析", keepAlive: true }, + }, + { + path: "/statistical", + component: Statistical, + name: "statistical", + title: "统计报表", + meta: { title: "统计报表", keepAlive: true }, + }, + { + path: "/videoPayGoldStat", + component: VideoPayGoldStat, + name: "videoPayGoldStat", + title: "视频销售金币统计", + meta: { title: "视频销售金币统计", keepAlive: true }, + }, + { + path: "/videoKlGoldStat", + component: VideoKlGoldStat, + name: "videoKlGoldStat", + title: "视频扣量金币统计", + meta: { title: "视频扣量金币统计", keepAlive: true }, + }, + ], +}; +export default StatisticsRouter; diff --git a/src/router/system.js b/src/router/system.js new file mode 100755 index 0000000..2b42d08 --- /dev/null +++ b/src/router/system.js @@ -0,0 +1,43 @@ +import VersionManagement from "../views/systemManagement/versionManagement"; +import ApplicationManagement from "../views/systemManagement/applicationManagement"; +import IpConfig from "../views/systemManagement/ipConfig"; +import SystemConfig from "../views/systemManagement/systemConfig"; +import Main from "../views/main"; +const SystemRouter = { + path: "/version-management", + component: Main, + title: "系统管理", + icon: "el-icon-s-tools", + meta: { keepAlive: true }, + children: [ + { + path: "/system-config", + component: SystemConfig, + name: "systemConfig", + title: "系统配置", + meta: { title: "系统配置", keepAlive: true }, + }, + { + path: "/version-management", + component: VersionManagement, + name: "versionManagement", + title: "版本管理", + meta: { title: "版本管理", keepAlive: true }, + }, + { + path: "/application-management", + component: ApplicationManagement, + name: "applicationManagement", + title: "应用管理", + meta: { title: "应用管理", keepAlive: true }, + }, + { + path: "/ipConfig", + component: IpConfig, + name: "ipConfig", + title: "ip白名单配置", + meta: { title: "ip白名单配置", keepAlive: true }, + }, + ], +}; +export default SystemRouter; diff --git a/src/router/systemMessage.js b/src/router/systemMessage.js new file mode 100644 index 0000000..64a20d3 --- /dev/null +++ b/src/router/systemMessage.js @@ -0,0 +1,27 @@ +import MessagePush from '../views/systemMessage/messagePush'; +import EmailPush from '../views/systemMessage/emailPush'; +import Main from '../views/main'; +const SystemMessageRouter = { + path: '/message-push', + component: Main, + title: '系统消息', + icon: 'el-icon-message-solid', + meta: { keepAlive: true }, + children: [ + { + path: '/message-push', + component: MessagePush, + name: 'messagePush', + title: '消息推送', + meta: { title: '消息推送' ,keepAlive:true} + }, + { + path: '/email-push', + component: EmailPush, + name: 'emailPush', + title: '邮件推送', + meta: { title: '邮件推送' ,keepAlive:true} + } + ] +}; +export default SystemMessageRouter; diff --git a/src/router/transaction.js b/src/router/transaction.js new file mode 100755 index 0000000..90da18e --- /dev/null +++ b/src/router/transaction.js @@ -0,0 +1,83 @@ +import WithdrawList from "../views/transactionManagement/withdrawList"; +import WithdrawMethod from "../views/transactionManagement/withdrawMethod"; +import AdvanceOrderList from "../views/transactionManagement/advanceOrderList"; +import RechargeList from "../views/transactionManagement/rechargeList"; +import WithdrawBank from "../views/transactionManagement/withdrawBank"; +import TransferList from "../views/transactionManagement/transferList"; +import WithdrawRefund from "../views/transactionManagement/withdrawRefund"; +import IntegralExchange from "../views/transactionManagement/integralExchange"; +import VipCardPurchaseRecord from "../views/transactionManagement/vipCardPurchaseRecord"; +import Main from "../views/main"; +const TransactionRouter = { + path: "/recharge-list", + component: Main, + title: "交易管理", + icon: "el-icon-sort", + meta: { keepAlive: true }, + children: [ + { + path: "/recharge-list", + component: RechargeList, + name: "rechargeList", + title: "充值订单管理", + meta: { title: "充值订单管理", keepAlive: true }, + }, + { + path: "/withdraw-list", + component: WithdrawList, + name: "withdrawList", + title: "提现订单列表", + meta: { title: "提现订单列表", keepAlive: true }, + }, + { + path: "/advance-order-list", + component: AdvanceOrderList, + name: "advanceOrderList", + title: "预售订单列表", + meta: { title: "预售订单列表", keepAlive: true }, + }, + { + path: "/integral-exchange", + component: IntegralExchange, + name: "integralExchange", + title: "积分兑换", + meta: { title: "积分兑换", keepAlive: true }, + }, + { + path: "/vipCardPurchaseRecord", + component: VipCardPurchaseRecord, + name: "vipCardPurchaseRecord", + title: "会员卡购买记录", + meta: { title: "会员卡购买记录", keepAlive: true }, + }, + { + path: "/withdraw-method", + component: WithdrawMethod, + name: "withdrawMethod", + title: "提现方式配置", + meta: { title: "提现方式配置", keepAlive: true }, + }, + { + path: "/withdraw-bank", + component: WithdrawBank, + name: "withdrawBank", + title: "提现银行配置", + meta: { title: "提现银行配置", keepAlive: true }, + }, + { + path: "/transfer-list", + component: TransferList, + name: "transferList", + title: "财务转账列表", + meta: { title: "财务转账列表", keepAlive: true }, + }, + { + path: "/withdraw-refund", + component: WithdrawRefund, + name: "withdrawRefund", + title: "提现退款列表", + meta: { title: "提现退款列表", keepAlive: true }, + }, + ], +}; +export default TransactionRouter; diff --git a/src/router/user.js b/src/router/user.js new file mode 100755 index 0000000..21d01aa --- /dev/null +++ b/src/router/user.js @@ -0,0 +1,129 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-09-28 16:52:13 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-09-30 18:00:06 + */ +import UserList from "../views/user/userList"; +import BackpackList from "../views/user/backpackList"; +import UserMessageList from "../views/user/userMessageList"; +import UserLog from "../views/user/userLog"; +import UserIpBlock from "../views/user/userIpBlock"; +import UserWatch from "../views/user/userWatch"; +import UserReport from "../views/user/userReport"; +import UserResource from "../views/user/userResource"; +// import CommonQuestion from '../views/user/commonQuestion' +import BlackList from "../views/user/blackList"; +import UserRecommendation from "../views/user/userRecommendation"; +import FeedbackList from "../views/user/feedbackList"; +import UserFans from "../views/user/userFollow"; +import UserPostsLog from "../views/user/userPostsLog"; +import Main from "../views/main"; +const UserRouter = { + path: "/user-list", + component: Main, + title: "用户管理", + icon: "el-icon-user-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/user-list", + component: UserList, + name: "userList", + title: "用户列表", + meta: { title: "用户列表", keepAlive: true }, + }, + { + path: "/backpack-list", + component: BackpackList, + name: "backpackList", + title: "背包列表", + meta: { title: "背包列表", keepAlive: true }, + }, + { + path: "/user-message-list", + component: UserMessageList, + name: "userMessageList", + title: "用户私信列表", + meta: { title: "用户私信列表", keepAlive: true }, + }, + { + path: "/user-log", + component: UserLog, + name: "userLog", + title: "用户登陆日志", + meta: { title: "用户登陆日志", keepAlive: true }, + }, + { + path: "/user-ip-block", + component: UserIpBlock, + name: "userIpBlock", + title: "用户IP限制", + meta: { title: "用户IP限制", keepAlive: true }, + }, + { + path: "/user-resource", + component: UserResource, + name: "userResource", + title: "用户资源配置", + meta: { title: "用户资源配置", keepAlive: true }, + }, + { + path: "/user-watch", + component: UserWatch, + name: "userWatch", + title: "用户观看列表", + meta: { title: "用户观看列表", keepAlive: true }, + }, + //{ + // path: '/common-question', + // component: CommonQuestion, + // name: 'commonQuestion', + // title: '用户常见问题', + // meta: { title: '用户常见问题' ,keepAlive:true} + //}, + { + path: "/user-report", + component: UserReport, + name: "userReport", + title: "用户举报列表", + meta: { title: "用户举报列表", keepAlive: true }, + }, + { + path: "/black-list", + component: BlackList, + name: "blackList", + title: "黑名单列表", + meta: { title: "黑名单列表", keepAlive: true }, + }, + { + path: "/user-recommendation", + component: UserRecommendation, + name: "userRecommendation", + title: "用户推荐列表", + meta: { title: "用户推荐列表", keepAlive: true }, + }, + { + path: "/feedback-list", + component: FeedbackList, + name: "feedbackList", + title: "用户反馈列表", + meta: { title: "用户反馈列表", keepAlive: true }, + }, + { + path: "/user-fans", + component: UserFans, + name: "userFans", + title: "用户自动关注配置", + meta: { title: "用户自动关注配置", keepAlive: true }, + }, + { + path: "/user-posts-log", + component: UserPostsLog, + name: "userPostsLog", + title: "用户、帖子操作日志", + meta: { title: "用户、帖子操作日志", keepAlive: true }, + }, + ], +}; +export default UserRouter; diff --git a/src/router/video.js b/src/router/video.js new file mode 100755 index 0000000..fda793e --- /dev/null +++ b/src/router/video.js @@ -0,0 +1,177 @@ +import VideoExamine from "../views/videoManagement/videoExamine"; +import VideoList from "../views/videoManagement/videoList"; +import PushList from "../views/videoManagement/pushList"; +import EmojiList from "../views/videoManagement/emojiList"; +import CityList from "../views/videoManagement/cityList"; +import TagList from "../views/videoManagement/tagList"; +import ActiveConfig from "../views/videoManagement/activeConfig"; +import CommentList from "../views/videoManagement/commentList"; +import VideoHot from "../views/videoManagement/videoHot"; +import HotCity from "../views/videoManagement/hotCity"; +import ResourceManage from "../views/videoManagement/resourceManage"; +import FilterManagement from "../views/videoManagement/filterManagement"; +import RecommendSignature from "../views/videoManagement/recommendSignature"; +import FreeVidCfg from "../views/videoManagement/freeVidCfg"; +import VidResCfg from "../views/videoManagement/vidResCfg"; +import TagConfiguration from "../views/videoManagement/tagConfiguration"; +import VideoTimeOnlineList from "../views/videoManagement/videoTimeOnlineList"; +import PaymentGuideList from "../views/shortVideoRecommend/paymentGuideList"; +import CommentBannerList from "../views/shortVideoRecommend/commentBannerList"; +import VipCardExperiment from "../views/shortVideoRecommend/vipCardExperiment"; +import Main from "../views/main"; + +const VideoRouter = { + path: "/video-examine", + component: Main, + title: "帖子管理", + icon: "el-icon-video-camera-solid", + meta: { keepAlive: true }, + children: [ + { + path: "/video-examine", + component: VideoExamine, + name: "videoExamine", + title: "帖子审核", + meta: { title: "帖子审核", keepAlive: true }, + }, + { + path: "/video-time-online-list", + component: VideoTimeOnlineList, + name: "videoTimeOnlineList", + title: "帖子定时上线列表", + meta: { + title: "帖子定时上线列表", + keepAlive: true, + }, + }, + { + path: "/video-list", + component: VideoList, + name: "videoList", + title: "帖子列表", + meta: { title: "帖子列表", keepAlive: true }, + }, + { + path: "/emoji-list", + component: EmojiList, + name: "emojiList", + title: "表情包列表", + meta: { title: "表情包列表", keepAlive: true }, + }, + // 推送列表 + { + path: "/push-list", + component: PushList, + name: "pushList", + title: "推送列表", + meta: { title: "推送列表", keepAlive: true }, + }, + { + path: "/tag-list", + component: TagList, + name: "tagList", + title: "标签管理", + meta: { title: "标签管理", keepAlive: true }, + }, + { + path: "/active-config", + component: ActiveConfig, + name: "activeConfig", + title: "活动配置", + meta: { title: "活动配置", keepAlive: true }, + }, + { + path: "/tag-configuration", + component: TagConfiguration, + name: "tagConfiguration", + title: "标签配置", + meta: { title: "标签配置", keepAlive: true }, + }, + { + path: "/city-list", + component: CityList, + name: "cityList", + title: "城市列表", + meta: { title: "城市列表", keepAlive: true }, + }, + { + path: "/hot-city", + component: HotCity, + name: "hotCity", + title: "热门城市", + meta: { title: "热门城市", keepAlive: true }, + }, + { + path: "/comment-list", + component: CommentList, + name: "commentList", + title: "评论管理", + meta: { title: "评论管理", keepAlive: true }, + }, + { + path: "/resource-management", + component: ResourceManage, + name: "resourceManage", + title: "资源管理", + meta: { title: "资源管理", keepAlive: true }, + }, + { + path: "/video-hot", + component: VideoHot, + name: "videoHot", + title: "短视频最热", + meta: { title: "短视频最热", keepAlive: true }, + }, + { + path: "/filter-management", + component: FilterManagement, + name: "filterManagement", + title: "过滤词管理", + meta: { title: "过滤词管理", keepAlive: true }, + }, + { + path: "/recommend-signature", + component: RecommendSignature, + name: "recommendSignature", + title: "推荐标签", + meta: { title: "推荐标签", keepAlive: true }, + }, + { + path: "/free-vid-cfg", + component: FreeVidCfg, + name: "freeVidCfg", + title: "免费观看配置", + meta: { title: "免费观看配置", keepAlive: true }, + }, + { + path: "/vid-res-cfg", + component: VidResCfg, + name: "vidResCfg", + title: "视频资源库", + meta: { title: "视频资源库", keepAlive: true }, + }, + { + path: "/payment-guide-list", + component: PaymentGuideList, + name: "paymentGuideList", + title: "付费引导配置", + meta: { title: "付费引导配置", keepAlive: true }, + }, + { + path: "/comment-banner-list", + component: CommentBannerList, + name: "commentBannerList", + title: "评论Banner配置", + meta: { title: "评论Banner配置", keepAlive: true }, + }, + { + path: "/vip-card-experiment", + component: VipCardExperiment, + name: "vipCardExperiment", + title: "VIP卡片实验", + meta: { title: "VIP卡片实验", keepAlive: true }, + }, + ], +}; + +export default VideoRouter; diff --git a/src/stroe/actions.js b/src/stroe/actions.js new file mode 100755 index 0000000..e0e0907 --- /dev/null +++ b/src/stroe/actions.js @@ -0,0 +1,41 @@ +import local from "@/utils/localStroage.js"; +import list from "@/router/permissionRouter"; +import { recursionRouter } from "@/utils/global"; +// action类似与mutation,action提交的是mutation而不是直接变更状态,action可以包含任意一步操作 +const actions = { + setRouterTag: ({ commit }, tag) => commit("SET_TAGS", tag), // 设置tag + setRouterIndex: ({ commit }, index) => commit("SET_INDEX", index), // 设置当前选中的路由 + setRouterActive: ({ commit }, router) => commit("SET_ROUTER_ACTIVE", router), // 设置导航栏动态路由选中 + removeRouterTag: ({ commit }, index) => commit("REMOVE_TAGS", index), // 删除tag并切换路由 + removeAllTag: ({ commit }) => commit("REMOVE_ALL_TAGS"), // 删除全部tags + setRouter: ({ commit }, list) => commit("SET_ROUTER", list), // 存储动态路由 + setBeilv: ({ commit }, beilv) => commit("SET_BEILV", beilv), // 存储模拟倍率 + setToken: ({ commit }, token) => { + commit("SET_TOKEN", token); + }, // 存储token,主要用来刷新token后,被上传图片监听到,可以修改页面 + removeToken: ({ commit }) => commit("REMOVE_TOKEN"), //删除token + + /** + * @description 刷新路由:从logcastorage中获取权限路由,对比本地的总路由,获取新的路由,保存到routerList中。 + */ + refreshRouter: ({ dispatch, commit }) => { + const role = local.get("role"); + if (!role || !Array.isArray(role) || role.length === 0) { + commit("SET_ROUTER", []); + return; + } + // 重新创建新的本地权限路由,避免修改原始权限数据 + const newList = list.map((item) => Object.assign({}, item)); + const newRouter = recursionRouter(role, newList); + // 触发vuex函数对新路由进行存储(主要针对页面刷新后vux保存的路由无法存留,注:不能将获取的用户路由存存在localstroge里面,因为路由的components在本地存储当中会被转化),注:localstorage里面的数据不能被实时监听 + dispatch("setRouter", newRouter); + }, + + // 设置登陆弹窗的弹出次数 + setConfirmFlag: ({ commit }) => { + commit("SET_CONFIRM_FLAG"); + }, + actJson: ({ commit }, actJson) => commit("ACT_JSON", actJson), +}; + +export default actions; diff --git a/src/stroe/getters.js b/src/stroe/getters.js new file mode 100755 index 0000000..f1407e6 --- /dev/null +++ b/src/stroe/getters.js @@ -0,0 +1,8 @@ +// getters相当于是 store 的计算属性。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算 +const getters = { + routerList: state => state.routerList, + expansionFactor: state => state.beilv, + header: state => ({ Authorization: state.token }), +} + +export default getters diff --git a/src/stroe/index.js b/src/stroe/index.js new file mode 100755 index 0000000..79209bb --- /dev/null +++ b/src/stroe/index.js @@ -0,0 +1,20 @@ +import Vue from "vue"; +import Vuex from "vuex"; +import state from "./state"; +import actions from "./actions"; +import mutations from "./mutations"; +import getters from "./getters"; +import modules from "./modules"; +// import createPersistedState from "vuex-persistedstate"; + +//调用方法,使用插件 +Vue.use(Vuex); + +export default new Vuex.Store({ + state, + getters, + actions, + mutations, + modules, + // plugins: [createPersistedState()], +}); diff --git a/src/stroe/modules/index.js b/src/stroe/modules/index.js new file mode 100644 index 0000000..c695384 --- /dev/null +++ b/src/stroe/modules/index.js @@ -0,0 +1,6 @@ +import loginModule from './login' +const modules = { + loginModule +} + +export default modules \ No newline at end of file diff --git a/src/stroe/modules/login.js b/src/stroe/modules/login.js new file mode 100644 index 0000000..3db77fa --- /dev/null +++ b/src/stroe/modules/login.js @@ -0,0 +1,100 @@ +// import Api from '../../api' +// import vue from '@/main' + +const state = { + token: "", + links: [], + // 后端返回的用户信息 + userInfo: {}, + // 前端登陆保存的登陆信息 + loginInfo: {}, +}; + +const getters = { + getLinks: (state) => { + return state.links; + }, +}; + +const mutations = { + // 保存token到vuex中 + COMMIT_TOKEN(state, object) { + state.token = object; + }, + // 保存用户信息到vuex中 + COMMIT_USERINFO(state, obj) { + state.userInfo = Object.assign({}, obj); + state.links = state.userInfo.inviteLink; + }, + // 保存登陆信息到vuex中 + COMMIT_LOGININFO(state, object) { + state.loginInfo = object; + }, + COMMIT_USERINFO_BALANCE(state, balance) { + state.userInfo.balance = balance; + }, + COMMIT_USERINFO_MOBILE(state, mobile) { + state.userInfo.mobile = mobile; + }, + // 登出重置用户信息,token,渠道信息 + COMMIT_LOGOUT(state) { + state.userInfo = {}; + state.token = ""; + }, + // 设置链接信息 + SET_LINK(state, linkarr) { + state.links = linkarr; + }, +}; + +const actions = { + setToken({ commit }, obj) { + commit("COMMIT_TOKEN", obj); + }, + setBalance({ commit }, balance) { + commit("COMMIT_USERINFO_BALANCE", balance); + }, + setMobile({ commit }, mobile) { + commit("COMMIT_USERINFO_MOBILE", mobile); + }, + // adminLogin({ commit }, params) { + // return new Promise((resolve, reject) => { + // Api.login(params).then(res => { + // if (res.code === 200 && res.data.token && res.data.channels) { + // commit('COMMIT_TOKEN', res.data) + // commit('COMMIT_USERINFO', { + // name: res.data.name, + // account: res.data.account, + // // role: res.data.role + // }) + // resolve(res) + // } else { + // vue.$message.error('账号或密码错误,请重新登陆') + // reject() + // } + // }) + // }) + // }, + saveLoginInfo({ commit }, loginInfo) { + commit("COMMIT_LOGININFO", loginInfo); + }, + saveUserInfo({ commit }, userInfo) { + commit("COMMIT_USERINFO", userInfo); + }, + logout({ commit }) { + commit("COMMIT_LOGOUT"); + }, + setLink({ commit }, linkArr) { + commit("SET_LINK", linkArr); + }, +}; + +const login = { + namespaced: true, + state, + getters, + mutations, + actions, +}; + +export default login; diff --git a/src/stroe/mutations.js b/src/stroe/mutations.js new file mode 100755 index 0000000..c1de163 --- /dev/null +++ b/src/stroe/mutations.js @@ -0,0 +1,72 @@ +import Router from "vue-router"; +import router from "../router"; +import baseRouter from "../router/baseRouter"; +const mutations = { + SET_TOKEN: (state, token) => { + state.token = token; + }, + REMOVE_TOKEN: (state) => { + state.token = ""; + }, + // 设置面包屑路由tag和数量 + SET_TAGS: (state, tag) => { + state.routerTags.push(tag); + if (state.routerTags.length > 11) { + state.routerTags.shift(); + } + state.routerIndex = state.routerTags.length; + }, + // 设置当前被选中的路由tags + SET_INDEX: (state, index) => { + state.routerIndex = index; + }, + + // 设置模拟倍率 + SET_BEILV: (state, beilv) => { + state.beilv = beilv; + }, + + // 动态设置导航栏选中router + SET_ROUTER_ACTIVE: (state, router) => { + state.activeRouter = router; + }, + // 删除全部tags + REMOVE_ALL_TAGS: (state) => { + state.routerTags = []; + }, + // 删除路由tags + REMOVE_TAGS: (state, index) => { + if (state.routerTags.length === 1) { + return; + } + state.routerTags.splice(index, 1); + state.routerIndex = state.routerTags.length; + }, + // 设置动态路由 + SET_ROUTER: (state, list) => { + state.routerList = list; + const freshRouter = new Router({ + mode: "hash", + base: process.env.BASE_URL, + routes: baseRouter, + }); + router.matcher = freshRouter.matcher; + // 兼容:vue-router 3.5+ 用 addRoute;更低版本回退 addRoutes + if (typeof router.addRoute === "function") { + list.forEach((route) => { + router.addRoute(route); + }); + } else { + router.addRoutes(list); + } + }, + // 防止弹窗重复弹出 + SET_CONFIRM_FLAG: (state) => { + state.confirmFlag = false; + }, + ACT_JSON: (state, actJson) => { + state.actJson = actJson; + }, +}; + +export default mutations; diff --git a/src/stroe/state.js b/src/stroe/state.js new file mode 100755 index 0000000..56bdc6c --- /dev/null +++ b/src/stroe/state.js @@ -0,0 +1,11 @@ +const state = { + routerTags: [], + routerIndex: 0, + activeRouter: "", + routerList: [], + token: "", + beilv: "", + confirmFlag: true, + actJson: "", +}; +export default state; diff --git a/src/utils/common.js b/src/utils/common.js new file mode 100644 index 0000000..d6bec87 --- /dev/null +++ b/src/utils/common.js @@ -0,0 +1,20 @@ +// 内链 +export const internalLinks = [ + { label: "会员中心", value: "yinseinner://vip_page" }, + { label: "福利任务", value: "yinseinner://taskHall" }, + { label: "短视频", value: "yinseinner://shortVideo" }, + { label: "预售卡", value: "yinseinner://advancePage" }, + { label: "视频详情页", value: "yinseinner://video_page?id=" }, + { label: "亚模块", value: "yinseinner://submodule?id=" }, + { label: "抽奖", value: "yinseinner://Lottery" }, + { label: "分享推广", value: "yinseinner://universal_agent" }, + { label: "AI科技", value: "yinseinner://science" }, + { label: "金币钱包", value: "yinseinner://wallet_page" }, + { label: "社区指定板块", value: "yinseinner://Community_module?id=" }, + { label: "排行榜", value: "yinseinner://rankingList" }, + { label: "帖子详情", value: "yinseinner://postdetail?id=" }, + { label: "直播", value: "yinseinner://live_streaming" }, + { label: "导航栏", value: "yinseinner://Navigation_bar" }, + { label: "绑定手机号", value: "yinseinner://binding_page" }, + +]; diff --git a/src/utils/compressImage.js b/src/utils/compressImage.js new file mode 100644 index 0000000..f595e8d --- /dev/null +++ b/src/utils/compressImage.js @@ -0,0 +1,265 @@ +import GIF from 'gif.js' +import { parseGIF, decompressFrames } from 'gifuct-js' + +const SKIP_SIZE = 300 * 1024 +const MAX_OUTPUT_SIZE = 1024 * 1024 +const MAX_DIMENSION = 2048 +const INITIAL_QUALITY = 0.92 +const MIN_QUALITY = 0.8 +const GIF_WORKER = `${process.env.BASE_URL || '/'}gif.worker.js` + +function toFile(blob, name, type) { + return new File([blob], name, { type, lastModified: Date.now() }) +} + +function replaceExt(name, ext) { + const base = name.replace(/\.[^.]+$/, '') + return `${base}${ext}` +} + +function loadImage(file) { + return new Promise((resolve, reject) => { + const url = URL.createObjectURL(file) + const img = new Image() + img.onload = () => { + URL.revokeObjectURL(url) + resolve(img) + } + img.onerror = () => { + URL.revokeObjectURL(url) + reject(new Error('图片加载失败')) + } + img.src = url + }) +} + +function calcSize(width, height, maxDim) { + if (width <= maxDim && height <= maxDim) { + return { width, height } + } + const ratio = Math.min(maxDim / width, maxDim / height) + return { + width: Math.round(width * ratio), + height: Math.round(height * ratio), + } +} + +function canvasToBlob(canvas, type, quality) { + return new Promise((resolve) => { + canvas.toBlob(resolve, type, quality) + }) +} + +function hasTransparency(ctx, width, height) { + const { data } = ctx.getImageData(0, 0, width, height) + for (let i = 3; i < data.length; i += 4) { + if (data[i] < 255) return true + } + return false +} + +async function compressStaticImage(file) { + const img = await loadImage(file) + let { width, height } = calcSize(img.width, img.height, MAX_DIMENSION) + + const drawToCanvas = (w, h) => { + const canvas = document.createElement('canvas') + canvas.width = w + canvas.height = h + const ctx = canvas.getContext('2d') + if (file.type !== 'image/png') { + ctx.fillStyle = '#fff' + ctx.fillRect(0, 0, w, h) + } + ctx.drawImage(img, 0, 0, w, h) + return { canvas, ctx } + } + + let { canvas, ctx } = drawToCanvas(width, height) + const isPng = file.type === 'image/png' + const transparent = isPng && hasTransparency(ctx, width, height) + + let outputType = transparent + ? 'image/png' + : file.type === 'image/webp' + ? 'image/webp' + : 'image/jpeg' + let ext = transparent ? '.png' : outputType === 'image/webp' ? '.webp' : '.jpg' + let quality = INITIAL_QUALITY + + let blob = await canvasToBlob(canvas, outputType, quality) + + while (blob && blob.size > MAX_OUTPUT_SIZE && quality > MIN_QUALITY) { + quality -= 0.04 + blob = await canvasToBlob(canvas, outputType, quality) + } + + while (blob && blob.size > MAX_OUTPUT_SIZE && width > 640) { + width = Math.round(width * 0.85) + height = Math.round(height * 0.85) + ;({ canvas, ctx } = drawToCanvas(width, height)) + blob = await canvasToBlob(canvas, outputType, quality) + } + + if (!blob || blob.size >= file.size) { + return file + } + + return toFile(blob, replaceExt(file.name, ext), outputType) +} + +function applyDisposal(ctx, frame) { + if (frame.disposalType === 2) { + ctx.clearRect(frame.dims.left, frame.dims.top, frame.dims.width, frame.dims.height) + } +} + +function drawFramePatch(ctx, frame) { + const imageData = ctx.createImageData(frame.dims.width, frame.dims.height) + imageData.data.set(frame.patch) + const frameCanvas = document.createElement('canvas') + frameCanvas.width = frame.dims.width + frameCanvas.height = frame.dims.height + frameCanvas.getContext('2d').putImageData(imageData, 0, 0) + ctx.drawImage(frameCanvas, frame.dims.left, frame.dims.top) +} + +function encodeGifFrames(frames, sourceWidth, sourceHeight, targetWidth, targetHeight, quality) { + return new Promise((resolve, reject) => { + const composeCanvas = document.createElement('canvas') + composeCanvas.width = sourceWidth + composeCanvas.height = sourceHeight + const composeCtx = composeCanvas.getContext('2d') + + const outputCanvas = document.createElement('canvas') + outputCanvas.width = targetWidth + outputCanvas.height = targetHeight + const outputCtx = outputCanvas.getContext('2d') + + const gif = new GIF({ + workers: 2, + workerScript: GIF_WORKER, + width: targetWidth, + height: targetHeight, + quality, + repeat: 0, + }) + + gif.on('finished', (blob) => resolve(blob)) + gif.on('abort', () => reject(new Error('GIF 压缩已取消'))) + + frames.forEach((frame) => { + drawFramePatch(composeCtx, frame) + outputCtx.clearRect(0, 0, targetWidth, targetHeight) + outputCtx.drawImage(composeCanvas, 0, 0, targetWidth, targetHeight) + gif.addFrame(outputCanvas, { + copy: true, + delay: Math.max((frame.delay || 10) * 10, 20), + }) + applyDisposal(composeCtx, frame) + }) + + gif.render() + }) +} + +async function compressGif(file) { + const buffer = await file.arrayBuffer() + let gifData + try { + gifData = parseGIF(buffer) + } catch (error) { + return file + } + + const frames = decompressFrames(gifData, true) + if (!frames.length) { + return file + } + + const sourceWidth = gifData.lsd.width + const sourceHeight = gifData.lsd.height + let scale = Math.min(1, MAX_DIMENSION / sourceWidth, MAX_DIMENSION / sourceHeight) + + if (file.size > MAX_OUTPUT_SIZE * 2) { + scale = Math.min(scale, 0.85) + } + + let targetWidth = Math.max(1, Math.round(sourceWidth * scale)) + let targetHeight = Math.max(1, Math.round(sourceHeight * scale)) + let quality = 10 + + let blob = await encodeGifFrames( + frames, + sourceWidth, + sourceHeight, + targetWidth, + targetHeight, + quality + ) + + while (blob && blob.size > MAX_OUTPUT_SIZE && quality < 20) { + quality += 2 + blob = await encodeGifFrames( + frames, + sourceWidth, + sourceHeight, + targetWidth, + targetHeight, + quality + ) + } + + while (blob && blob.size > MAX_OUTPUT_SIZE && targetWidth > 320) { + targetWidth = Math.round(targetWidth * 0.85) + targetHeight = Math.round(targetHeight * 0.85) + blob = await encodeGifFrames( + frames, + sourceWidth, + sourceHeight, + targetWidth, + targetHeight, + quality + ) + } + + if (!blob || blob.size >= file.size) { + return file + } + + return toFile(blob, replaceExt(file.name, '.gif'), 'image/gif') +} + +/** + * 上传前压缩图片,尽量保持视觉质量;GIF 保留动画。 + * 小于 300KB 的图片不压缩。 + */ +export async function compressImage(file) { + if (!file || !(file instanceof Blob)) { + return file + } + + if (file.size <= SKIP_SIZE) { + return file + } + + const type = (file.type || '').toLowerCase() + + try { + if (type === 'image/gif') { + return await compressGif(file) + } + if ( + type === 'image/jpeg' || + type === 'image/jpg' || + type === 'image/png' || + type === 'image/webp' + ) { + return await compressStaticImage(file) + } + } catch (error) { + console.warn('图片压缩失败,将上传原图:', error) + } + + return file +} diff --git a/src/utils/contentReview.js b/src/utils/contentReview.js new file mode 100644 index 0000000..501b4fb --- /dev/null +++ b/src/utils/contentReview.js @@ -0,0 +1,31 @@ +/** + * 内容审查模块通用工具 + */ +export function isCrApiSuccess(res) { + return res && (res.code === 200 || res.code === 0); +} + +/** 与 request 拦截器一致:优先 msg,兼容 tip */ +export function getCrApiErrorMessage(res) { + if (!res) return ""; + return res.msg || res.tip || res.message || ""; +} + +/** 编辑提交前去掉服务端包裹的 mark 标签 */ +export function stripHighlightMark(html) { + if (html == null || html === "") return ""; + return String(html).replace(/(.*?)<\/mark>/gi, "$1"); +} + +export const TASK_STATUS_MAP = { + 0: "待执行", + 1: "执行中", + 2: "已完成", + 3: "失败", +}; + +export const RESOLVE_STATUS_MAP = { + 0: "未解决", + 1: "已搁置", + 2: "已解决", +}; diff --git a/src/utils/eventBus.js b/src/utils/eventBus.js new file mode 100644 index 0000000..8d2b2c8 --- /dev/null +++ b/src/utils/eventBus.js @@ -0,0 +1,3 @@ +import Vue from 'vue' +// export const Bus = new Vue() +export default new Vue(); \ No newline at end of file diff --git a/src/utils/filter.js b/src/utils/filter.js new file mode 100755 index 0000000..06be630 --- /dev/null +++ b/src/utils/filter.js @@ -0,0 +1,560 @@ +import moment from "moment"; +import { changePosition } from "../views/lsjMediaLibrary/config"; +// 时间转换 +const changeTime = (string) => { + // 时间字符传 2019/10/01T12:00:00+08:00(后面时区固定为+08:00) + let time = moment(string).format(); + let newTime = time.slice(0, 19) + "+08:00"; + //let newTime = moment(string).format('YYYY-MM-DD h:mm:ss') + // 时间戳 + //let time = new Date(string) + //let newTime = Date.parse(time) / 1000 + return newTime; +}; + +export const changeDate = (time) => { + if (!time || time === "未知") { + return "未知"; + } + let date = moment + .utc(time) + .utcOffset(480) + .format("YYYY-MM-DD HH:mm:ss"); + return date; +}; +const changeMd = (time) => { + if (!time || time === "未知") { + return "未知"; + } + let date = moment + .utc(time) + .utcOffset(480) + .format("YYYY-MM-DD"); + return date; +}; +// number 千位分隔符 +const numFormat = (num) => { + num = num.toString().split("."); // 分隔小数点 + var arr = num[0].split("").reverse(); // 转换成字符数组并且倒序排列 + var res = []; + for (var i = 0, len = arr.length; i < len; i++) { + if (i % 3 === 0 && i !== 0) { + res.push(","); // 添加分隔符 + } + res.push(arr[i]); + } + res.reverse(); // 再次倒序成为正确的顺序 + if (num[1]) { + // 如果有小数的话添加小数部分 + res = res.join("").concat("." + num[1]); + } else { + res = res.join(""); + } + return res; +}; +/*** + * 保留两位小数且四舍五入 + * ***/ +const iTofixed = (num) => { + return ( + Math.round(num * Math.pow(10, 2)) / Math.pow(10, 2) + + Math.pow(10, -(2 + 1)) + ) + .toString() + .slice(0, -1); +}; +// 支付方式过滤条件 +const payTypeRule = (value) => { + let payMethods = { + alipay: "支付宝", + usdt: "USDT", + wechat: "微信", + union: "银联", + daichong: "代充", + bankcard: "银行卡", + }; + return payMethods[value] ? payMethods[value] : "未知"; +}; + +// 审核过滤条件 +const commentStatus = (status) => { + switch (status) { + case 1: + return "审核通过"; + case 2: + return "未审核"; + case 3: + return "自动过滤"; + } +}; +// 订单审核过滤 +const orderStatus = (status) => { + switch (status) { + case 1: + return "进行中"; + case 2: + return "付款失败"; + case 3: + return "付款成功"; + case 4: + return "已退款"; + } +}; +// 提现订单状态 +const withdrawStatus = (status) => { + switch (status) { + case 1: + return "未审核"; + case 2: + return "转账中"; + case 3: + return "已拒绝"; + case 4: + return "未知错误"; + case 5: + return "提现成功"; + case 6: + return "提现失败"; + } +}; +// 活动状态过滤 +const activeStatus = (status) => { + switch (status) { + case "ready": + return "准备中"; + case "processing": + return "进行中"; + case "finished": + return "已完成"; + } +}; +// 活动状态过滤 +const messTypeStatus = (status) => { + switch (status) { + case "REGULAR_NOTICE_TYPE": + return "定时通知"; + case "PLAN_NOTICE_TYPE": + return "计划通知"; + case "SPECIFY_NOTICE_TYPE": + return "规定通知"; + case "AFTER_REGIST_NOTICE": + return "注册后通知"; + } +}; +const senderStatus = (status) => { + switch (status) { + case "SYSTEM": + return "system 系统消息"; + case "ACTASST": + return "ActAsst 活动助手"; + } +}; +const reStatus = (status) => { + switch (status) { + case "ALL_USER": + return "所有用户"; + case "SOME_USER": + return "部分用户"; + } +}; + +// 自动账单状态 +const automaticStatus = (status) => { + switch (status) { + case 0: + return "未审核"; + case 1: + return "通过审核"; + case 2: + return "已拒绝"; + case 3: + return "付款成功"; + case 4: + return "付款失败"; + } +}; +// 兑换码类型 +const Type = (status) => { + switch (status) { + case 1: + return "增加vip天数"; + case 2: + return "增加金币"; + } +}; + +// 将秒转换为时分秒 +const changeSecond = (ms) => { + let hour = Math.floor(ms / 3600); + let min = Math.floor((ms % 3600) / 60); + let second = Math.floor((ms % 3600) % 60); + hour = hour > 0 ? (hour <= 9 ? "0" + hour : hour) : "00"; + min = min > 0 ? (min <= 9 ? "0" + min : min) : "00"; + second = second > 0 ? (second <= 9 ? "0" + second : second) : "00"; + return hour + ":" + min + ":" + second; +}; +// 保留两位小数并转化为百分比显示 +const transformNumber = (init) => { + return `${(100 * Number(init)).toFixed(2)}%`; +}; + +// 保留两位小数 +const transformFloat = (init) => { + return `${Number(init).toFixed(2)}`; +}; +//保留两位小数 +const fixed2 = (x) => { + return Number.parseFloat(x).toFixed(2); +}; +// 数据为空或者0 处理 +const floatRule = (value) => { + if (value && value > 0) { + return value; + } else { + return 0; + } +}; +// 数据为空或者0 处理(率) +const percentRule = (value) => { + if (value && value > 0) { + return `${(100 * Number(value)).toFixed(2)}%`; + } else { + return "0.00%"; + } +}; + +// 数组转化成字符串 +const amountTypesFun = (val) => { + if (val instanceof Array) { + return val.map((v) => v / 100).join(","); + } + return val; +}; + +// 报告类型 +const peportTypeRule = (peportType) => { + switch (peportType) { + case 0: + return "本月注册"; + case 1: + return "日均活跃"; + case 2: + return "本月业绩"; + case 3: + return "日均"; + case 4: + return "累计日均"; + } +}; +const trsndferStatus = (status) => { + switch (status) { + case 0: + return "未知"; + case 1: + return "转账中"; + case 2: + return "转账成功"; + case 3: + return "转账失败"; + } +}; +const videoStatus = (status) => { + let statusDesc = { + Merging: "合并中", + MergeCompleted: "合并完成", + MergeError: "合并失败", + Converting: "格式转换中", + ConvertError: "转换失败", + UpLoading: "正在上传中", + Completed: "完成", + }; + return statusDesc[status] ? statusDesc[status] : "未知"; +}; +// 审核状态 +const reviewStatusFun = (value) => { + switch (value) { + case 0: + return "审核中"; + case 1: + return "通过"; + case 2: + return "拒绝"; + } +}; +// 广告链接类型 +const hrefTypeFun = (value) => { + switch (value) { + case 0: + return "外部浏览器跳转"; + case 1: + return "内部浏览器跳转"; + case 2: + return "APP内部跳转"; + } +}; + +// 广告位置 +const positionFun = (value) => { + switch (value) { + case 0: + return "启动页广告"; + case 1: + return "首页-推荐小广告"; + case 2: + return "首页-弹窗公告"; + case 3: + return "消息-界面广告"; + case 4: + return "撩吧-轮播广告"; + case 5: + return "钱包-轮播广告"; + } +}; + +// 税率等级 +const taxLevelList = (value) => { + switch (value) { + case 0: + return "70%"; + case 6: + return "60%"; + case 5: + return "50%"; + default: + return "70%"; + } +}; +// 税率等级 +const soldOutType = (value) => { + switch (value) { + case true: + return "买断"; + case false: + return "未买断"; + } +}; +// 商人类型 +const businessType = (value) => { + switch (value) { + case 1: + return "聚商"; + case 2: + return "普通商人"; + } +}; +// 模版样式(落地页配置) +const styleList = (value) => { + switch (value) { + case "switchStress": + return "突出"; + case "switchSimple": + return "简单"; + } +}; +// 模版类型(落地页配置) +const typeList = (value) => { + switch (value) { + case "iosEnterprise": + return "ios企业包开关"; + case "iosStore": + return "ios商店包开关"; + case "android": + return "安卓开关"; + } +}; +//产品类型(VIP商品列表) +const productTypeList = (value) => { + switch (value) { + case 0: + return "会员卡"; + case 3: + return "约会卡"; + case 5: + return "新手卡"; + case 6: + return "实体商品"; + case 9: + return "楼凤优惠卡"; + case 10: + return "楼凤全免卡"; + case 12: + return "裸聊服务"; + case 13: + return "视频折扣卡"; + case 14: + return "视频免费卡"; + case 20: + return "其它卡"; + case 21: + return "预售卡"; + case 22: + return "游戏预售卡"; + } +}; + +//展示样式(产品位置配置) +const showTypeList = (value) => { + switch (value) { + case 1: + return "横"; + case 2: + return "竖"; + } +}; + +//处理状态(举报信息列表) +const processingStatusList = (value) => { + switch (value) { + case 0: + return "等待处理"; + case 1: + return "处理完成"; + case 2: + return "忽略"; + } +}; +//举报类型(举报信息列表) +const feedbackTypeList = (value) => { + switch (value) { + case 1: + return "无效联系方式"; + case 2: + return "骗子"; + case 3: + return "重复信息"; + } +}; +// 置顶类型(嫩模信息列表) +const topLevels = (value) => { + switch (value) { + case 20: + return "全局置顶"; + case 10: + return "城市置顶"; + case 9: + return "城市次级置顶"; + // case 0: + // return '非置顶' + } +}; + +// 收听权限(有声小说列表) +const listenPermissions = (value) => { + switch (value) { + case 0: + return "会员"; + case 1: + return "金币购买"; + case 3: + return "试听"; + } +}; +//特权(VIP商品列表) +const privileges = (status) => { + switch (status) { + case 1: + return "专属高清线路"; + case 2: + return "私信随意聊"; + case 3: + return "优质资源"; + case 4: + return "帖子优先审核"; + case 5: + return "评论区霸主"; + case 6: + return "视频无限观看"; + case 7: + return "专属客服"; + case 8: + return "修改个人头像"; + case 9: + return "修改个性签名"; + case 10: + return "浏览小说"; + case 11: + return "畅听有声小说"; + } +}; +// 数组转字符串 +export function arryToString(val) { + if (val === undefined || val === null) { + return undefined; + } + if (Array.isArray(val)) { + return val + .filter((item) => item !== "" && item !== undefined && item !== null) + .join(","); + } + if (typeof val === "string") { + return val; + } + return String(val); +} +// 字符串转数组 +export function stringToArry(val) { + if (val === undefined || val === null) { + return []; + } + if (Array.isArray(val)) { + return val.filter( + (item) => item !== "" && item !== undefined && item !== null + ); + } + const str = String(val); + if (str === "") { + return []; + } + return str.split(/[\s+,+。+,+。+、+.+/]/g).filter((item) => item !== ""); +} +// 获取当前日期 +export function current() { + const d = new Date(); + const month = + d.getMonth() + 1 < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1; + const date = d.getDate() < 10 ? "0" + d.getDate() : d.getDate(); + return `${d.getFullYear()}-${month}-${date}`; +} +export default { + changePosition, + changeDate, + numFormat, + commentStatus, + orderStatus, + changeSecond, + transformNumber, + transformFloat, + payTypeRule, + withdrawStatus, + activeStatus, + floatRule, + percentRule, + messTypeStatus, + senderStatus, + reStatus, + automaticStatus, + Type, + amountTypesFun, + peportTypeRule, + changeMd, + trsndferStatus, + videoStatus, + reviewStatusFun, + hrefTypeFun, + positionFun, + taxLevelList, + soldOutType, + changeTime, + businessType, + styleList, + typeList, + productTypeList, + iTofixed, + fixed2, + showTypeList, + processingStatusList, + feedbackTypeList, + topLevels, + listenPermissions, + privileges, +}; diff --git a/src/utils/gloabalComponents.js b/src/utils/gloabalComponents.js new file mode 100755 index 0000000..bcedbf4 --- /dev/null +++ b/src/utils/gloabalComponents.js @@ -0,0 +1,19 @@ +import imgLoad from "@/components/imgLoad"; +import DecryptImg from "@/components/decrypt-img/index.vue"; +import Gallery from "@/components/Gallery/index.vue"; +import imgsUpload from "@/components/imgsUpload"; +import baseUpload from "@/components/baseUpload"; +import baseUploadNew from "@/components/baseUploadNew"; +// import globalUploader from '@/components/globalUploader + +import cropper from "@/components/cropper"; +export default (Vue) => { + Vue.component("ImgLoad", imgLoad); + Vue.component("DecryptImg", DecryptImg); + Vue.component("gallery", Gallery) + Vue.component("ImgsUpload", imgsUpload); + Vue.component("BaseUpload", baseUpload); + Vue.component("BaseUploadNew", baseUploadNew); + Vue.component("Cropper", cropper); + // Vue.component('GlobalUploader', globalUploader) +}; diff --git a/src/utils/global.js b/src/utils/global.js new file mode 100755 index 0000000..a020bb2 --- /dev/null +++ b/src/utils/global.js @@ -0,0 +1,168 @@ +import moment from "moment"; +import VueRouter from "vue-router"; +// 转换排序 +const sortEscape = (string) => (string === "descending" ? 1 : -1); + +//格式化时日期 时间类型参数发送给后端服务统一处理 +const changeTime = (string) => { + // 时间字符传 2019/10/01T12:00:00+08:00(后面时区固定为+08:00) + let time = moment(string).format(); + let newTime = time.slice(0, 19) + "+08:00"; + //let newTime = moment(string).format('YYYY-MM-DD h:mm:ss') + // 时间戳 + //let time = new Date(string) + //let newTime = Date.parse(time) / 1000 + return newTime; +}; +// 时间转换 +const changeSumDate = (string) => { + // 时间字符传 2019/10/01T12:00:00+08:00(后面时区固定为+08:00) + let time = moment(string).format(); + let newTime = time.slice(0, 10) + "T00:00:00+08:00"; + return newTime; +}; +// bj转换成当地时间 +const changeSumDatejb = (string) => { + // 时间字符传 2019/10/01T12:00:00+07:00(后面时区固定为+07:00) + let time = moment(string).format(); + let newTime = time.slice(0, 10) + "T00:00:00+07:00"; + return newTime; +}; +// 将北京时间去掉时区 +const deleteDateZone = (time) => { + let newTime = time.substr(0, time.length - 6); + return newTime; +}; +const changeMonth = (string) => { + // 时间字符传 2019/10/01T12:00:00+08:00(后面时区固定为+08:00) + const time = moment(string).format() + const newTime = time.slice(0, 7) + return newTime +} +const changeDate = (time) => { + if (!time || time === "未知") { + return ""; + } + let date = moment + .utc(time) + .utcOffset(480) + .format("YYYY-MM-DD HH:mm:ss"); + return date; +}; +const changeDates = (time) => { + if (!time || time === "未知") { + return ""; + } + let date = moment + .utc(time) + .utcOffset(480) + .format("YYYY-MM-DD HH:mm:ss"); + return date; +}; +const beforeDate = (day) => { + let arr = []; + let time1 = moment().add(1, 'days').format("YYYY-MM-DD 00:00:00"); + let time2 = moment().add(0 - day, 'days').format("YYYY-MM-DD 00:00:00"); + arr.push(time2); + arr.push(time1); + return arr; +} +// 参数过滤,空的参数不传 +const paramsFilter = (obj, noFiltering) => { + let params = {}; + Object.keys(obj).forEach((key) => { + const value = obj[key]; + if(noFiltering && noFiltering.length && noFiltering.includes(key)) { + params[key] = value + }else if (typeof value === "number" && value !== Infinity && !isNaN(value)) { + params[key] = value; + } else if (typeof value === "boolean" && value !== "") { + params[key] = value; + } else if (value === "ZERO_VALUE") { + params[key] = ""; + return; + } else if (value !== "" && value) { + params[key] = value; + } else { + return; + } + }); + return params; +}; +// 获取当前系统时间 +const nowDate = () => { + let date = new Date(); + let seperator1 = "-"; + let seperator2 = ":"; + let month = date.getMonth() + 1; + let strDate = date.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + let currentdate = + date.getFullYear() + + seperator1 + + month + + seperator1 + + strDate + + " " + + date.getHours() + + seperator2 + + date.getMinutes() + + seperator2 + + date.getSeconds(); + return currentdate; +}; + +/** + * @description 将本地存储的路由转换成vue能够识别的动态路由 + * @param userRouter 用户权限路由 + * @param allRouter 全局权限路由 + */ +const recursionRouter = (userRouter = [], allRouter = []) => { + const routes = Array.isArray(userRouter) ? userRouter : []; + const allRoutes = Array.isArray(allRouter) ? allRouter : []; + let realRoutes = []; + // routerList = _.cloneDeep(allRouter), + // permList = _.cloneDeep(userRouter); + allRoutes.forEach((v) => { + routes.forEach((item) => { + // let data = {}; + if (item.path === v.path) { + // data = _.cloneDeep(v); + // delete data.children; + if (item.children && item.children.length > 0) { + v.children = recursionRouter(item.children, v.children); + } + realRoutes.push(v); + } + }); + }); + return realRoutes; +}; + +const createRouter = (routes) => + new VueRouter({ + mode: "history", + base: process.env.BASE_URL, + routes, + }); + +export { + sortEscape, + changeDate, + changeTime, + paramsFilter, + nowDate, + recursionRouter, + changeDates, + beforeDate, + deleteDateZone, + createRouter, + changeSumDate, + changeMonth, + changeSumDatejb +}; diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 0000000..5bdd4e6 --- /dev/null +++ b/src/utils/index.js @@ -0,0 +1,13 @@ +/** + * 截取url参数 + * @param {*} name 截取url参数名称 + * @returns + */ + export function getQueryString(name) { + const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); + const r = window.location.search.substring(1).match(reg); + if (r != null) { + return decodeURIComponent(r[2]); + } + return null; +} \ No newline at end of file diff --git a/src/utils/localStroage.js b/src/utils/localStroage.js new file mode 100755 index 0000000..e98cd52 --- /dev/null +++ b/src/utils/localStroage.js @@ -0,0 +1,31 @@ +import { safeJsonParse } from "./safeJsonParse"; + +/** + * @description 本地数据持久化操作,用来记录、读取、删除用户等公共数据 + */ +const local = { + // 设置键值对 + set(name, data) { + data = JSON.stringify(data); + localStorage.setItem(name, data); + }, + // 获取键值 + get(name) { + let data = localStorage.getItem(name); + if (!data) { + return null; + } + const parsed = safeJsonParse(data, null); + if (parsed === null) { + console.error(`[localStroage] invalid JSON for key "${name}", removing`); + localStorage.removeItem(name); + } + return parsed; + }, + // 删除某个键 + remove(name) { + localStorage.removeItem(name); + }, +}; + +export default local; diff --git a/src/utils/phone.js b/src/utils/phone.js new file mode 100644 index 0000000..0c51dbd --- /dev/null +++ b/src/utils/phone.js @@ -0,0 +1,7 @@ +import { parsePhoneNumberFromString } from 'libphonenumber-js' + +function IsPhone(phoneNumber) { + const p = parsePhoneNumberFromString(phoneNumber,'CN') + return p.isValid() +} +export {IsPhone} \ No newline at end of file diff --git a/src/utils/picTobase64.js b/src/utils/picTobase64.js new file mode 100644 index 0000000..629c2e2 --- /dev/null +++ b/src/utils/picTobase64.js @@ -0,0 +1,22 @@ +export function uploadImgToBase64 (img) { + return new Promise((resolve, reject) => { + function getBase64Image (img) { + const canvas = document.createElement('canvas') + canvas.width = img.width + canvas.height = img.height + const ctx = canvas.getContext('2d') + ctx.drawImage(img, 0, 0, canvas.width, canvas.height) + var dataURL = canvas.toDataURL() + return dataURL + } + + const image = new Image() + image.crossOrigin = '*' // 允许跨域图片 + image.src = img + '?v=' + Math.random() // 清除图片缓存 + image.onload = function () { + resolve(getBase64Image(image)) + } + image.onerror = reject + }) + } + diff --git a/src/utils/previewImages.js b/src/utils/previewImages.js new file mode 100644 index 0000000..3460c89 --- /dev/null +++ b/src/utils/previewImages.js @@ -0,0 +1,33 @@ + +import Vue from 'vue'; +import { Image } from 'element-ui'; + +const ElImageConstructor = Vue.extend(Image) + +const previewImages = (srcList, index = 0) => { + srcList = Array.isArray(srcList) ? srcList : srcList ? [srcList] : [] + + const initialIndex = typeof index === 'string' ? srcList.indexOf(index) : index + if (srcList.length < 1) return + const props = { + previewSrcList: srcList, + initialIndex + } + const instance = new ElImageConstructor({ + propsData: props, + watch: { + showViewer(val) { + if (!val) { + instance.$destroy() + document.body.removeChild(instance.$el) + } + } + } + }) + + instance.$mount() + document.body.appendChild(instance.$el) + instance.clickHandler.call(instance) +} + +export default previewImages \ No newline at end of file diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100755 index 0000000..62a7525 --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,213 @@ +import { paramsFilter } from "@/utils/global"; +import axios from "axios"; +import Api from "../api"; +import vue from "../main"; +import store from "../stroe/index"; +import local from "./localStroage.js"; +import config from "./serverUrlConfig"; +// 创建一个axios实例 +const instance = axios.create({ + baseURL: "", + timeout: 300000, +}); + +// 给实例添加一个setToken方法,用于登录后将最新token动态添加到header,同时将token保存在localStorage中 +instance.setToken = (token) => { + instance.defaults.headers["Authorization"] = token; + local.setItem("token", token); +}; +instance.defaults.headers.post["Content-Type"] = + "application/json; charset=utf-8"; +function refreshToken() { + // instance是当前request.js中已创建的axios实例 + return Api.refreshToken().then((res) => res); +} + +// 是否正在重新登陆 +let isLogining = false; +// 下次调用接口需要刷新的标识 +let needRefresh = false; +// 是否正在刷新的标记 +let isRefreshing = false; +// 重试队列,每一项将是一个待执行的函数形式 +let requests = []; + +/** 业务错误文案:部分接口返回 msg,部分返回 tip */ +function getResponseErrorMessage(data) { + if (!data) return ""; + return data.msg || data.tip || data.message || ""; +} + +// 设置请求拦截器,将token传入header传递给后端 +instance.interceptors.request.use( + (config) => { + let token = local.get("userInfo") ? local.get("userInfo").token : "", + storeToken = vue.$store.state.token; + if (storeToken !== token) { + vue.$store.dispatch("setToken", token); + } + if (token) { + config.headers["Authorization"] = token; + } + if (config.url.endsWith("refresh")) { + return config; + } + if (needRefresh) { + if (!isRefreshing) { + // eslint-disable-next-line no-const-assign + isRefreshing = true; + return refreshToken() + .then((res) => { + const { token } = res.data; + let userInfo = local.get("userInfo") ? local.get("userInfo") : {}; + userInfo = Object.assign(userInfo, { token: token }); + vue.$store.dispatch("setToken", token); + local.set("userInfo", userInfo); + + config.headers["Authorization"] = token; + isRefreshing = false; + needRefresh = false; + // 已经刷新了token,将所有队列中的请求进行重试 + requests.forEach((cb) => cb(token)); + requests = []; + return config; + }) + .catch((res) => { + window.console.log("refreshtoken error =>", res); + isRefreshing = false; + needRefresh = false; + }) + .finally(() => { + //console.log('刷新事件结束') + }); + } else { + // 正在刷新token,将返回一个未执行resolve的promise + return new Promise((resolve) => { + // 将resolve放进队列,用一个函数形式来保存,等token刷新后直接执行 + requests.push((token) => { + config.headers["Authorization"] = token; + resolve(instance(config)); + }); + }); + } + } + return config; + }, + (error) => { + return Promise.reject(error); + } +); + +instance.interceptors.response.use( + (response) => { + // console.log(response) + if (response.data.type === 'application/json'){ + let reader = new FileReader(); + reader.readAsText(response.data, 'utf-8'); + reader.onload = (e) => { + let res = JSON.parse(e.target.result); + if (res.code != 200) { + const errMsg = getResponseErrorMessage(res); + if (errMsg) vue.$message.error(errMsg); + return; + } + } + } else { + if (response.headers["refresh-authorization"] === "true" && !isRefreshing) { + needRefresh = true; + } + switch (response.data.code) { + case 1003: + if (!isLogining) { + if (store.state.confirmFlag) { + vue + .$confirm("登陆信息已失效,请重新登陆!", "退出提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + isLogining = true; + local.remove("userInfo"); + local.remove("role"); + vue.$store.dispatch("removeAllTag"); + vue.$store.dispatch("setConfirmFlag"); + vue.$router.push("/login"); + }) + .catch(() => { + return Promise.reject(new Error("取消返回登陆页面")); + }) + .finally(() => { + isLogining = false; + }); + } + } + break; + case 200: + return Promise.resolve(response.data); + default: { + const errMsg = getResponseErrorMessage(response.data); + if (errMsg) { + vue.$message.error(errMsg); + throw new Error(errMsg); + } + return Promise.resolve(response.data); + } + //case 200: + // return Promise.resolve(response.data) + //default: + // vue.$message.error(response.data.tip) + // return Promise.reject(response.data.tip) + } + return Promise.resolve(response.data); + } + }, + (error) => { + return Promise.reject(error); + } +); + +const ajax = (param, noFiltering) => { + // 定义内部默认请求对象 + let defaultParam = { + url: "", + type: "get", + params: {}, + }; + // noFiltering 支持boolean array + if (param.url !== "/vid/uploadStatic" && param.params && (!noFiltering || (noFiltering && noFiltering.length))) { + param.params = paramsFilter(param.params, noFiltering); + } + // 合并请求参数 + let newParams = Object.assign(defaultParam, param); + // 设置公共请求地址、超时时间 + defaultParam.url = config.baseServerUrl + defaultParam.url; + instance.defaults.timeout = 1000 * 30; + // 返回一个ajax对象 + return new Promise((resolve, reject) => { + // 处理post、get不同请求时参数处理 + let getParams, postParams; + if (newParams.type === "get") { + getParams = newParams.params; + } else { + postParams = newParams.params; + } + instance({ + url: newParams.url, + method: newParams.type, + data: postParams, + params: getParams, + responseType: newParams.responseType, + // headers:param.headers, + // headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + // headers: { 'Content-Type': 'multipart/form-data' } + }) + .then((res) => { + resolve(res); + }) + .catch((err) => { + reject(err); + }); + }); +}; +export default ajax; diff --git a/src/utils/safeJsonParse.js b/src/utils/safeJsonParse.js new file mode 100644 index 0000000..006679b --- /dev/null +++ b/src/utils/safeJsonParse.js @@ -0,0 +1,19 @@ +/** + * 安全解析 JSON 字符串,解析失败时返回 fallback,避免裸 JSON.parse 导致页面崩溃 + * @param {string|object|null|undefined} str + * @param {*} fallback 解析失败或空值时的默认值 + */ +export function safeJsonParse(str, fallback = null) { + if (str == null || str === "") { + return fallback; + } + if (typeof str === "object") { + return str; + } + try { + return JSON.parse(str); + } catch (e) { + console.error("[safeJsonParse] failed:", e); + return fallback; + } +} diff --git a/src/utils/secretFn.js b/src/utils/secretFn.js new file mode 100755 index 0000000..33a8a7b --- /dev/null +++ b/src/utils/secretFn.js @@ -0,0 +1,25 @@ +/*** + * @param {codeArr: 十进制编码数组, secretKey: 混淆加密key, len: 混淆长度} + * @description 用户加密图片解码 + */ +const getSecretString = (codeArr, secretKey, len) => { + let resArr = [...codeArr]; + var keyCodeArr = secretKey.split('').map(item => item.charCodeAt(0).toString(10)); + for(let i = 0; i item.charCodeAt(0).toString(10)); +// let key = 'secret'; +// let len = 5; +// let test = getSecretString(aCodeArr, key,5); +// let test2 = getSecretString(test, key,5); +// let res = String.fromCharCode.apply(null , test2) +// console.log(test, test2, res); \ No newline at end of file diff --git a/src/utils/serverUrlConfig.js b/src/utils/serverUrlConfig.js new file mode 100755 index 0000000..0dda216 --- /dev/null +++ b/src/utils/serverUrlConfig.js @@ -0,0 +1,22 @@ +const baseConfig = { + baseServerUrl: "", + playVideoUrl: "/vid/m3u8/", //视频播放 + imgUrl: "", //图片预览 + newImgUrl: "", //图片预览 + downLoadUrl: "", //视频下载 +}; +if ( + process.env.NODE_ENV === "production" && + process.env.VUE_APP_TITLE === "test" +) { + baseConfig.baseServerUrl = "https://91pornht.remoces.com/api/web/admin"; +} else if (process.env.NODE_ENV === "development") { + // 测试服 + baseConfig.baseServerUrl = "https://91pornht.remoces.com/api/web/admin"; + // baseConfig.baseServerUrl = "http://192.168.1.106:6065/api/web/admin" + // 正式服 + // baseConfig.baseServerUrl = "https://admin.hxwebht.com/api/web/admin" +} else { + baseConfig.baseServerUrl = "/api/web/admin"; +} +export default baseConfig; diff --git a/src/utils/uploadConfig.js b/src/utils/uploadConfig.js new file mode 100644 index 0000000..7bd01ba --- /dev/null +++ b/src/utils/uploadConfig.js @@ -0,0 +1,8 @@ +export const ACCEPT_CONFIG = { + image: ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], + video: ['.mp4', '.rmvb', '.mkv', '.wmv', '.flv'], + document: ['.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf', '.txt', '.tif', '.tiff'], + getAll(){ + return [...this.image, ...this.video, ...this.document] + }, +}; \ No newline at end of file diff --git a/src/utils/validator.js b/src/utils/validator.js new file mode 100755 index 0000000..b09b19a --- /dev/null +++ b/src/utils/validator.js @@ -0,0 +1,227 @@ +import { IsPhone } from "./phone"; +// 非负浮点数(正浮点数 + 0)验证 +const validatorM = (rule, value, callback) => { + let reg = /^\d+(\.\d+)?$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入数字")); + } +}; +/* 合法uri*/ +const validateURL = (textval) => { + const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ + return urlregex.test(textval) +} + +// 正整数验证 +const validatorIndex = (rule, value, callback) => { + let reg = /^[0-9]*[1-9][0-9]*$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入正整数")); + } +}; +// 非负整数验证 +const validatorIn = (rule, value, callback) => { + const reg = /^[1-9]\d*$/ + if (reg.test(value) || !value) { + callback() + } else { + callback(new Error('请输入非负整数')) + } +} +// 3以上的正整数验证 +const validatorOver3 = (rule, value, callback) => { + // let reg = /^[3-9]|[1-9]\d+/; + // if (reg.test(value) || !value) { + // callback(); + // } else { + // callback(new Error("请输入3以上的正整数")); + // } + if(!value) { + callback(); + } +}; +// 非汉字验证 +const validatorHanzi = (rule, value, callback) => { + let reg = /[^\u4e00-\u9fa5]/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入非汉字字符")); + } +}; +// 0~1小数验证 +const validatorDecimal = (rule, value, callback) => { + let reg = /^(0(\.\d{1,2})?|1(\.0{1,2})?)$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入0~1的两位小数")); + } +}; +// 数字,字母,汉字校验 只含有汉字、数字、字母、下划线不能以下划线开头和结尾 +const validatorLanguage = (rule, value, callback) => { + let reg = /^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入汉字,字母,数字集合的字符串")); + } +}; +// 版本号规则 +const validatorVerName = (rule, value, callback) => { + let reg = /^[1-9][0-9]{0,}\.[0-9]{1,3}\.[0-9]{1,3}$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入[正整数].[0~999].[0~999]格式的字符")); + } +}; +// 手机号码规则 +const validatorMobile = (rule, value, callback) => { + if (value && IsPhone(value)) { + callback(); + } else { + callback(new Error("请输入带有效的手机号码")); + } +}; + +// 手机号码规则2 +const validatorMobile2 = (rule, value, callback) => { + if ((value && IsPhone(value)) || value === "") { + callback(); + } else { + callback(new Error("请输入带有效的手机号码")); + } +}; + +// 限制只能输入数字(可以输入两位小数) +const validatorFloat = (rule, value, callback) => { + let reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入最多带两位小数的实数")); + } +}; +// 验证当前number只能为负数 +const validatorCutNumber = (rule, value, callback) => { + if (value <= 0) { + callback(); + } else { + callback(new Error("当前金币只能为负数")); + } +}; + +// 验证 只能输入数字、英文逗号 +const validatorNumber = (rule, value, callback) => { + let reg = /^[^,](([1-9,])(?!\2))+[^,]$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入输入数字、英文逗号")); + } +}; + +// 作品排序 +const validatorWorksSort = (rule, value, callback) => { + let reg = /^[0-5]$/; + if (reg.test(value) || !value) { + callback(); + } else { + callback(new Error("请输入0-5的数字")); + } +}; + +// 置顶排序(允许多个视频使用相同排序号) +const validatorLiaoBaTopSort = (rule, value, callback) => { + let reg = /^\d+$/; + if (reg.test(String(value)) || value === "" || value === undefined || value === null) { + callback(); + } else { + callback(new Error("请输入非负整数")); + } +}; + +// 验证权限 +const validatorAuthority = () => { + const whitelist = ["60d2ea2a798fcb2ea8908ca8", "5f814e536d28214b61f9f677"]; + const id = JSON.parse(localStorage.getItem("userInfo")).admin.id; + let auth = false; + whitelist.forEach(i => { + if (i === id) { + auth = true; + } + }) + return auth; +}; + +// 时间格式转化 +const uniteDate = (tm) => { + if (!tm) { + return "-"; + } + let sjc = new Date(tm); + let sd = sjc.toLocaleDateString(undefined, { + hour12: false, + timeZone: "Asia/Shanghai" + }) + ' ' + sjc.toLocaleTimeString(undefined, { + hour12: false, + timeZone: "Asia/Shanghai" + }); + let cxk = sd.replace(/ 24/g, " 00"); + let lh = cxk.replace(/\//g, "-"); + return lh; +} + +export const isFullURL = (text) => { + return /^(http(s)?:\/\/)\w+[^\s]+(\.[^\s]+){1,}$/.test(text); +}; + +// SEO 语义化标识:支持小写字母、数字、常用符号,禁止中文 +const SEO_SLUG_PATTERN = /^[a-z0-9._-]+$/; + +const sanitizeSeoSlug = (value) => { + if (!value) return ''; + return String(value) + .toLowerCase() + .replace(/[\u4e00-\u9fa5]/g, '') + .replace(/\s/g, ''); +}; + +const validatorSeoSlug = (rule, value, callback) => { + if (!value) return callback(); + if (/[\u4e00-\u9fa5]/.test(value)) { + callback(new Error('不能使用中文')); + } else if (!SEO_SLUG_PATTERN.test(value)) { + callback(new Error('仅支持小写字母、数字和常用符号(.-_)')); + } else { + callback(); + } +}; + +export { + validatorIndex, + validatorOver3, + validatorFloat, + validatorDecimal, + validatorLanguage, + validatorHanzi, + validatorVerName, + validatorMobile, + validatorMobile2, + validatorCutNumber, + validatorNumber, + validatorM, + validatorIn, + validatorWorksSort, + validatorAuthority, + validatorLiaoBaTopSort, + validateURL, + uniteDate, + sanitizeSeoSlug, + validatorSeoSlug, +}; diff --git a/src/views/accountManagement/numberManagement/components/addTag.vue b/src/views/accountManagement/numberManagement/components/addTag.vue new file mode 100755 index 0000000..df9f451 --- /dev/null +++ b/src/views/accountManagement/numberManagement/components/addTag.vue @@ -0,0 +1,123 @@ + + + + diff --git a/src/views/accountManagement/numberManagement/index.vue b/src/views/accountManagement/numberManagement/index.vue new file mode 100755 index 0000000..393e19e --- /dev/null +++ b/src/views/accountManagement/numberManagement/index.vue @@ -0,0 +1,73 @@ + + diff --git a/src/views/activityManagement/buyPage/components/codeAction.vue b/src/views/activityManagement/buyPage/components/codeAction.vue new file mode 100644 index 0000000..0d11190 --- /dev/null +++ b/src/views/activityManagement/buyPage/components/codeAction.vue @@ -0,0 +1,229 @@ + + + + diff --git a/src/views/activityManagement/buyPage/components/joinNum.vue b/src/views/activityManagement/buyPage/components/joinNum.vue new file mode 100644 index 0000000..2721210 --- /dev/null +++ b/src/views/activityManagement/buyPage/components/joinNum.vue @@ -0,0 +1,81 @@ + + + + + + \ No newline at end of file diff --git a/src/views/activityManagement/buyPage/index.vue b/src/views/activityManagement/buyPage/index.vue new file mode 100644 index 0000000..6bd108d --- /dev/null +++ b/src/views/activityManagement/buyPage/index.vue @@ -0,0 +1,234 @@ + + + diff --git a/src/views/activityManagement/configurationList/components/addContent.vue b/src/views/activityManagement/configurationList/components/addContent.vue new file mode 100644 index 0000000..f53a45e --- /dev/null +++ b/src/views/activityManagement/configurationList/components/addContent.vue @@ -0,0 +1,322 @@ + + + diff --git a/src/views/activityManagement/configurationList/components/previewPicture.vue b/src/views/activityManagement/configurationList/components/previewPicture.vue new file mode 100644 index 0000000..bea0cab --- /dev/null +++ b/src/views/activityManagement/configurationList/components/previewPicture.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/views/activityManagement/configurationList/index.vue b/src/views/activityManagement/configurationList/index.vue new file mode 100644 index 0000000..68b2c56 --- /dev/null +++ b/src/views/activityManagement/configurationList/index.vue @@ -0,0 +1,424 @@ + + diff --git a/src/views/activityManagement/dailyTaskList/components/addContent.vue b/src/views/activityManagement/dailyTaskList/components/addContent.vue new file mode 100644 index 0000000..e5041a7 --- /dev/null +++ b/src/views/activityManagement/dailyTaskList/components/addContent.vue @@ -0,0 +1,457 @@ + + + diff --git a/src/views/activityManagement/dailyTaskList/index.vue b/src/views/activityManagement/dailyTaskList/index.vue new file mode 100644 index 0000000..7c55f85 --- /dev/null +++ b/src/views/activityManagement/dailyTaskList/index.vue @@ -0,0 +1,341 @@ + + diff --git a/src/views/activityManagement/goldeneggLog/index.vue b/src/views/activityManagement/goldeneggLog/index.vue new file mode 100644 index 0000000..87be48c --- /dev/null +++ b/src/views/activityManagement/goldeneggLog/index.vue @@ -0,0 +1,316 @@ + + + diff --git a/src/views/activityManagement/growingTaskList/components/addContent.vue b/src/views/activityManagement/growingTaskList/components/addContent.vue new file mode 100644 index 0000000..835f165 --- /dev/null +++ b/src/views/activityManagement/growingTaskList/components/addContent.vue @@ -0,0 +1,392 @@ + + + diff --git a/src/views/activityManagement/growingTaskList/components/detailDialog.vue b/src/views/activityManagement/growingTaskList/components/detailDialog.vue new file mode 100644 index 0000000..bdce8cd --- /dev/null +++ b/src/views/activityManagement/growingTaskList/components/detailDialog.vue @@ -0,0 +1,125 @@ + + \ No newline at end of file diff --git a/src/views/activityManagement/growingTaskList/index.vue b/src/views/activityManagement/growingTaskList/index.vue new file mode 100644 index 0000000..eafac50 --- /dev/null +++ b/src/views/activityManagement/growingTaskList/index.vue @@ -0,0 +1,346 @@ + + diff --git a/src/views/activityManagement/listOfPrizes/components/addContent.vue b/src/views/activityManagement/listOfPrizes/components/addContent.vue new file mode 100644 index 0000000..63b5521 --- /dev/null +++ b/src/views/activityManagement/listOfPrizes/components/addContent.vue @@ -0,0 +1,208 @@ + + + \ No newline at end of file diff --git a/src/views/activityManagement/listOfPrizes/index.vue b/src/views/activityManagement/listOfPrizes/index.vue new file mode 100644 index 0000000..1431f81 --- /dev/null +++ b/src/views/activityManagement/listOfPrizes/index.vue @@ -0,0 +1,172 @@ + + \ No newline at end of file diff --git a/src/views/activityManagement/lotteryList/index.vue b/src/views/activityManagement/lotteryList/index.vue new file mode 100644 index 0000000..9e42b49 --- /dev/null +++ b/src/views/activityManagement/lotteryList/index.vue @@ -0,0 +1,157 @@ + + + diff --git a/src/views/activityManagement/newActivityList/index.vue b/src/views/activityManagement/newActivityList/index.vue new file mode 100644 index 0000000..389ca56 --- /dev/null +++ b/src/views/activityManagement/newActivityList/index.vue @@ -0,0 +1,547 @@ + + + diff --git a/src/views/activityManagement/oneTaskList/components/addContent.vue b/src/views/activityManagement/oneTaskList/components/addContent.vue new file mode 100644 index 0000000..476a0b5 --- /dev/null +++ b/src/views/activityManagement/oneTaskList/components/addContent.vue @@ -0,0 +1,395 @@ + + + diff --git a/src/views/activityManagement/oneTaskList/index.vue b/src/views/activityManagement/oneTaskList/index.vue new file mode 100644 index 0000000..8804a03 --- /dev/null +++ b/src/views/activityManagement/oneTaskList/index.vue @@ -0,0 +1,325 @@ + + diff --git a/src/views/activityManagement/prizepoolList/components/prizeListAction.vue b/src/views/activityManagement/prizepoolList/components/prizeListAction.vue new file mode 100755 index 0000000..114334e --- /dev/null +++ b/src/views/activityManagement/prizepoolList/components/prizeListAction.vue @@ -0,0 +1,185 @@ + + + + diff --git a/src/views/activityManagement/prizepoolList/index.vue b/src/views/activityManagement/prizepoolList/index.vue new file mode 100644 index 0000000..b9d4355 --- /dev/null +++ b/src/views/activityManagement/prizepoolList/index.vue @@ -0,0 +1,156 @@ + + + diff --git a/src/views/activityManagement/redemptionCode/components/codeAction.vue b/src/views/activityManagement/redemptionCode/components/codeAction.vue new file mode 100644 index 0000000..ee2d180 --- /dev/null +++ b/src/views/activityManagement/redemptionCode/components/codeAction.vue @@ -0,0 +1,399 @@ + + + + diff --git a/src/views/activityManagement/redemptionCode/index.vue b/src/views/activityManagement/redemptionCode/index.vue new file mode 100644 index 0000000..e14a807 --- /dev/null +++ b/src/views/activityManagement/redemptionCode/index.vue @@ -0,0 +1,488 @@ + + + diff --git a/src/views/activityManagement/redemptionConfiguration/components/typeAction.vue b/src/views/activityManagement/redemptionConfiguration/components/typeAction.vue new file mode 100644 index 0000000..ad54293 --- /dev/null +++ b/src/views/activityManagement/redemptionConfiguration/components/typeAction.vue @@ -0,0 +1,249 @@ + + + + diff --git a/src/views/activityManagement/redemptionConfiguration/index.vue b/src/views/activityManagement/redemptionConfiguration/index.vue new file mode 100644 index 0000000..00a5762 --- /dev/null +++ b/src/views/activityManagement/redemptionConfiguration/index.vue @@ -0,0 +1,171 @@ + + + diff --git a/src/views/activityManagement/redemptionLog/index.vue b/src/views/activityManagement/redemptionLog/index.vue new file mode 100644 index 0000000..f28bfa9 --- /dev/null +++ b/src/views/activityManagement/redemptionLog/index.vue @@ -0,0 +1,239 @@ + + + diff --git a/src/views/activityManagement/redemptionPrize/components/prizeAction.vue b/src/views/activityManagement/redemptionPrize/components/prizeAction.vue new file mode 100644 index 0000000..1465e26 --- /dev/null +++ b/src/views/activityManagement/redemptionPrize/components/prizeAction.vue @@ -0,0 +1,453 @@ + + + + diff --git a/src/views/activityManagement/redemptionPrize/index.vue b/src/views/activityManagement/redemptionPrize/index.vue new file mode 100644 index 0000000..50d4639 --- /dev/null +++ b/src/views/activityManagement/redemptionPrize/index.vue @@ -0,0 +1,429 @@ + + + diff --git a/src/views/activityManagement/tenderActivity/index.vue b/src/views/activityManagement/tenderActivity/index.vue new file mode 100644 index 0000000..4953b8e --- /dev/null +++ b/src/views/activityManagement/tenderActivity/index.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/views/activityManagement/webActivity/components/activeAction.vue b/src/views/activityManagement/webActivity/components/activeAction.vue new file mode 100755 index 0000000..e5eeff9 --- /dev/null +++ b/src/views/activityManagement/webActivity/components/activeAction.vue @@ -0,0 +1,158 @@ + + + + diff --git a/src/views/activityManagement/webActivity/index.vue b/src/views/activityManagement/webActivity/index.vue new file mode 100755 index 0000000..80330f9 --- /dev/null +++ b/src/views/activityManagement/webActivity/index.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/views/actressManagement/actressList/index.vue b/src/views/actressManagement/actressList/index.vue new file mode 100644 index 0000000..9a7212d --- /dev/null +++ b/src/views/actressManagement/actressList/index.vue @@ -0,0 +1,387 @@ + + + diff --git a/src/views/administrators/adminList/components/addAdmin.vue b/src/views/administrators/adminList/components/addAdmin.vue new file mode 100755 index 0000000..f1c1c05 --- /dev/null +++ b/src/views/administrators/adminList/components/addAdmin.vue @@ -0,0 +1,276 @@ + + + + + diff --git a/src/views/administrators/adminList/index.vue b/src/views/administrators/adminList/index.vue new file mode 100755 index 0000000..6695bb0 --- /dev/null +++ b/src/views/administrators/adminList/index.vue @@ -0,0 +1,226 @@ + + + diff --git a/src/views/administrators/adminLog/cmoponents/editLog.vue b/src/views/administrators/adminLog/cmoponents/editLog.vue new file mode 100644 index 0000000..e0ffe38 --- /dev/null +++ b/src/views/administrators/adminLog/cmoponents/editLog.vue @@ -0,0 +1,98 @@ + + + \ No newline at end of file diff --git a/src/views/administrators/adminLog/components/editLog.vue b/src/views/administrators/adminLog/components/editLog.vue new file mode 100755 index 0000000..e0ffe38 --- /dev/null +++ b/src/views/administrators/adminLog/components/editLog.vue @@ -0,0 +1,98 @@ + + + \ No newline at end of file diff --git a/src/views/administrators/adminLog/index.vue b/src/views/administrators/adminLog/index.vue new file mode 100755 index 0000000..3939b3f --- /dev/null +++ b/src/views/administrators/adminLog/index.vue @@ -0,0 +1,227 @@ + + diff --git a/src/views/advertisingManagement/adList/components/addPage.vue b/src/views/advertisingManagement/adList/components/addPage.vue new file mode 100644 index 0000000..63a7830 --- /dev/null +++ b/src/views/advertisingManagement/adList/components/addPage.vue @@ -0,0 +1,542 @@ + + + + diff --git a/src/views/advertisingManagement/adList/index.vue b/src/views/advertisingManagement/adList/index.vue new file mode 100755 index 0000000..0b51f52 --- /dev/null +++ b/src/views/advertisingManagement/adList/index.vue @@ -0,0 +1,278 @@ + + + + diff --git a/src/views/advertisingManagement/announcementManagement/components/annouAction.vue b/src/views/advertisingManagement/announcementManagement/components/annouAction.vue new file mode 100755 index 0000000..e6704b3 --- /dev/null +++ b/src/views/advertisingManagement/announcementManagement/components/annouAction.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/views/advertisingManagement/announcementManagement/index.vue b/src/views/advertisingManagement/announcementManagement/index.vue new file mode 100755 index 0000000..c026364 --- /dev/null +++ b/src/views/advertisingManagement/announcementManagement/index.vue @@ -0,0 +1,184 @@ + + + diff --git a/src/views/advertisingManagement/clickLog/index.vue b/src/views/advertisingManagement/clickLog/index.vue new file mode 100755 index 0000000..59fb085 --- /dev/null +++ b/src/views/advertisingManagement/clickLog/index.vue @@ -0,0 +1,167 @@ + + + diff --git a/src/views/agentDistrictProvider/adReview/components/check.vue b/src/views/agentDistrictProvider/adReview/components/check.vue new file mode 100644 index 0000000..1cadff4 --- /dev/null +++ b/src/views/agentDistrictProvider/adReview/components/check.vue @@ -0,0 +1,217 @@ + + + + diff --git a/src/views/agentDistrictProvider/adReview/index.vue b/src/views/agentDistrictProvider/adReview/index.vue new file mode 100644 index 0000000..462a316 --- /dev/null +++ b/src/views/agentDistrictProvider/adReview/index.vue @@ -0,0 +1,267 @@ + + + + diff --git a/src/views/agentDistrictProvider/dayTable/define.js b/src/views/agentDistrictProvider/dayTable/define.js new file mode 100644 index 0000000..9e2e9fb --- /dev/null +++ b/src/views/agentDistrictProvider/dayTable/define.js @@ -0,0 +1,65 @@ +export var LableMap = { + sumDate: "日期", + districtCode: "商区码", + discType: "商区类型", + name: "账号", + remark: "备注", + newUIDCount: "注册数", + newDirectUIDCount: "直推注册数", + newFissionUIDCount: "分裂注册数", + userFissionRatio: "用户分裂率", + buyVIPCount: "VIP数", + directBuyVIPCount: "直推VIP数", + fissionBuyVIPCount: "分裂VIP数", + buyVIPAmount: "VIP金额(元)", + directBuyVIPAmount: "直推VIP金额(元)", + fissionBuyVIPAmount: "分裂VIP金额(元)", + buyVIPUIDCount: "VIP用户数", + directBuyVIPUIDCount: "直推VIP用户数", + fissionBuyVIPUIDCount: "分裂VIP用户数", + buyVIDTaxAmount: "视频收益(元)", + directBuyVIDTaxAmount: "直推视频收益(元)", + fissionBuyVIDTaxAmount: "分裂视频收益(元)", + consume: "消费(元)", + directConsume: "直推消费(元)", + fissionConsume: "分裂消费(元)", + arpu: "ARPU", + directARPU: "直推ARPU", + fissionARPU: "分裂ARPU", + newAndRechargeOrderCount: "新增充值单数", + newAndRechargeOrderYuan: "新增充值金额(元)", + rechargeCompleteOrderCount: "充值单数", + directRechargePaidOrderCount: "直推充值单数", + fissionRechargePaidOrderCount: "分裂充值单数", + rechargeCompleteOrderAmount: "充值金额(元)", + directRechargePaidAmount: "直推充值(元)", + fissionRechargePaidAmount: "分裂充值(元)", + withDrawOrderCount: "总提现单数", + withDrawOrderAmount: "总提现(元)", + withDrawCompleteOrderCount: "完成提现单数", + withDrawCompleteOrderAmount: "完成提现(元)", + withDrawPaidOrderCount: "出款单数", + directWithDrawPaidOrderCount: "直推出款单数", + fissionWithDrawPaidOrderCount: "分裂出款单数", + withDrawPaidAmount: "出款金额(元)", + directWithDrawPaidAmount: "直推出款(元)", + fissionWithDrawPaidAmount: "分裂出款(元)", + visitUIDCount: "日活跃", + directVisitUIDCount: "直推日活跃", + fissionVisitUIDCount: "分裂日活跃", + nextDayRetainUIDRatio: "次日留存率", + day3RetainUIDRatio: "3日留存率", + day7RetainUIDRatio: "7日留存率", + day15RetainUIDRatio: "15日留存率", + day30RetainUIDRatio: "30日留存率", + directNextDayRetainUIDRatio: "直推次日留存率", + directDay3RetainUIDRatio: "直推3日留存率", + directDay7RetainUIDRatio: "直推7日留存率", + directDay15RetainUIDRatio: "直推15日留存率", + directDay30RetainUIDRatio: "直推30日留存率", + fissionNextDayRetainUIDRatio: "分裂次日留存率", + fissionDay3RetainUIDRatio: "分裂3日留存率", + fissionDay7RetainUIDRatio: "分裂7日留存率", + fissionDay15RetainUIDRatio: "分裂15日留存率", + fissionDay30RetainUIDRatio: "分裂30日留存率", +}; diff --git a/src/views/agentDistrictProvider/dayTable/index.vue b/src/views/agentDistrictProvider/dayTable/index.vue new file mode 100644 index 0000000..f0c9d6d --- /dev/null +++ b/src/views/agentDistrictProvider/dayTable/index.vue @@ -0,0 +1,1006 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/addDistrict.vue b/src/views/agentDistrictProvider/districtProvider/components/addDistrict.vue new file mode 100644 index 0000000..d4f712a --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/addDistrict.vue @@ -0,0 +1,246 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/addSubDistrict.vue b/src/views/agentDistrictProvider/districtProvider/components/addSubDistrict.vue new file mode 100644 index 0000000..b6f5ff2 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/addSubDistrict.vue @@ -0,0 +1,170 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/components/baseCfg.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/baseCfg.vue new file mode 100644 index 0000000..3f7674d --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/baseCfg.vue @@ -0,0 +1,211 @@ + + + + + + \ No newline at end of file diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/components/ldyCfg.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/ldyCfg.vue new file mode 100644 index 0000000..7a7debd --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/ldyCfg.vue @@ -0,0 +1,162 @@ + + + + + + \ No newline at end of file diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/components/rechargeCfg.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/rechargeCfg.vue new file mode 100644 index 0000000..48ae96e --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/rechargeCfg.vue @@ -0,0 +1,353 @@ + + + + + + \ No newline at end of file diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/components/userCfg.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/userCfg.vue new file mode 100644 index 0000000..cb19910 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/components/userCfg.vue @@ -0,0 +1,343 @@ + + + + + + \ No newline at end of file diff --git a/src/views/agentDistrictProvider/districtProvider/components/editPage/editDistrict.vue b/src/views/agentDistrictProvider/districtProvider/components/editPage/editDistrict.vue new file mode 100755 index 0000000..2b8e871 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/editPage/editDistrict.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/linkPopup.vue b/src/views/agentDistrictProvider/districtProvider/components/linkPopup.vue new file mode 100644 index 0000000..7c9aa07 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/linkPopup.vue @@ -0,0 +1,53 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/payHisPopup.vue b/src/views/agentDistrictProvider/districtProvider/components/payHisPopup.vue new file mode 100644 index 0000000..2a02c2e --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/payHisPopup.vue @@ -0,0 +1,197 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/rechagePopup.vue b/src/views/agentDistrictProvider/districtProvider/components/rechagePopup.vue new file mode 100644 index 0000000..87abee6 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/rechagePopup.vue @@ -0,0 +1,308 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/statDialy.vue b/src/views/agentDistrictProvider/districtProvider/components/statDialy.vue new file mode 100644 index 0000000..7025a03 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/statDialy.vue @@ -0,0 +1,872 @@ + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/statSettlement.vue b/src/views/agentDistrictProvider/districtProvider/components/statSettlement.vue new file mode 100644 index 0000000..4e116e5 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/statSettlement.vue @@ -0,0 +1,260 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/subDisc.vue b/src/views/agentDistrictProvider/districtProvider/components/subDisc.vue new file mode 100644 index 0000000..04021f3 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/subDisc.vue @@ -0,0 +1,462 @@ + + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/components/widthdrawPopup.vue b/src/views/agentDistrictProvider/districtProvider/components/widthdrawPopup.vue new file mode 100644 index 0000000..439e304 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/components/widthdrawPopup.vue @@ -0,0 +1,345 @@ + + + + diff --git a/src/views/agentDistrictProvider/districtProvider/index.vue b/src/views/agentDistrictProvider/districtProvider/index.vue new file mode 100755 index 0000000..729e5d2 --- /dev/null +++ b/src/views/agentDistrictProvider/districtProvider/index.vue @@ -0,0 +1,522 @@ + + + + + diff --git a/src/views/agentDistrictProvider/domainList/components/editPage.vue b/src/views/agentDistrictProvider/domainList/components/editPage.vue new file mode 100644 index 0000000..763807f --- /dev/null +++ b/src/views/agentDistrictProvider/domainList/components/editPage.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/views/agentDistrictProvider/domainList/index.vue b/src/views/agentDistrictProvider/domainList/index.vue new file mode 100644 index 0000000..6f92352 --- /dev/null +++ b/src/views/agentDistrictProvider/domainList/index.vue @@ -0,0 +1,179 @@ + + + + + + diff --git a/src/views/agentDistrictProvider/manageAuthrity/components/roleAction.vue b/src/views/agentDistrictProvider/manageAuthrity/components/roleAction.vue new file mode 100644 index 0000000..15d921f --- /dev/null +++ b/src/views/agentDistrictProvider/manageAuthrity/components/roleAction.vue @@ -0,0 +1,694 @@ + + + diff --git a/src/views/agentDistrictProvider/manageAuthrity/index.vue b/src/views/agentDistrictProvider/manageAuthrity/index.vue new file mode 100644 index 0000000..964b123 --- /dev/null +++ b/src/views/agentDistrictProvider/manageAuthrity/index.vue @@ -0,0 +1,277 @@ + + + diff --git a/src/views/agentDistrictProvider/monthTable/define.js b/src/views/agentDistrictProvider/monthTable/define.js new file mode 100644 index 0000000..50227ab --- /dev/null +++ b/src/views/agentDistrictProvider/monthTable/define.js @@ -0,0 +1,11 @@ +export var LableMap = { + remark: "备注", + discType: "商区类型", + disc: "商区", + name: "账号", + totalNewUser: "本月注册", + avgVisit: "日均活跃", + mp: "本月业绩", + avgARPU: "日均", + sumAvgARPU: "累计日均", +}; diff --git a/src/views/agentDistrictProvider/monthTable/index.vue b/src/views/agentDistrictProvider/monthTable/index.vue new file mode 100644 index 0000000..5a6bcae --- /dev/null +++ b/src/views/agentDistrictProvider/monthTable/index.vue @@ -0,0 +1,390 @@ + + + + + + diff --git a/src/views/agentManagement/domainManagement/components/addTag.vue b/src/views/agentManagement/domainManagement/components/addTag.vue new file mode 100755 index 0000000..5b69b0f --- /dev/null +++ b/src/views/agentManagement/domainManagement/components/addTag.vue @@ -0,0 +1,97 @@ + + + + diff --git a/src/views/agentManagement/domainManagement/index.vue b/src/views/agentManagement/domainManagement/index.vue new file mode 100755 index 0000000..57b975e --- /dev/null +++ b/src/views/agentManagement/domainManagement/index.vue @@ -0,0 +1,124 @@ + + diff --git a/src/views/agentManagement/extensionLog/index.vue b/src/views/agentManagement/extensionLog/index.vue new file mode 100755 index 0000000..fe44f66 --- /dev/null +++ b/src/views/agentManagement/extensionLog/index.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/views/agentManagement/promotionHierarchy/index.vue b/src/views/agentManagement/promotionHierarchy/index.vue new file mode 100755 index 0000000..fb44cd0 --- /dev/null +++ b/src/views/agentManagement/promotionHierarchy/index.vue @@ -0,0 +1,112 @@ + + + diff --git a/src/views/agentManagement/proxyList/components/detailRecord.vue b/src/views/agentManagement/proxyList/components/detailRecord.vue new file mode 100755 index 0000000..8d027b6 --- /dev/null +++ b/src/views/agentManagement/proxyList/components/detailRecord.vue @@ -0,0 +1,153 @@ + + + diff --git a/src/views/agentManagement/proxyList/index.vue b/src/views/agentManagement/proxyList/index.vue new file mode 100755 index 0000000..4993325 --- /dev/null +++ b/src/views/agentManagement/proxyList/index.vue @@ -0,0 +1,142 @@ + + diff --git a/src/views/aiManagement/AIDrawList/components/EditStatus.vue b/src/views/aiManagement/AIDrawList/components/EditStatus.vue new file mode 100644 index 0000000..2f6a827 --- /dev/null +++ b/src/views/aiManagement/AIDrawList/components/EditStatus.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/views/aiManagement/AIDrawList/components/TagEdit.vue b/src/views/aiManagement/AIDrawList/components/TagEdit.vue new file mode 100644 index 0000000..bf86433 --- /dev/null +++ b/src/views/aiManagement/AIDrawList/components/TagEdit.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/views/aiManagement/AIDrawList/config.js b/src/views/aiManagement/AIDrawList/config.js new file mode 100644 index 0000000..e3ef80a --- /dev/null +++ b/src/views/aiManagement/AIDrawList/config.js @@ -0,0 +1,25 @@ + +export const statusOptions = [ + { label: "下单成功", value: 1, type: "" }, + { label: "已提交", value: 2, type: "info" }, + { label: "生成成功", value: 3, type: "success" }, + { label: "生成失败", value: 4, type: "danger" }, + { label: "退款", value: 5, type: "warning" }, +]; + +export const findLabel = (val, opts) => { + const cur = opts.find((v) => v.value === val); + if (cur) return cur.label; + return "-"; +}; + +export const findStatusLabel = (val) => { + const label = findLabel(val, statusOptions); + return label; +}; + +export const findStatusType = (val) => { + const cur = statusOptions.find((v) => v.value === val); + if (cur) return cur.type; + return ""; +}; diff --git a/src/views/aiManagement/AIDrawList/index.vue b/src/views/aiManagement/AIDrawList/index.vue new file mode 100644 index 0000000..666d126 --- /dev/null +++ b/src/views/aiManagement/AIDrawList/index.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/src/views/aiManagement/AiTemplate/editOrAdd.vue b/src/views/aiManagement/AiTemplate/editOrAdd.vue new file mode 100644 index 0000000..9fe46d9 --- /dev/null +++ b/src/views/aiManagement/AiTemplate/editOrAdd.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/views/aiManagement/AiTemplate/index.vue b/src/views/aiManagement/AiTemplate/index.vue new file mode 100644 index 0000000..7dbf468 --- /dev/null +++ b/src/views/aiManagement/AiTemplate/index.vue @@ -0,0 +1,150 @@ + + \ No newline at end of file diff --git a/src/views/aiManagement/aiChangeFaceImgList/components/aiPreviewPicture.vue b/src/views/aiManagement/aiChangeFaceImgList/components/aiPreviewPicture.vue new file mode 100644 index 0000000..5ecf346 --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceImgList/components/aiPreviewPicture.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/views/aiManagement/aiChangeFaceImgList/components/previewPicture.vue b/src/views/aiManagement/aiChangeFaceImgList/components/previewPicture.vue new file mode 100644 index 0000000..922489d --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceImgList/components/previewPicture.vue @@ -0,0 +1,123 @@ + + + diff --git a/src/views/aiManagement/aiChangeFaceImgList/index.vue b/src/views/aiManagement/aiChangeFaceImgList/index.vue new file mode 100644 index 0000000..55a4ab5 --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceImgList/index.vue @@ -0,0 +1,481 @@ + + + + + diff --git a/src/views/aiManagement/aiChangeFaceList/components/previewPicture.vue b/src/views/aiManagement/aiChangeFaceList/components/previewPicture.vue new file mode 100644 index 0000000..5069bee --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceList/components/previewPicture.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/aiManagement/aiChangeFaceList/index.vue b/src/views/aiManagement/aiChangeFaceList/index.vue new file mode 100644 index 0000000..556a0bb --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceList/index.vue @@ -0,0 +1,728 @@ + + + diff --git a/src/views/aiManagement/aiChangeFaceStencil/index.vue b/src/views/aiManagement/aiChangeFaceStencil/index.vue new file mode 100644 index 0000000..e8d7a44 --- /dev/null +++ b/src/views/aiManagement/aiChangeFaceStencil/index.vue @@ -0,0 +1,973 @@ + + + diff --git a/src/views/aiManagement/aiImageToVideoList/components/EditStatus.vue b/src/views/aiManagement/aiImageToVideoList/components/EditStatus.vue new file mode 100644 index 0000000..2f6a827 --- /dev/null +++ b/src/views/aiManagement/aiImageToVideoList/components/EditStatus.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/views/aiManagement/aiImageToVideoList/components/TagEdit.vue b/src/views/aiManagement/aiImageToVideoList/components/TagEdit.vue new file mode 100644 index 0000000..bf86433 --- /dev/null +++ b/src/views/aiManagement/aiImageToVideoList/components/TagEdit.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/views/aiManagement/aiImageToVideoList/config.js b/src/views/aiManagement/aiImageToVideoList/config.js new file mode 100644 index 0000000..9e1db3f --- /dev/null +++ b/src/views/aiManagement/aiImageToVideoList/config.js @@ -0,0 +1,72 @@ +import API from "@/api"; +export const statusOptions = [ + { label: "下单成功", value: 1, type: "" }, + { label: "已提交", value: 2, type: "info" }, + { label: "生成成功", value: 3, type: "success" }, + { label: "生成失败", value: 4, type: "danger" }, + { label: "退款", value: 5, type: "warning" }, +]; + +export const statusAiPlazaListOptions = [ + { label: "待审核", value: 0, type: "warning" }, + { label: "通过", value: 1, type: "success" }, + { label: "拒绝", value: 2, type: "danger" }, + { label: "下架", value: 3, type: "info" }, +]; +export const typeOptions = [ + { label: "ai图片换脸", value: 1, type: "success" }, + { label: "ai视频换脸", value: 2, type: "danger" }, + { label: "ai脱衣", value: 3, type: "warning" }, + { label: "ai图生视频", value: 4, type: "info" }, + { label: "ai绘画", value: 5, type: "danger" }, +]; + +export const sceneTypes = [ + { label: "掀衣露乳", value: 0 }, + { label: "男人撕衣", value: 1 }, + { label: "神屌射脸", value: 2 }, + { label: "阿黑颜", value: 3 }, + { label: "接吻", value: 4 }, + { label: "吸奶", value: 5 }, + { label: "露逼", value: 6 }, +]; +export const findLabel = (val, opts) => { + const cur = opts.find((v) => v.value === val); + if (cur) return cur.label; + return "-"; +}; + +export const findStatusLabel = (val) => { + const label = findLabel(val, statusOptions); + return label; +}; + +export const findStatusType = (val) => { + const cur = statusOptions.find((v) => v.value === val); + if (cur) return cur.type; + return ""; +}; + +export const sceneTypeMixin = { + data() { + return { + sceneTypes, + }; + }, + mounted() { + this.syncAllScene(); + }, + methods: { + async syncAllScene() { + try { + const r = await API.getAllScene(); + this.sceneTypes = (r.data || []).map((it) => ({ + ...it, + label: it.name, + })); + } catch (error) { + console.error("syncAllScene error:", error); + } + }, + }, +}; diff --git a/src/views/aiManagement/aiImageToVideoList/index.vue b/src/views/aiManagement/aiImageToVideoList/index.vue new file mode 100644 index 0000000..a4463fb --- /dev/null +++ b/src/views/aiManagement/aiImageToVideoList/index.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/views/aiManagement/aiNovelList/index.vue b/src/views/aiManagement/aiNovelList/index.vue new file mode 100644 index 0000000..b21e3e8 --- /dev/null +++ b/src/views/aiManagement/aiNovelList/index.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/src/views/aiManagement/aiPlazaList/index.vue b/src/views/aiManagement/aiPlazaList/index.vue new file mode 100644 index 0000000..ce5b5cc --- /dev/null +++ b/src/views/aiManagement/aiPlazaList/index.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/src/views/aiManagement/aiTradeList/components/aiPreviewPicture.vue b/src/views/aiManagement/aiTradeList/components/aiPreviewPicture.vue new file mode 100644 index 0000000..5ecf346 --- /dev/null +++ b/src/views/aiManagement/aiTradeList/components/aiPreviewPicture.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/views/aiManagement/aiTradeList/components/previewPicture.vue b/src/views/aiManagement/aiTradeList/components/previewPicture.vue new file mode 100644 index 0000000..26428a7 --- /dev/null +++ b/src/views/aiManagement/aiTradeList/components/previewPicture.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/aiManagement/aiTradeList/index.vue b/src/views/aiManagement/aiTradeList/index.vue new file mode 100644 index 0000000..c5d3540 --- /dev/null +++ b/src/views/aiManagement/aiTradeList/index.vue @@ -0,0 +1,682 @@ + + + + + diff --git a/src/views/aiManagement/aimatev2OrderLogs/index.vue b/src/views/aiManagement/aimatev2OrderLogs/index.vue new file mode 100644 index 0000000..419e999 --- /dev/null +++ b/src/views/aiManagement/aimatev2OrderLogs/index.vue @@ -0,0 +1,202 @@ + + + diff --git a/src/views/aiManagement/components/UpdateAiPlaza.vue b/src/views/aiManagement/components/UpdateAiPlaza.vue new file mode 100644 index 0000000..375716e --- /dev/null +++ b/src/views/aiManagement/components/UpdateAiPlaza.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/views/aiManagement/components/VideoPlayIcon.vue b/src/views/aiManagement/components/VideoPlayIcon.vue new file mode 100644 index 0000000..24c1031 --- /dev/null +++ b/src/views/aiManagement/components/VideoPlayIcon.vue @@ -0,0 +1,33 @@ + + + + diff --git a/src/views/aiManagement/components/preview-video.vue b/src/views/aiManagement/components/preview-video.vue new file mode 100644 index 0000000..69c07e0 --- /dev/null +++ b/src/views/aiManagement/components/preview-video.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/views/animationManage/acgVidResCfg/components/preview-video.vue b/src/views/animationManage/acgVidResCfg/components/preview-video.vue new file mode 100644 index 0000000..ab85fdb --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/components/preview-video.vue @@ -0,0 +1,126 @@ + + + + + \ No newline at end of file diff --git a/src/views/animationManage/acgVidResCfg/components/previewPicture.vue b/src/views/animationManage/acgVidResCfg/components/previewPicture.vue new file mode 100644 index 0000000..d6c37e1 --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/components/previewPicture.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/views/animationManage/acgVidResCfg/components/subsetMediaList.vue b/src/views/animationManage/acgVidResCfg/components/subsetMediaList.vue new file mode 100755 index 0000000..b7b75d4 --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/components/subsetMediaList.vue @@ -0,0 +1,883 @@ + + + diff --git a/src/views/animationManage/acgVidResCfg/index.vue b/src/views/animationManage/acgVidResCfg/index.vue new file mode 100644 index 0000000..a32153d --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/index.vue @@ -0,0 +1,772 @@ + + + + + diff --git a/src/views/animationManage/animeContentList/index.vue b/src/views/animationManage/animeContentList/index.vue new file mode 100644 index 0000000..23a2d7d --- /dev/null +++ b/src/views/animationManage/animeContentList/index.vue @@ -0,0 +1,749 @@ + + + diff --git a/src/views/animationManage/animeList/components/preview-media.vue b/src/views/animationManage/animeList/components/preview-media.vue new file mode 100755 index 0000000..d920c0b --- /dev/null +++ b/src/views/animationManage/animeList/components/preview-media.vue @@ -0,0 +1,1500 @@ + + + + diff --git a/src/views/animationManage/animeList/components/updateFreeEpisodePopup.vue b/src/views/animationManage/animeList/components/updateFreeEpisodePopup.vue new file mode 100644 index 0000000..8c14a2d --- /dev/null +++ b/src/views/animationManage/animeList/components/updateFreeEpisodePopup.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/views/animationManage/animeList/components/updatePricePopup.vue b/src/views/animationManage/animeList/components/updatePricePopup.vue new file mode 100644 index 0000000..d66e8fb --- /dev/null +++ b/src/views/animationManage/animeList/components/updatePricePopup.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/views/animationManage/animeList/components/updateTagsPopup.vue b/src/views/animationManage/animeList/components/updateTagsPopup.vue new file mode 100644 index 0000000..6a475cd --- /dev/null +++ b/src/views/animationManage/animeList/components/updateTagsPopup.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/animationManage/animeList/index.vue b/src/views/animationManage/animeList/index.vue new file mode 100644 index 0000000..0887efa --- /dev/null +++ b/src/views/animationManage/animeList/index.vue @@ -0,0 +1,2337 @@ + + + diff --git a/src/views/animationManage/animeTagsList/index.vue b/src/views/animationManage/animeTagsList/index.vue new file mode 100644 index 0000000..7867075 --- /dev/null +++ b/src/views/animationManage/animeTagsList/index.vue @@ -0,0 +1,764 @@ + + + diff --git a/src/views/animationManage/bulkUpload/addMedia.vue b/src/views/animationManage/bulkUpload/addMedia.vue new file mode 100644 index 0000000..fd73ab1 --- /dev/null +++ b/src/views/animationManage/bulkUpload/addMedia.vue @@ -0,0 +1,890 @@ + + + + + diff --git a/src/views/animationManage/bulkUpload/index.vue b/src/views/animationManage/bulkUpload/index.vue new file mode 100644 index 0000000..4e907a7 --- /dev/null +++ b/src/views/animationManage/bulkUpload/index.vue @@ -0,0 +1,458 @@ + + + + diff --git a/src/views/animationManage/latitudeList/index.vue b/src/views/animationManage/latitudeList/index.vue new file mode 100644 index 0000000..8bcecc6 --- /dev/null +++ b/src/views/animationManage/latitudeList/index.vue @@ -0,0 +1,486 @@ + + + diff --git a/src/views/animationManage/recommendList/components/previewPicture.vue b/src/views/animationManage/recommendList/components/previewPicture.vue new file mode 100644 index 0000000..f7de0c6 --- /dev/null +++ b/src/views/animationManage/recommendList/components/previewPicture.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/views/animationManage/recommendList/index.vue b/src/views/animationManage/recommendList/index.vue new file mode 100644 index 0000000..35fc7b8 --- /dev/null +++ b/src/views/animationManage/recommendList/index.vue @@ -0,0 +1,1061 @@ + + + diff --git a/src/views/animationManage/recommendSignature/components/addTag.vue b/src/views/animationManage/recommendSignature/components/addTag.vue new file mode 100755 index 0000000..97d710c --- /dev/null +++ b/src/views/animationManage/recommendSignature/components/addTag.vue @@ -0,0 +1,293 @@ + + + + diff --git a/src/views/animationManage/recommendSignature/index.vue b/src/views/animationManage/recommendSignature/index.vue new file mode 100644 index 0000000..2a92a0f --- /dev/null +++ b/src/views/animationManage/recommendSignature/index.vue @@ -0,0 +1,296 @@ + + diff --git a/src/views/animationManage/subsetBatchUpdList/addMedia.vue b/src/views/animationManage/subsetBatchUpdList/addMedia.vue new file mode 100644 index 0000000..7ff450a --- /dev/null +++ b/src/views/animationManage/subsetBatchUpdList/addMedia.vue @@ -0,0 +1,503 @@ + + + + + diff --git a/src/views/animationManage/subsetBatchUpdList/index.vue b/src/views/animationManage/subsetBatchUpdList/index.vue new file mode 100644 index 0000000..d5d2e1d --- /dev/null +++ b/src/views/animationManage/subsetBatchUpdList/index.vue @@ -0,0 +1,461 @@ + + + + diff --git a/src/views/animationManage/taskList/components/previewPicture.vue b/src/views/animationManage/taskList/components/previewPicture.vue new file mode 100644 index 0000000..de34e94 --- /dev/null +++ b/src/views/animationManage/taskList/components/previewPicture.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/views/animationManage/taskList/index.vue b/src/views/animationManage/taskList/index.vue new file mode 100644 index 0000000..5ce6678 --- /dev/null +++ b/src/views/animationManage/taskList/index.vue @@ -0,0 +1,713 @@ + + + diff --git a/src/views/avcomment/avCommentConfig/components/addImage.vue b/src/views/avcomment/avCommentConfig/components/addImage.vue new file mode 100755 index 0000000..d784aa5 --- /dev/null +++ b/src/views/avcomment/avCommentConfig/components/addImage.vue @@ -0,0 +1,94 @@ + + + + + \ No newline at end of file diff --git a/src/views/avcomment/avCommentConfig/components/look.vue b/src/views/avcomment/avCommentConfig/components/look.vue new file mode 100644 index 0000000..e5dd32c --- /dev/null +++ b/src/views/avcomment/avCommentConfig/components/look.vue @@ -0,0 +1,142 @@ + + + + \ No newline at end of file diff --git a/src/views/avcomment/avCommentConfig/index.vue b/src/views/avcomment/avCommentConfig/index.vue new file mode 100755 index 0000000..bf8ea31 --- /dev/null +++ b/src/views/avcomment/avCommentConfig/index.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/views/avcomment/list/components/edit-video.vue b/src/views/avcomment/list/components/edit-video.vue new file mode 100755 index 0000000..5f21de1 --- /dev/null +++ b/src/views/avcomment/list/components/edit-video.vue @@ -0,0 +1,357 @@ + + + + + diff --git a/src/views/avcomment/list/components/look.vue b/src/views/avcomment/list/components/look.vue new file mode 100644 index 0000000..3cb4304 --- /dev/null +++ b/src/views/avcomment/list/components/look.vue @@ -0,0 +1,78 @@ + + + + \ No newline at end of file diff --git a/src/views/avcomment/list/components/preview-video.vue b/src/views/avcomment/list/components/preview-video.vue new file mode 100644 index 0000000..c40bcba --- /dev/null +++ b/src/views/avcomment/list/components/preview-video.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/views/avcomment/list/index.vue b/src/views/avcomment/list/index.vue new file mode 100755 index 0000000..2434e61 --- /dev/null +++ b/src/views/avcomment/list/index.vue @@ -0,0 +1,314 @@ + + + + diff --git a/src/views/businessmanManagement/balanceList/index.vue b/src/views/businessmanManagement/balanceList/index.vue new file mode 100644 index 0000000..8ed54cb --- /dev/null +++ b/src/views/businessmanManagement/balanceList/index.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/businessmanManagement/businessmanList/components/addOrDebitScore.vue b/src/views/businessmanManagement/businessmanList/components/addOrDebitScore.vue new file mode 100644 index 0000000..69a2a5c --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/components/addOrDebitScore.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/views/businessmanManagement/businessmanList/components/editBill.vue b/src/views/businessmanManagement/businessmanList/components/editBill.vue new file mode 100644 index 0000000..59372b9 --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/components/editBill.vue @@ -0,0 +1,225 @@ + + + diff --git a/src/views/businessmanManagement/businessmanList/components/queryInfo.vue b/src/views/businessmanManagement/businessmanList/components/queryInfo.vue new file mode 100644 index 0000000..b4af392 --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/components/queryInfo.vue @@ -0,0 +1,130 @@ + + diff --git a/src/views/businessmanManagement/businessmanList/components/seekScore.vue b/src/views/businessmanManagement/businessmanList/components/seekScore.vue new file mode 100644 index 0000000..0e6b82b --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/components/seekScore.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/views/businessmanManagement/businessmanList/index.vue b/src/views/businessmanManagement/businessmanList/index.vue new file mode 100644 index 0000000..e99a7be --- /dev/null +++ b/src/views/businessmanManagement/businessmanList/index.vue @@ -0,0 +1,286 @@ + + + diff --git a/src/views/businessmanManagement/rechargeList/components/edit-desc.vue b/src/views/businessmanManagement/rechargeList/components/edit-desc.vue new file mode 100755 index 0000000..8fa415f --- /dev/null +++ b/src/views/businessmanManagement/rechargeList/components/edit-desc.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/businessmanManagement/rechargeList/index.vue b/src/views/businessmanManagement/rechargeList/index.vue new file mode 100755 index 0000000..28d9869 --- /dev/null +++ b/src/views/businessmanManagement/rechargeList/index.vue @@ -0,0 +1,372 @@ + + + + diff --git a/src/views/channelBackground/automaticBilling/components/editBill.vue b/src/views/channelBackground/automaticBilling/components/editBill.vue new file mode 100644 index 0000000..f137823 --- /dev/null +++ b/src/views/channelBackground/automaticBilling/components/editBill.vue @@ -0,0 +1,122 @@ + + + \ No newline at end of file diff --git a/src/views/channelBackground/automaticBilling/components/queryInfo.vue b/src/views/channelBackground/automaticBilling/components/queryInfo.vue new file mode 100644 index 0000000..b4af392 --- /dev/null +++ b/src/views/channelBackground/automaticBilling/components/queryInfo.vue @@ -0,0 +1,130 @@ + + diff --git a/src/views/channelBackground/automaticBilling/index.vue b/src/views/channelBackground/automaticBilling/index.vue new file mode 100644 index 0000000..2342bf1 --- /dev/null +++ b/src/views/channelBackground/automaticBilling/index.vue @@ -0,0 +1,230 @@ + + + + diff --git a/src/views/channelBackground/bankConfiguration/index.vue b/src/views/channelBackground/bankConfiguration/index.vue new file mode 100644 index 0000000..01171e6 --- /dev/null +++ b/src/views/channelBackground/bankConfiguration/index.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/views/channelBackground/channelBook/index.vue b/src/views/channelBackground/channelBook/index.vue new file mode 100755 index 0000000..a1e285c --- /dev/null +++ b/src/views/channelBackground/channelBook/index.vue @@ -0,0 +1,187 @@ + + + + diff --git a/src/views/channelBackground/channelDetails/index.vue b/src/views/channelBackground/channelDetails/index.vue new file mode 100755 index 0000000..2119098 --- /dev/null +++ b/src/views/channelBackground/channelDetails/index.vue @@ -0,0 +1,194 @@ + + + + diff --git a/src/views/channelManagement/channelCost/index.vue b/src/views/channelManagement/channelCost/index.vue new file mode 100755 index 0000000..0cdcc01 --- /dev/null +++ b/src/views/channelManagement/channelCost/index.vue @@ -0,0 +1,131 @@ + + diff --git a/src/views/channelManagement/channelLog/components/edit-log.vue b/src/views/channelManagement/channelLog/components/edit-log.vue new file mode 100755 index 0000000..74a4a59 --- /dev/null +++ b/src/views/channelManagement/channelLog/components/edit-log.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/views/channelManagement/channelLog/index.vue b/src/views/channelManagement/channelLog/index.vue new file mode 100755 index 0000000..3277924 --- /dev/null +++ b/src/views/channelManagement/channelLog/index.vue @@ -0,0 +1,263 @@ + + + diff --git a/src/views/channelManagement/channelManagement/components/updateTag.vue b/src/views/channelManagement/channelManagement/components/updateTag.vue new file mode 100755 index 0000000..f0e882a --- /dev/null +++ b/src/views/channelManagement/channelManagement/components/updateTag.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/views/channelManagement/channelManagement/index.vue b/src/views/channelManagement/channelManagement/index.vue new file mode 100755 index 0000000..8ca3f5d --- /dev/null +++ b/src/views/channelManagement/channelManagement/index.vue @@ -0,0 +1,106 @@ + + diff --git a/src/views/channelManagement/channelNumber/components/numberAction.vue b/src/views/channelManagement/channelNumber/components/numberAction.vue new file mode 100755 index 0000000..46661be --- /dev/null +++ b/src/views/channelManagement/channelNumber/components/numberAction.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/channelManagement/channelNumber/index.vue b/src/views/channelManagement/channelNumber/index.vue new file mode 100755 index 0000000..5a72463 --- /dev/null +++ b/src/views/channelManagement/channelNumber/index.vue @@ -0,0 +1,167 @@ + + diff --git a/src/views/channelManagement/channelProvider/components/agentAction.vue b/src/views/channelManagement/channelProvider/components/agentAction.vue new file mode 100755 index 0000000..14624fd --- /dev/null +++ b/src/views/channelManagement/channelProvider/components/agentAction.vue @@ -0,0 +1,334 @@ + + + + diff --git a/src/views/channelManagement/channelProvider/index.vue b/src/views/channelManagement/channelProvider/index.vue new file mode 100755 index 0000000..d82fa0a --- /dev/null +++ b/src/views/channelManagement/channelProvider/index.vue @@ -0,0 +1,151 @@ + + diff --git a/src/views/channelManagement/channelQuery/index.vue b/src/views/channelManagement/channelQuery/index.vue new file mode 100755 index 0000000..dea92e5 --- /dev/null +++ b/src/views/channelManagement/channelQuery/index.vue @@ -0,0 +1,241 @@ + + diff --git a/src/views/channelManagement/channelconfiguration/components/edit-configuration.vue b/src/views/channelManagement/channelconfiguration/components/edit-configuration.vue new file mode 100755 index 0000000..a8cb427 --- /dev/null +++ b/src/views/channelManagement/channelconfiguration/components/edit-configuration.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/views/channelManagement/channelconfiguration/index.vue b/src/views/channelManagement/channelconfiguration/index.vue new file mode 100755 index 0000000..3608d77 --- /dev/null +++ b/src/views/channelManagement/channelconfiguration/index.vue @@ -0,0 +1,105 @@ + + diff --git a/src/views/cinemaManagement/actressCollection/index.vue b/src/views/cinemaManagement/actressCollection/index.vue new file mode 100644 index 0000000..aa12a00 --- /dev/null +++ b/src/views/cinemaManagement/actressCollection/index.vue @@ -0,0 +1,93 @@ + + diff --git a/src/views/cinemaManagement/actressList/components/actressAction.vue b/src/views/cinemaManagement/actressList/components/actressAction.vue new file mode 100644 index 0000000..aacb22e --- /dev/null +++ b/src/views/cinemaManagement/actressList/components/actressAction.vue @@ -0,0 +1,144 @@ + + + \ No newline at end of file diff --git a/src/views/cinemaManagement/actressList/index.vue b/src/views/cinemaManagement/actressList/index.vue new file mode 100644 index 0000000..0de6324 --- /dev/null +++ b/src/views/cinemaManagement/actressList/index.vue @@ -0,0 +1,148 @@ + + diff --git a/src/views/cinemaManagement/actressRating/index.vue b/src/views/cinemaManagement/actressRating/index.vue new file mode 100644 index 0000000..af9b9fe --- /dev/null +++ b/src/views/cinemaManagement/actressRating/index.vue @@ -0,0 +1,94 @@ + + diff --git a/src/views/cinemaManagement/channelsManagement/components/channelsAction.vue b/src/views/cinemaManagement/channelsManagement/components/channelsAction.vue new file mode 100644 index 0000000..0c9a941 --- /dev/null +++ b/src/views/cinemaManagement/channelsManagement/components/channelsAction.vue @@ -0,0 +1,56 @@ + + \ No newline at end of file diff --git a/src/views/cinemaManagement/channelsManagement/index.vue b/src/views/cinemaManagement/channelsManagement/index.vue new file mode 100644 index 0000000..605060f --- /dev/null +++ b/src/views/cinemaManagement/channelsManagement/index.vue @@ -0,0 +1,146 @@ + + + diff --git a/src/views/cinemaManagement/favoriteHistory/index.vue b/src/views/cinemaManagement/favoriteHistory/index.vue new file mode 100644 index 0000000..f928ff9 --- /dev/null +++ b/src/views/cinemaManagement/favoriteHistory/index.vue @@ -0,0 +1,144 @@ + + diff --git a/src/views/cinemaManagement/movieList/components/filmAction.vue b/src/views/cinemaManagement/movieList/components/filmAction.vue new file mode 100644 index 0000000..9de7157 --- /dev/null +++ b/src/views/cinemaManagement/movieList/components/filmAction.vue @@ -0,0 +1,210 @@ + + + \ No newline at end of file diff --git a/src/views/cinemaManagement/movieList/components/recommendedPopup.vue b/src/views/cinemaManagement/movieList/components/recommendedPopup.vue new file mode 100644 index 0000000..bf1e11c --- /dev/null +++ b/src/views/cinemaManagement/movieList/components/recommendedPopup.vue @@ -0,0 +1,136 @@ + + + \ No newline at end of file diff --git a/src/views/cinemaManagement/movieList/index.vue b/src/views/cinemaManagement/movieList/index.vue new file mode 100644 index 0000000..606a1ba --- /dev/null +++ b/src/views/cinemaManagement/movieList/index.vue @@ -0,0 +1,217 @@ + + diff --git a/src/views/cinemaManagement/recommendedList/index.vue b/src/views/cinemaManagement/recommendedList/index.vue new file mode 100644 index 0000000..feb840a --- /dev/null +++ b/src/views/cinemaManagement/recommendedList/index.vue @@ -0,0 +1,145 @@ + + diff --git a/src/views/cinemaManagement/todayRecommend/components/editToday.vue b/src/views/cinemaManagement/todayRecommend/components/editToday.vue new file mode 100644 index 0000000..ce4953d --- /dev/null +++ b/src/views/cinemaManagement/todayRecommend/components/editToday.vue @@ -0,0 +1,73 @@ + + + \ No newline at end of file diff --git a/src/views/cinemaManagement/todayRecommend/index.vue b/src/views/cinemaManagement/todayRecommend/index.vue new file mode 100644 index 0000000..f5b3036 --- /dev/null +++ b/src/views/cinemaManagement/todayRecommend/index.vue @@ -0,0 +1,133 @@ + + diff --git a/src/views/cinemaManagement/watchHistory/index.vue b/src/views/cinemaManagement/watchHistory/index.vue new file mode 100644 index 0000000..2ffa3bc --- /dev/null +++ b/src/views/cinemaManagement/watchHistory/index.vue @@ -0,0 +1,145 @@ + + diff --git a/src/views/contentReview/install-styles.js b/src/views/contentReview/install-styles.js new file mode 100644 index 0000000..3d01bc0 --- /dev/null +++ b/src/views/contentReview/install-styles.js @@ -0,0 +1,5 @@ +/** + * 内容审查模块浮层样式入口(dialog / select 下拉)。 + * 在模块页面 script 中 import 一次即可,勿写入 main.js。 + */ +import "./overlays.scss"; diff --git a/src/views/contentReview/overlays.scss b/src/views/contentReview/overlays.scss new file mode 100644 index 0000000..3ac3015 --- /dev/null +++ b/src/views/contentReview/overlays.scss @@ -0,0 +1,168 @@ +/** + * 内容审查模块「挂到 body」的浮层样式(el-dialog / el-select 下拉)。 + * 仅通过 install-styles.js 在模块页面中引入,勿在 main.js 全局引入。 + * 选择器均带 cr- 前缀,不会影响其它业务弹窗。 + */ + +.cr-content-review-dialog { + border-radius: 10px; + overflow: hidden; + box-shadow: 0 16px 48px rgba(15, 23, 42, 0.14); + + .el-dialog__header { + padding: 16px 22px; + border-bottom: 1px solid #eef0f3; + background: linear-gradient(180deg, #fafbfc 0%, #f6f7f9 100%); + } + .el-dialog__title { + font-size: 16px; + font-weight: 600; + color: #111827; + line-height: 1.4; + } + .el-dialog__headerbtn { + top: 16px; + right: 18px; + .el-dialog__close { + color: #9ca3af; + font-size: 18px; + &:hover { + color: #4f46e5; + } + } + } + .el-dialog__body { + padding: 20px 22px 8px; + } + .el-dialog__footer { + padding: 14px 22px 18px; + border-top: 1px solid #eef0f3; + background: #fafbfc; + } + .el-dialog__footer .el-button--small { + min-width: 96px; + border-radius: 6px; + font-weight: 500; + padding: 9px 18px; + } + .el-dialog__footer .el-button--primary { + background: linear-gradient(180deg, #6366f1 0%, #4f46e5 100%); + border-color: #4f46e5; + box-shadow: 0 1px 2px rgba(79, 70, 229, 0.22); + &:hover, + &:focus { + background: linear-gradient(180deg, #4f46e5 0%, #4338ca 100%); + border-color: #4338ca; + } + } + .el-dialog__footer .el-button--default { + background: #fff; + border-color: #e5e7eb; + color: #4b5563; + &:hover { + border-color: #d1d5db; + color: #111827; + } + } + .el-dialog__footer .el-button--danger { + border-radius: 6px; + font-weight: 500; + } + + &.cr-issue-dialog .el-dialog__body { + max-height: calc(100vh - 200px); + overflow-y: auto; + } +} + +/* 新增/编辑词条弹窗 */ +.cr-word-form-dialog { + .el-dialog__body { + padding: 4px 22px 12px; + background: #fff; + } + .cr-form-section-title { + font-size: 13px; + font-weight: 600; + color: #374151; + margin: 18px 0 14px; + padding-left: 10px; + border-left: 3px solid #4f46e5; + line-height: 1.3; + &:first-child { + margin-top: 8px; + } + } + .el-form-item { + margin-bottom: 18px; + } + .el-form-item__label { + color: #4b5563; + font-weight: 500; + line-height: 32px; + padding-right: 14px; + } + .el-input__inner, + .el-textarea__inner { + border-radius: 6px; + border-color: #e5e7eb; + padding: 8px 12px; + color: #1f2937; + &:focus { + border-color: #4f46e5; + } + } + .el-textarea__inner { + padding: 10px 12px; + line-height: 1.55; + } + .el-select .el-input__inner { + padding-left: 12px; + padding-right: 30px; + } + .el-select .el-input .el-select__caret { + color: #9ca3af; + } + .cr-field-hint { + margin-top: 6px; + font-size: 12px; + color: #9ca3af; + line-height: 1.45; + } + .el-radio-group { + padding-top: 6px; + } + .el-radio__label { + padding-left: 8px; + color: #374151; + } +} + +/* 下拉面板(append-to-body,需 popper-class="cr-select-popper") */ +.cr-select-popper.el-select-dropdown, +.cr-select-popper.el-popper { + border-radius: 8px; + border-color: #e5e7eb; + box-shadow: 0 8px 24px rgba(15, 23, 42, 0.1); + margin-top: 4px !important; + + .el-select-dropdown__item { + padding: 0 16px; + height: 36px; + line-height: 36px; + font-size: 13px; + color: #374151; + } + .el-select-dropdown__item.hover, + .el-select-dropdown__item:hover { + background-color: #f3f4f6; + } + .el-select-dropdown__item.selected { + color: #4f46e5; + font-weight: 600; + background-color: #eef2ff; + } + .popper__arrow { + display: none; + } +} diff --git a/src/views/contentReview/reviewTask/components/IssueFields.vue b/src/views/contentReview/reviewTask/components/IssueFields.vue new file mode 100644 index 0000000..aba11f8 --- /dev/null +++ b/src/views/contentReview/reviewTask/components/IssueFields.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/src/views/contentReview/reviewTask/components/IssueHandleDialog.vue b/src/views/contentReview/reviewTask/components/IssueHandleDialog.vue new file mode 100644 index 0000000..bd27aeb --- /dev/null +++ b/src/views/contentReview/reviewTask/components/IssueHandleDialog.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/contentReview/reviewTask/detail.vue b/src/views/contentReview/reviewTask/detail.vue new file mode 100644 index 0000000..f3f09ba --- /dev/null +++ b/src/views/contentReview/reviewTask/detail.vue @@ -0,0 +1,415 @@ + + + + + diff --git a/src/views/contentReview/reviewTask/index.vue b/src/views/contentReview/reviewTask/index.vue new file mode 100644 index 0000000..eaed796 --- /dev/null +++ b/src/views/contentReview/reviewTask/index.vue @@ -0,0 +1,227 @@ + + + + + diff --git a/src/views/contentReview/sensitiveWord/components/WordFormDialog.vue b/src/views/contentReview/sensitiveWord/components/WordFormDialog.vue new file mode 100644 index 0000000..85db95c --- /dev/null +++ b/src/views/contentReview/sensitiveWord/components/WordFormDialog.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/views/contentReview/sensitiveWord/index.vue b/src/views/contentReview/sensitiveWord/index.vue new file mode 100644 index 0000000..c3038d5 --- /dev/null +++ b/src/views/contentReview/sensitiveWord/index.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/src/views/contentReview/styles.scss b/src/views/contentReview/styles.scss new file mode 100644 index 0000000..2020367 --- /dev/null +++ b/src/views/contentReview/styles.scss @@ -0,0 +1,277 @@ +/* 对齐「内容审查后台页面参考」视觉 */ +.cr-module { + min-height: 100%; + padding: 16px 20px; + background: #f3f5f8; + font-size: 13px; + color: #1f2937; + + .cr-table-actions { + margin-bottom: 10px; + ::v-deep .el-button--danger.is-plain { + border-radius: 6px; + padding: 8px 14px; + } + } + + /* ========== 按钮体系 ========== */ + ::v-deep .el-button { + font-weight: 500; + border-radius: 6px; + letter-spacing: 0.01em; + transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, + color 0.15s ease; + } + + ::v-deep .el-button--small { + padding: 8px 16px; + font-size: 13px; + line-height: 1; + } + + ::v-deep .el-button--mini { + padding: 6px 12px; + border-radius: 4px; + font-size: 12px; + } + + ::v-deep .el-button--primary { + background: linear-gradient(180deg, #6366f1 0%, #4f46e5 100%); + border-color: #4f46e5; + box-shadow: 0 1px 2px rgba(79, 70, 229, 0.22); + &:hover, + &:focus { + background: linear-gradient(180deg, #4f46e5 0%, #4338ca 100%); + border-color: #4338ca; + box-shadow: 0 2px 10px rgba(79, 70, 229, 0.32); + color: #fff; + } + &:active { + box-shadow: 0 1px 3px rgba(79, 70, 229, 0.25); + } + } + + ::v-deep .el-button--default { + background: #fff; + border-color: #e5e7eb; + color: #374151; + &:hover, + &:focus { + background: #f9fafb; + border-color: #d1d5db; + color: #111827; + } + } + + ::v-deep .el-button--danger.is-plain { + background: #fff; + border-color: #fecaca; + color: #b91c1c; + &:hover, + &:focus { + background: #fef2f2; + border-color: #f87171; + color: #991b1b; + } + } + + ::v-deep .el-button--text { + padding: 6px 10px; + border-radius: 4px; + font-weight: 500; + &:hover { + background: rgba(79, 70, 229, 0.08); + } + } + + ::v-deep .el-button--text.cr-link-danger:hover { + color: #b91c1c !important; + background: rgba(220, 38, 38, 0.08); + } + + ::v-deep .el-button [class*="el-icon-"] { + font-size: 14px; + vertical-align: -1px; + margin-right: 4px; + } + + ::v-deep .el-pagination.is-background .el-pager li:not(.disabled).active { + background-color: #4f46e5; + } + ::v-deep .el-pagination.is-background .el-pager li:not(.disabled):hover { + color: #4f46e5; + } + + /* 筛选区:输入框 / 下拉框内边距 */ + ::v-deep .el-input__inner { + padding-left: 12px; + padding-right: 12px; + border-radius: 6px; + border-color: #e5e7eb; + color: #1f2937; + &::placeholder { + color: #9ca3af; + } + &:focus { + border-color: #4f46e5; + } + } + + ::v-deep .el-select { + .el-input__inner { + padding-left: 12px; + padding-right: 30px; + } + .el-input .el-select__caret { + color: #9ca3af; + } + } +} + +.cr-page-title { + font-size: 18px; + font-weight: 600; + margin-bottom: 14px; +} + +.cr-breadcrumb { + font-size: 12px; + color: #9ca3af; + margin-bottom: 14px; + a { + color: #4f46e5; + cursor: pointer; + } +} + +.cr-card { + border-radius: 6px; + margin-bottom: 14px; + border: none; + padding-bottom: 10px; + box-sizing: border-box; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important; +} + +.cr-filter-row { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 10px; +} + +.cr-label { + font-size: 12px; + color: #6b7280; +} + +.cr-toolbar-divider { + align-self: stretch; + width: 1px; + background: #e5e7eb; + margin: 0 4px 0 8px; + min-height: 28px; +} + +.cr-filter-actions { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; + margin-left: auto; + padding-left: 16px; + border-left: 1px solid #e5e7eb; +} + +.cr-desc { + color: #6b7280; + font-size: 11px; + margin-top: 2px; +} + +.cr-tag { + display: inline-block; + padding: 2px 8px; + border-radius: 12px; + font-size: 11px; + font-weight: 600; +} +.cr-tag-blue { + background: #dbeafe; + color: #1e40af; +} +.cr-tag-green { + background: #dcfce7; + color: #166534; +} +.cr-tag-red { + background: #fee2e2; + color: #b91c1c; +} +.cr-tag-yellow { + background: #fef3c7; + color: #92400e; +} +.cr-tag-gray { + background: #e5e7eb; + color: #374151; +} + +.cr-link { + color: #4f46e5 !important; +} +.cr-link-danger { + color: #dc2626 !important; +} + +.cr-pagination { + margin-top: 12px; + text-align: right; +} + +.cr-progress { + width: 140px; + height: 6px; + background: #e5e7eb; + border-radius: 3px; + overflow: hidden; +} +.cr-progress > span { + display: block; + height: 100%; + background: #4f46e5; +} +.cr-progress-text { + font-size: 11px; + color: #6b7280; + margin-top: 2px; +} + +.cr-hit mark { + background: #fef08a; + color: #92400e; + padding: 0 2px; + border-radius: 2px; +} + +.cr-desc-cell { + white-space: pre-line; + font-size: 12px; +} + +.cr-card-title { + font-weight: 600; + margin-bottom: 12px; + padding-bottom: 10px; + border-bottom: 1px solid #f1f3f5; +} +.cr-card-title-row { + display: flex; + align-items: center; +} +.cr-card-extra { + margin-left: auto; + display: flex; + align-items: center; + gap: 8px; +} diff --git a/src/views/discountAreaManagement/discountAreaList/index.vue b/src/views/discountAreaManagement/discountAreaList/index.vue new file mode 100644 index 0000000..3eafabb --- /dev/null +++ b/src/views/discountAreaManagement/discountAreaList/index.vue @@ -0,0 +1,559 @@ + + + diff --git a/src/views/discountAreaManagement/discountAreaVideoList/index.vue b/src/views/discountAreaManagement/discountAreaVideoList/index.vue new file mode 100644 index 0000000..30842d9 --- /dev/null +++ b/src/views/discountAreaManagement/discountAreaVideoList/index.vue @@ -0,0 +1,584 @@ + + + diff --git a/src/views/fiction/audiobook/components/components/editPrice.vue b/src/views/fiction/audiobook/components/components/editPrice.vue new file mode 100644 index 0000000..6e2b81b --- /dev/null +++ b/src/views/fiction/audiobook/components/components/editPrice.vue @@ -0,0 +1,116 @@ + + + + + + + diff --git a/src/views/fiction/audiobook/components/detailPage.vue b/src/views/fiction/audiobook/components/detailPage.vue new file mode 100755 index 0000000..92dde6c --- /dev/null +++ b/src/views/fiction/audiobook/components/detailPage.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/src/views/fiction/audiobook/components/pricePage.vue b/src/views/fiction/audiobook/components/pricePage.vue new file mode 100644 index 0000000..f45deb4 --- /dev/null +++ b/src/views/fiction/audiobook/components/pricePage.vue @@ -0,0 +1,134 @@ + + + + + + + diff --git a/src/views/fiction/audiobook/components/unitPrice.vue b/src/views/fiction/audiobook/components/unitPrice.vue new file mode 100644 index 0000000..f7f1d32 --- /dev/null +++ b/src/views/fiction/audiobook/components/unitPrice.vue @@ -0,0 +1,136 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/fiction/audiobook/index.vue b/src/views/fiction/audiobook/index.vue new file mode 100644 index 0000000..9550771 --- /dev/null +++ b/src/views/fiction/audiobook/index.vue @@ -0,0 +1,422 @@ + + + + + + diff --git a/src/views/fiction/audiobookCfg/components/drCfg.vue b/src/views/fiction/audiobookCfg/components/drCfg.vue new file mode 100644 index 0000000..7c48f3b --- /dev/null +++ b/src/views/fiction/audiobookCfg/components/drCfg.vue @@ -0,0 +1,82 @@ + + + + + + + diff --git a/src/views/fiction/audiobookCfg/index.vue b/src/views/fiction/audiobookCfg/index.vue new file mode 100644 index 0000000..4d9ec3e --- /dev/null +++ b/src/views/fiction/audiobookCfg/index.vue @@ -0,0 +1,111 @@ + + + + + + diff --git a/src/views/fiction/novel/components/previewPage.vue b/src/views/fiction/novel/components/previewPage.vue new file mode 100644 index 0000000..6b69a3b --- /dev/null +++ b/src/views/fiction/novel/components/previewPage.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/fiction/novel/index.vue b/src/views/fiction/novel/index.vue new file mode 100644 index 0000000..9668279 --- /dev/null +++ b/src/views/fiction/novel/index.vue @@ -0,0 +1,226 @@ + + + + + + diff --git a/src/views/fiction/report/components/check.vue b/src/views/fiction/report/components/check.vue new file mode 100644 index 0000000..e7e3335 --- /dev/null +++ b/src/views/fiction/report/components/check.vue @@ -0,0 +1,189 @@ + + + + diff --git a/src/views/fiction/report/components/previewPicture.vue b/src/views/fiction/report/components/previewPicture.vue new file mode 100644 index 0000000..f8ea596 --- /dev/null +++ b/src/views/fiction/report/components/previewPicture.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/fiction/report/index.vue b/src/views/fiction/report/index.vue new file mode 100644 index 0000000..0b5b933 --- /dev/null +++ b/src/views/fiction/report/index.vue @@ -0,0 +1,269 @@ + + + + diff --git a/src/views/gatheringManagement/gatheringBalanceList/index.vue b/src/views/gatheringManagement/gatheringBalanceList/index.vue new file mode 100644 index 0000000..1f34b6a --- /dev/null +++ b/src/views/gatheringManagement/gatheringBalanceList/index.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/src/views/gatheringManagement/gatheringBusinessmen/components/addOrDebitScore.vue b/src/views/gatheringManagement/gatheringBusinessmen/components/addOrDebitScore.vue new file mode 100644 index 0000000..4517c4f --- /dev/null +++ b/src/views/gatheringManagement/gatheringBusinessmen/components/addOrDebitScore.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/views/gatheringManagement/gatheringBusinessmen/components/billAction.vue b/src/views/gatheringManagement/gatheringBusinessmen/components/billAction.vue new file mode 100644 index 0000000..64db67d --- /dev/null +++ b/src/views/gatheringManagement/gatheringBusinessmen/components/billAction.vue @@ -0,0 +1,234 @@ + + \ No newline at end of file diff --git a/src/views/gatheringManagement/gatheringBusinessmen/components/seekScore.vue b/src/views/gatheringManagement/gatheringBusinessmen/components/seekScore.vue new file mode 100644 index 0000000..fb069ab --- /dev/null +++ b/src/views/gatheringManagement/gatheringBusinessmen/components/seekScore.vue @@ -0,0 +1,134 @@ + + + diff --git a/src/views/gatheringManagement/gatheringBusinessmen/index.vue b/src/views/gatheringManagement/gatheringBusinessmen/index.vue new file mode 100644 index 0000000..c9ac9b8 --- /dev/null +++ b/src/views/gatheringManagement/gatheringBusinessmen/index.vue @@ -0,0 +1,269 @@ + + + diff --git a/src/views/groupChatManagement/components/UpdateGroupChat.vue b/src/views/groupChatManagement/components/UpdateGroupChat.vue new file mode 100644 index 0000000..767811b --- /dev/null +++ b/src/views/groupChatManagement/components/UpdateGroupChat.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/views/groupChatManagement/components/UpdateImgroupmember.vue b/src/views/groupChatManagement/components/UpdateImgroupmember.vue new file mode 100644 index 0000000..1eafcb1 --- /dev/null +++ b/src/views/groupChatManagement/components/UpdateImgroupmember.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/groupChatManagement/components/UpdateImmessage.vue b/src/views/groupChatManagement/components/UpdateImmessage.vue new file mode 100644 index 0000000..b4d5c1e --- /dev/null +++ b/src/views/groupChatManagement/components/UpdateImmessage.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/views/groupChatManagement/groupList/index.vue b/src/views/groupChatManagement/groupList/index.vue new file mode 100644 index 0000000..c82ee0a --- /dev/null +++ b/src/views/groupChatManagement/groupList/index.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/views/groupChatManagement/imgroupmemberList/index.vue b/src/views/groupChatManagement/imgroupmemberList/index.vue new file mode 100644 index 0000000..f0445d1 --- /dev/null +++ b/src/views/groupChatManagement/imgroupmemberList/index.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/src/views/groupChatManagement/immessageList/index.vue b/src/views/groupChatManagement/immessageList/index.vue new file mode 100644 index 0000000..c920ede --- /dev/null +++ b/src/views/groupChatManagement/immessageList/index.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/views/home/index.vue b/src/views/home/index.vue new file mode 100755 index 0000000..6a58e5a --- /dev/null +++ b/src/views/home/index.vue @@ -0,0 +1,964 @@ + + + diff --git a/src/views/hotManagement/findWonderful/components/editWonderful.vue b/src/views/hotManagement/findWonderful/components/editWonderful.vue new file mode 100644 index 0000000..3fde970 --- /dev/null +++ b/src/views/hotManagement/findWonderful/components/editWonderful.vue @@ -0,0 +1,139 @@ + + + \ No newline at end of file diff --git a/src/views/hotManagement/findWonderful/index.vue b/src/views/hotManagement/findWonderful/index.vue new file mode 100644 index 0000000..8682650 --- /dev/null +++ b/src/views/hotManagement/findWonderful/index.vue @@ -0,0 +1,92 @@ + + diff --git a/src/views/hotManagement/rankPage/components/editRank.vue b/src/views/hotManagement/rankPage/components/editRank.vue new file mode 100644 index 0000000..cb7fef8 --- /dev/null +++ b/src/views/hotManagement/rankPage/components/editRank.vue @@ -0,0 +1,203 @@ + + + \ No newline at end of file diff --git a/src/views/hotManagement/rankPage/index.vue b/src/views/hotManagement/rankPage/index.vue new file mode 100644 index 0000000..4282a29 --- /dev/null +++ b/src/views/hotManagement/rankPage/index.vue @@ -0,0 +1,103 @@ + + diff --git a/src/views/landManagement/landCfg/components/editPage.vue b/src/views/landManagement/landCfg/components/editPage.vue new file mode 100644 index 0000000..f6f4d07 --- /dev/null +++ b/src/views/landManagement/landCfg/components/editPage.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/views/landManagement/landCfg/components/editTemplet.vue b/src/views/landManagement/landCfg/components/editTemplet.vue new file mode 100644 index 0000000..009f110 --- /dev/null +++ b/src/views/landManagement/landCfg/components/editTemplet.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/views/landManagement/landCfg/index.vue b/src/views/landManagement/landCfg/index.vue new file mode 100644 index 0000000..2600746 --- /dev/null +++ b/src/views/landManagement/landCfg/index.vue @@ -0,0 +1,126 @@ + + \ No newline at end of file diff --git a/src/views/landManagement/landPage/components/addPopup.vue b/src/views/landManagement/landPage/components/addPopup.vue new file mode 100644 index 0000000..3897019 --- /dev/null +++ b/src/views/landManagement/landPage/components/addPopup.vue @@ -0,0 +1,158 @@ + + diff --git a/src/views/landManagement/landPage/index.vue b/src/views/landManagement/landPage/index.vue new file mode 100644 index 0000000..5744c1b --- /dev/null +++ b/src/views/landManagement/landPage/index.vue @@ -0,0 +1,197 @@ + + \ No newline at end of file diff --git a/src/views/login/components/google-verification.vue b/src/views/login/components/google-verification.vue new file mode 100755 index 0000000..47480f6 --- /dev/null +++ b/src/views/login/components/google-verification.vue @@ -0,0 +1,97 @@ + + + + diff --git a/src/views/login/index.vue b/src/views/login/index.vue new file mode 100755 index 0000000..79e1f37 --- /dev/null +++ b/src/views/login/index.vue @@ -0,0 +1,234 @@ + + + + diff --git a/src/views/loufengManagement/feedback/components/check.vue b/src/views/loufengManagement/feedback/components/check.vue new file mode 100644 index 0000000..77a475f --- /dev/null +++ b/src/views/loufengManagement/feedback/components/check.vue @@ -0,0 +1,146 @@ + + + + diff --git a/src/views/loufengManagement/feedback/components/lfDetails.vue b/src/views/loufengManagement/feedback/components/lfDetails.vue new file mode 100755 index 0000000..5719187 --- /dev/null +++ b/src/views/loufengManagement/feedback/components/lfDetails.vue @@ -0,0 +1,164 @@ + + + + + + \ No newline at end of file diff --git a/src/views/loufengManagement/feedback/index.vue b/src/views/loufengManagement/feedback/index.vue new file mode 100644 index 0000000..933e3e1 --- /dev/null +++ b/src/views/loufengManagement/feedback/index.vue @@ -0,0 +1,435 @@ + + + + + + + diff --git a/src/views/loufengManagement/louFengList/components/operatingPage.vue b/src/views/loufengManagement/louFengList/components/operatingPage.vue new file mode 100755 index 0000000..13e3011 --- /dev/null +++ b/src/views/loufengManagement/louFengList/components/operatingPage.vue @@ -0,0 +1,385 @@ + + + + + + \ No newline at end of file diff --git a/src/views/loufengManagement/louFengList/components/previewPicture.vue b/src/views/loufengManagement/louFengList/components/previewPicture.vue new file mode 100644 index 0000000..7773127 --- /dev/null +++ b/src/views/loufengManagement/louFengList/components/previewPicture.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/loufengManagement/louFengList/components/upmost.vue b/src/views/loufengManagement/louFengList/components/upmost.vue new file mode 100644 index 0000000..0482f07 --- /dev/null +++ b/src/views/loufengManagement/louFengList/components/upmost.vue @@ -0,0 +1,169 @@ + + + + diff --git a/src/views/loufengManagement/louFengList/index.vue b/src/views/loufengManagement/louFengList/index.vue new file mode 100644 index 0000000..3154b82 --- /dev/null +++ b/src/views/loufengManagement/louFengList/index.vue @@ -0,0 +1,364 @@ + + + + + diff --git a/src/views/loufengManagement/loufCfg/components/cityCfg.vue b/src/views/loufengManagement/loufCfg/components/cityCfg.vue new file mode 100644 index 0000000..890292c --- /dev/null +++ b/src/views/loufengManagement/loufCfg/components/cityCfg.vue @@ -0,0 +1,86 @@ + + + + + + + diff --git a/src/views/loufengManagement/loufCfg/components/drCfg.vue b/src/views/loufengManagement/loufCfg/components/drCfg.vue new file mode 100644 index 0000000..cd5e419 --- /dev/null +++ b/src/views/loufengManagement/loufCfg/components/drCfg.vue @@ -0,0 +1,82 @@ + + + + + + + diff --git a/src/views/loufengManagement/loufCfg/index.vue b/src/views/loufengManagement/loufCfg/index.vue new file mode 100644 index 0000000..3dbaf1f --- /dev/null +++ b/src/views/loufengManagement/loufCfg/index.vue @@ -0,0 +1,121 @@ + + + + + + diff --git a/src/views/loufengManagement/loufadCfg/components/drCfg.vue b/src/views/loufengManagement/loufadCfg/components/drCfg.vue new file mode 100644 index 0000000..4eb683c --- /dev/null +++ b/src/views/loufengManagement/loufadCfg/components/drCfg.vue @@ -0,0 +1,82 @@ + + + + + + + diff --git a/src/views/loufengManagement/loufadCfg/components/editPage.vue b/src/views/loufengManagement/loufadCfg/components/editPage.vue new file mode 100755 index 0000000..597998c --- /dev/null +++ b/src/views/loufengManagement/loufadCfg/components/editPage.vue @@ -0,0 +1,291 @@ + + + + + +style> diff --git a/src/views/loufengManagement/loufadCfg/index.vue b/src/views/loufengManagement/loufadCfg/index.vue new file mode 100644 index 0000000..22b06cb --- /dev/null +++ b/src/views/loufengManagement/loufadCfg/index.vue @@ -0,0 +1,208 @@ + + + + + + diff --git a/src/views/lsjMediaLibrary/comicsList/components/AddOrEdit.vue b/src/views/lsjMediaLibrary/comicsList/components/AddOrEdit.vue new file mode 100644 index 0000000..94213f0 --- /dev/null +++ b/src/views/lsjMediaLibrary/comicsList/components/AddOrEdit.vue @@ -0,0 +1,504 @@ + + + diff --git a/src/views/lsjMediaLibrary/comicsList/components/ComicsDetailView.vue b/src/views/lsjMediaLibrary/comicsList/components/ComicsDetailView.vue new file mode 100644 index 0000000..36b56b2 --- /dev/null +++ b/src/views/lsjMediaLibrary/comicsList/components/ComicsDetailView.vue @@ -0,0 +1,100 @@ + + + diff --git a/src/views/lsjMediaLibrary/comicsList/index.vue b/src/views/lsjMediaLibrary/comicsList/index.vue new file mode 100644 index 0000000..859c593 --- /dev/null +++ b/src/views/lsjMediaLibrary/comicsList/index.vue @@ -0,0 +1,364 @@ + + + + + \ No newline at end of file diff --git a/src/views/lsjMediaLibrary/config.js b/src/views/lsjMediaLibrary/config.js new file mode 100644 index 0000000..88ebfd0 --- /dev/null +++ b/src/views/lsjMediaLibrary/config.js @@ -0,0 +1,164 @@ + +export function changePosition(val) { + switch (val) { + case 'guochan': + return '国产成人视频' + case 'av': + return '日本和欧美成人视频' + case 'movie': + return '正规影视资源' + case 'bl': + return '男同' + case 'douyin': + return '短视频' + case 'cartoon': + return '动漫' + case 'dark': + return '暗网资源' + default: + return '暂无' + } +} + +export function positionList() { + return [{ + value: 'guochan', + label: '国产成人视频' + }, + { + value: 'av', + label: '日本和欧美成人视频' + }, + { + value: 'movie', + label: '正规影视资源' + }, + { + value: 'bl', + label: '男同' + }, + { + value: 'douyin', + label: '短视频' + }, + { + value: 'cartoon', + label: '动漫' + }, + { + value: 'dark', + label: '暗网资源' + } + ] +} + +export function changeVideoTypeList(val) { + switch (val) { + case '1': + return 'AV' + case '2': + return 'DM' + case '3': + return 'GC' + case '4': + return '综艺' + case '5': + return '连续剧' + case '6': + return '电影' + case '7': + return '动漫' + case '8': + return '纪录片' + case '9': + return '短剧' + case '10': + return '音乐' + case '11': + return '电影解说 ' + case '12': + return 'VR' + case '13': + return '成人短视频' + } +} +export function videoTypeList() { + return [{ + label: '1', + value: 'AV' + }, + { + label: '2', + value: 'DM' + }, + { + label: '3', + value: 'GC' + }, + { + label: '4', + value: '综艺' + }, + { + label: '5', + value: '连续剧' + }, + { + label: '6', + value: '电影' + }, + { + label: '7', + value: '动漫' + },{ + label: '8', + value: '纪录片' + },{ + label: '9', + value: '短剧' + },{ + label: '10', + value: '音乐' + },{ + label: '11', + value: '电影解说' + },{ + label: '12', + value: 'VR' + },{ + label: '13', + value: '成人短视频' + } + ] +} +export function statusList() { + return [{ + label: '0', + value: '待处理' + }, + { + label: '-1', + value: '处理失败' + }, + { + label: '1', + value: '处理中' + }, + { + label: '2', + value: '处理成功' + } + ] +} +export function changeStatusListType(val) { + switch (val) { + case '0': + return '待处理' + case '-1': + return '处理失败' + case '1': + return '处理中' + case '2': + return '处理成功' + } +} diff --git a/src/views/lsjMediaLibrary/novelList/components/AddOrEdit.vue b/src/views/lsjMediaLibrary/novelList/components/AddOrEdit.vue new file mode 100644 index 0000000..2502962 --- /dev/null +++ b/src/views/lsjMediaLibrary/novelList/components/AddOrEdit.vue @@ -0,0 +1,510 @@ + + + diff --git a/src/views/lsjMediaLibrary/novelList/components/NovelDetailView.vue b/src/views/lsjMediaLibrary/novelList/components/NovelDetailView.vue new file mode 100644 index 0000000..55e568f --- /dev/null +++ b/src/views/lsjMediaLibrary/novelList/components/NovelDetailView.vue @@ -0,0 +1,349 @@ + + + diff --git a/src/views/lsjMediaLibrary/novelList/index.vue b/src/views/lsjMediaLibrary/novelList/index.vue new file mode 100644 index 0000000..5520522 --- /dev/null +++ b/src/views/lsjMediaLibrary/novelList/index.vue @@ -0,0 +1,360 @@ + + + + \ No newline at end of file diff --git a/src/views/lsjMediaLibrary/postList/components/AddOrEdit.vue b/src/views/lsjMediaLibrary/postList/components/AddOrEdit.vue new file mode 100644 index 0000000..aadcbe4 --- /dev/null +++ b/src/views/lsjMediaLibrary/postList/components/AddOrEdit.vue @@ -0,0 +1,529 @@ + + + diff --git a/src/views/lsjMediaLibrary/postList/components/PostDetailView.vue b/src/views/lsjMediaLibrary/postList/components/PostDetailView.vue new file mode 100644 index 0000000..b32e020 --- /dev/null +++ b/src/views/lsjMediaLibrary/postList/components/PostDetailView.vue @@ -0,0 +1,332 @@ + + + diff --git a/src/views/lsjMediaLibrary/postList/index.vue b/src/views/lsjMediaLibrary/postList/index.vue new file mode 100644 index 0000000..f3bc16c --- /dev/null +++ b/src/views/lsjMediaLibrary/postList/index.vue @@ -0,0 +1,378 @@ + + + + \ No newline at end of file diff --git a/src/views/lsjMediaLibrary/videoList/components/AddOrEdit.vue b/src/views/lsjMediaLibrary/videoList/components/AddOrEdit.vue new file mode 100644 index 0000000..82ac0b3 --- /dev/null +++ b/src/views/lsjMediaLibrary/videoList/components/AddOrEdit.vue @@ -0,0 +1,318 @@ + + + diff --git a/src/views/lsjMediaLibrary/videoList/index.vue b/src/views/lsjMediaLibrary/videoList/index.vue new file mode 100644 index 0000000..72d1ffe --- /dev/null +++ b/src/views/lsjMediaLibrary/videoList/index.vue @@ -0,0 +1,395 @@ + + + + diff --git a/src/views/main/components/content.vue b/src/views/main/components/content.vue new file mode 100755 index 0000000..49bb8d0 --- /dev/null +++ b/src/views/main/components/content.vue @@ -0,0 +1,319 @@ + + + + diff --git a/src/views/main/components/header.vue b/src/views/main/components/header.vue new file mode 100755 index 0000000..c204023 --- /dev/null +++ b/src/views/main/components/header.vue @@ -0,0 +1,188 @@ + + +'' diff --git a/src/views/main/components/nav.vue b/src/views/main/components/nav.vue new file mode 100755 index 0000000..5ddf5a2 --- /dev/null +++ b/src/views/main/components/nav.vue @@ -0,0 +1,120 @@ + + + + diff --git a/src/views/main/components/siderbarItem.vue b/src/views/main/components/siderbarItem.vue new file mode 100755 index 0000000..92e3343 --- /dev/null +++ b/src/views/main/components/siderbarItem.vue @@ -0,0 +1,64 @@ + + diff --git a/src/views/main/index.vue b/src/views/main/index.vue new file mode 100755 index 0000000..15767ba --- /dev/null +++ b/src/views/main/index.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/views/mediaLibrary/config.js b/src/views/mediaLibrary/config.js new file mode 100644 index 0000000..5931b6e --- /dev/null +++ b/src/views/mediaLibrary/config.js @@ -0,0 +1,280 @@ +/* + * @Author: 王涛 + * @Mail: no + * @Date: 2020-12-28 14:15:11 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2022-08-23 15:08:21 + */ +export function changeStatus(val) { + switch (val) { + case 'UpLoading': + return '上传中' + case 'UploadCompleted': + return '上传完成' + case 'MergeCompleted': + return '合并完成' + case 'CompressCompleted': + return '压缩完成' + case 'ConvertCompleted': + return '切片完成' + case 'Completed': + return '完成-成功' + case 'CompletedFail': + return '完成-失败' + } +} + +export function StatusList() { + return [{ + label: '上传中', + value: 'UpLoading' + }, + { + label: '上传完成', + value: 'UploadCompleted' + }, + { + label: '合并完成', + value: 'MergeCompleted' + }, + { + label: '压缩完成', + value: 'CompressCompleted' + }, + { + label: '切片完成', + value: 'ConvertCompleted' + }, + { + label: '完成-成功', + value: 'Completed' + }, + { + label: '完成-失败', + value: 'CompletedFail' + } + ] +} + +export function coverTypeList() { + return [ + { + label: '横版', + value: 1 + }, + { + label: '竖版', + value: 2 + }, + { + label: '系统', + value: 3 + } + ] +} +export function changeCoverType(val) { + switch (val) { + case 1: + return '横版' + case 2: + return '竖版' + case 3: + return '系统' + } +} + +export function appidsList() { + return [ + { + label: '外网禁忌', + value: 8888 + }, + { + label: '麻豆射区', + value: 80 + }, + { + label: '哔哩哔哩', + value: 999 + }, + { + label: '欲漫涩', + value: 444 + }, + { + label: '暗网禁地', + value: 494 + }, + { + label: '好色', + value: 178 + }, + { + label: '微勃', + value: 777 + }, + { + label: '乱伦', + value: 594 + }, + { + label: '91涩漫', + value: 694 + }, + { + label: '麻豆', + value: 888 + }, + { + label: '新内涵', + value: 258 + } + ] +} +export function formatTypeList() { + return [ + { + label: '长视频', + value: 1 + }, + { + label: '短视频', + value: 2 + }, + { + label: '预览', + value: 3 + } + ] +} +export function contentTypeList() { + return [ + { + label: '长视频', + value: 1 + }, + { + label: '短视频', + value: 2 + }, + { + label: '动漫', + value: 3 + } + ] +} +export function changeContentType(val) { + switch (val) { + case 1: + return '长视频' + case 2: + return '短视频' + case 3: + return '动漫' + } +} + +export function changeTopType(val) { + switch (val) { + case 1: + return '漫画' + case 2: + return '动漫' + case 3: + return '视频' + case 4: + return '小说' + } +} + +export function contentTypeListv2() { + return [ + { + label: 'AV', + value: 1 + }, + { + label: '小视频', + value: 2 + }, + { + label: '动漫', + value: 3 + }, + { + label: '首页', + value: 4 + }, + { + label: '萝莉岛', + value: 5 + } + ] +} + +export function changeContentTypev2(val) { + switch (val) { + case 1: + return 'AV' + case 2: + return '小视频' + case 3: + return '动漫' + case 4: + return '首页' + case 5: + return '萝莉岛' + } +} + +export function formVideoTypeList() { + return [ + { + label: 'AV', + value: '1' + }, + { + label: 'SP', + value: '2' + }, + { + label: 'AI', + value: '3' + }, { + label: 'MP3', + value: '4' + } + ] +} +export function videoLocationList() { + return [ + { + label: '视频', + value: 1 + }, + { + label: '暗网/猎奇', + value: 2 + }, + { + label: '动漫', + value: 3 + }, + { + label: '有声漫', + value: 4 + } + ] +} +export function changeVideoLocation(val) { + switch (val) { + case 1: + return '视频' + case 2: + return '暗网/猎奇' + case 3: + return '动漫' + case 4: + return '有声漫' + } +} diff --git a/src/views/mediaLibrary/videoList/components/AddOrEdit.vue b/src/views/mediaLibrary/videoList/components/AddOrEdit.vue new file mode 100644 index 0000000..27e9e36 --- /dev/null +++ b/src/views/mediaLibrary/videoList/components/AddOrEdit.vue @@ -0,0 +1,515 @@ + + + diff --git a/src/views/mediaLibrary/videoList/components/editShowLocation.vue b/src/views/mediaLibrary/videoList/components/editShowLocation.vue new file mode 100644 index 0000000..7731ca1 --- /dev/null +++ b/src/views/mediaLibrary/videoList/components/editShowLocation.vue @@ -0,0 +1,67 @@ + + + + diff --git a/src/views/mediaLibrary/videoList/index.vue b/src/views/mediaLibrary/videoList/index.vue new file mode 100644 index 0000000..8390f49 --- /dev/null +++ b/src/views/mediaLibrary/videoList/index.vue @@ -0,0 +1,767 @@ + + + + diff --git a/src/views/moduleConfManagement/happinessPlazaTopList/index.vue b/src/views/moduleConfManagement/happinessPlazaTopList/index.vue new file mode 100644 index 0000000..5404bc5 --- /dev/null +++ b/src/views/moduleConfManagement/happinessPlazaTopList/index.vue @@ -0,0 +1,467 @@ + + + + + diff --git a/src/views/moduleConfManagement/kingKongDistrict/index.vue b/src/views/moduleConfManagement/kingKongDistrict/index.vue new file mode 100644 index 0000000..b0af2da --- /dev/null +++ b/src/views/moduleConfManagement/kingKongDistrict/index.vue @@ -0,0 +1,566 @@ + + + diff --git a/src/views/moduleConfManagement/moduleList/index.vue b/src/views/moduleConfManagement/moduleList/index.vue new file mode 100644 index 0000000..f5cad0f --- /dev/null +++ b/src/views/moduleConfManagement/moduleList/index.vue @@ -0,0 +1,1243 @@ + + + + + diff --git a/src/views/moduleConfManagement/sectionList/index.vue b/src/views/moduleConfManagement/sectionList/index.vue new file mode 100644 index 0000000..d322a08 --- /dev/null +++ b/src/views/moduleConfManagement/sectionList/index.vue @@ -0,0 +1,856 @@ + + + + + diff --git a/src/views/moduleConfManagement/vidResCfg/components/preview-video.vue b/src/views/moduleConfManagement/vidResCfg/components/preview-video.vue new file mode 100644 index 0000000..ab85fdb --- /dev/null +++ b/src/views/moduleConfManagement/vidResCfg/components/preview-video.vue @@ -0,0 +1,126 @@ + + + + + \ No newline at end of file diff --git a/src/views/moduleConfManagement/vidResCfg/index.vue b/src/views/moduleConfManagement/vidResCfg/index.vue new file mode 100644 index 0000000..4a856bd --- /dev/null +++ b/src/views/moduleConfManagement/vidResCfg/index.vue @@ -0,0 +1,259 @@ + + + + + \ No newline at end of file diff --git a/src/views/moduleConfManagement/videoList/index.vue b/src/views/moduleConfManagement/videoList/index.vue new file mode 100644 index 0000000..5630e3f --- /dev/null +++ b/src/views/moduleConfManagement/videoList/index.vue @@ -0,0 +1,336 @@ + + + + + diff --git a/src/views/nakedChatManage/nakedChatBuyList/components/PreviewPicture.vue b/src/views/nakedChatManage/nakedChatBuyList/components/PreviewPicture.vue new file mode 100644 index 0000000..31b8837 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatBuyList/components/PreviewPicture.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/nakedChatManage/nakedChatBuyList/components/SnapShortTable.vue b/src/views/nakedChatManage/nakedChatBuyList/components/SnapShortTable.vue new file mode 100644 index 0000000..490f4ed --- /dev/null +++ b/src/views/nakedChatManage/nakedChatBuyList/components/SnapShortTable.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/views/nakedChatManage/nakedChatBuyList/components/UpdateStatusPopup.vue b/src/views/nakedChatManage/nakedChatBuyList/components/UpdateStatusPopup.vue new file mode 100644 index 0000000..22e9bc3 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatBuyList/components/UpdateStatusPopup.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/nakedChatManage/nakedChatBuyList/index.vue b/src/views/nakedChatManage/nakedChatBuyList/index.vue new file mode 100644 index 0000000..8dd714e --- /dev/null +++ b/src/views/nakedChatManage/nakedChatBuyList/index.vue @@ -0,0 +1,323 @@ + + + + + diff --git a/src/views/nakedChatManage/nakedChatFeedback/components/check.vue b/src/views/nakedChatManage/nakedChatFeedback/components/check.vue new file mode 100644 index 0000000..db25695 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatFeedback/components/check.vue @@ -0,0 +1,150 @@ + + + + diff --git a/src/views/nakedChatManage/nakedChatFeedback/components/lfDetails.vue b/src/views/nakedChatManage/nakedChatFeedback/components/lfDetails.vue new file mode 100755 index 0000000..d0c9d3b --- /dev/null +++ b/src/views/nakedChatManage/nakedChatFeedback/components/lfDetails.vue @@ -0,0 +1,164 @@ + + + + + + \ No newline at end of file diff --git a/src/views/nakedChatManage/nakedChatFeedback/components/previewPicture.vue b/src/views/nakedChatManage/nakedChatFeedback/components/previewPicture.vue new file mode 100644 index 0000000..7773127 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatFeedback/components/previewPicture.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/nakedChatManage/nakedChatFeedback/index.vue b/src/views/nakedChatManage/nakedChatFeedback/index.vue new file mode 100644 index 0000000..8e1c2a7 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatFeedback/index.vue @@ -0,0 +1,439 @@ + + + + + + + diff --git a/src/views/nakedChatManage/nakedChatList/components/preview-video.vue b/src/views/nakedChatManage/nakedChatList/components/preview-video.vue new file mode 100644 index 0000000..69c07e0 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatList/components/preview-video.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/views/nakedChatManage/nakedChatList/components/previewPicture.vue b/src/views/nakedChatManage/nakedChatList/components/previewPicture.vue new file mode 100644 index 0000000..31b8837 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatList/components/previewPicture.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/views/nakedChatManage/nakedChatList/components/updateModulePopup.vue b/src/views/nakedChatManage/nakedChatList/components/updateModulePopup.vue new file mode 100644 index 0000000..a327a33 --- /dev/null +++ b/src/views/nakedChatManage/nakedChatList/components/updateModulePopup.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/nakedChatManage/nakedChatList/index.vue b/src/views/nakedChatManage/nakedChatList/index.vue new file mode 100644 index 0000000..631b0dc --- /dev/null +++ b/src/views/nakedChatManage/nakedChatList/index.vue @@ -0,0 +1,830 @@ + + + + + diff --git a/src/views/officialWebsite/albumList/index.vue b/src/views/officialWebsite/albumList/index.vue new file mode 100644 index 0000000..d1e2b3d --- /dev/null +++ b/src/views/officialWebsite/albumList/index.vue @@ -0,0 +1,280 @@ + + + + + diff --git a/src/views/officialWebsite/basicData/index.vue b/src/views/officialWebsite/basicData/index.vue new file mode 100644 index 0000000..709400a --- /dev/null +++ b/src/views/officialWebsite/basicData/index.vue @@ -0,0 +1,588 @@ + + + + + diff --git a/src/views/officialWebsite/businessList/index.vue b/src/views/officialWebsite/businessList/index.vue new file mode 100644 index 0000000..189426c --- /dev/null +++ b/src/views/officialWebsite/businessList/index.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/views/officialWebsite/heroList/index.vue b/src/views/officialWebsite/heroList/index.vue new file mode 100644 index 0000000..cb85845 --- /dev/null +++ b/src/views/officialWebsite/heroList/index.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/src/views/officialWebsite/jobList/index.vue b/src/views/officialWebsite/jobList/index.vue new file mode 100644 index 0000000..9565d53 --- /dev/null +++ b/src/views/officialWebsite/jobList/index.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/src/views/officialWebsite/newsList/index.vue b/src/views/officialWebsite/newsList/index.vue new file mode 100644 index 0000000..627ce3f --- /dev/null +++ b/src/views/officialWebsite/newsList/index.vue @@ -0,0 +1,447 @@ + + + + + diff --git a/src/views/officialWebsite/partnerList/index.vue b/src/views/officialWebsite/partnerList/index.vue new file mode 100644 index 0000000..39db365 --- /dev/null +++ b/src/views/officialWebsite/partnerList/index.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/src/views/officialWebsite/photographList/index.vue b/src/views/officialWebsite/photographList/index.vue new file mode 100644 index 0000000..64f0a8b --- /dev/null +++ b/src/views/officialWebsite/photographList/index.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/src/views/officialWebsite/recruitFormList/index.vue b/src/views/officialWebsite/recruitFormList/index.vue new file mode 100644 index 0000000..02b610e --- /dev/null +++ b/src/views/officialWebsite/recruitFormList/index.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/officialWebsite/tagList/index.vue b/src/views/officialWebsite/tagList/index.vue new file mode 100644 index 0000000..4f146cb --- /dev/null +++ b/src/views/officialWebsite/tagList/index.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/src/views/officialWebsite/videoList/index.vue b/src/views/officialWebsite/videoList/index.vue new file mode 100644 index 0000000..a38bb6a --- /dev/null +++ b/src/views/officialWebsite/videoList/index.vue @@ -0,0 +1,699 @@ + + + + + diff --git a/src/views/productManagement/bannerActivityList/index.vue b/src/views/productManagement/bannerActivityList/index.vue new file mode 100644 index 0000000..c716fd1 --- /dev/null +++ b/src/views/productManagement/bannerActivityList/index.vue @@ -0,0 +1,647 @@ + + + diff --git a/src/views/productManagement/currencyList/components/currencyAction.vue b/src/views/productManagement/currencyList/components/currencyAction.vue new file mode 100755 index 0000000..539843d --- /dev/null +++ b/src/views/productManagement/currencyList/components/currencyAction.vue @@ -0,0 +1,314 @@ + + + + + diff --git a/src/views/productManagement/currencyList/index.vue b/src/views/productManagement/currencyList/index.vue new file mode 100644 index 0000000..222b957 --- /dev/null +++ b/src/views/productManagement/currencyList/index.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/src/views/productManagement/gameGlodList/components/goldAction.vue b/src/views/productManagement/gameGlodList/components/goldAction.vue new file mode 100755 index 0000000..3150382 --- /dev/null +++ b/src/views/productManagement/gameGlodList/components/goldAction.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/views/productManagement/gameGlodList/index.vue b/src/views/productManagement/gameGlodList/index.vue new file mode 100755 index 0000000..02e64c0 --- /dev/null +++ b/src/views/productManagement/gameGlodList/index.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/views/productManagement/glodList/components/goldAction.vue b/src/views/productManagement/glodList/components/goldAction.vue new file mode 100755 index 0000000..cc381ea --- /dev/null +++ b/src/views/productManagement/glodList/components/goldAction.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/views/productManagement/glodList/index.vue b/src/views/productManagement/glodList/index.vue new file mode 100755 index 0000000..b05de0f --- /dev/null +++ b/src/views/productManagement/glodList/index.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/views/productManagement/glodPayList/components/goldAction.vue b/src/views/productManagement/glodPayList/components/goldAction.vue new file mode 100755 index 0000000..89db639 --- /dev/null +++ b/src/views/productManagement/glodPayList/components/goldAction.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/views/productManagement/glodPayList/index.vue b/src/views/productManagement/glodPayList/index.vue new file mode 100755 index 0000000..d0265b7 --- /dev/null +++ b/src/views/productManagement/glodPayList/index.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/views/productManagement/integralConfigure/index.vue b/src/views/productManagement/integralConfigure/index.vue new file mode 100644 index 0000000..f1386bd --- /dev/null +++ b/src/views/productManagement/integralConfigure/index.vue @@ -0,0 +1,526 @@ + + + diff --git a/src/views/productManagement/marqueeList/components/addAndEdit.vue b/src/views/productManagement/marqueeList/components/addAndEdit.vue new file mode 100644 index 0000000..df6b302 --- /dev/null +++ b/src/views/productManagement/marqueeList/components/addAndEdit.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/src/views/productManagement/marqueeList/index.vue b/src/views/productManagement/marqueeList/index.vue new file mode 100644 index 0000000..0e0f338 --- /dev/null +++ b/src/views/productManagement/marqueeList/index.vue @@ -0,0 +1,261 @@ + + + + + diff --git a/src/views/productManagement/officialList/components/officialAction.vue b/src/views/productManagement/officialList/components/officialAction.vue new file mode 100755 index 0000000..bd55b7d --- /dev/null +++ b/src/views/productManagement/officialList/components/officialAction.vue @@ -0,0 +1,322 @@ + + + + + diff --git a/src/views/productManagement/officialList/index.vue b/src/views/productManagement/officialList/index.vue new file mode 100755 index 0000000..378f6d4 --- /dev/null +++ b/src/views/productManagement/officialList/index.vue @@ -0,0 +1,249 @@ + + + + diff --git a/src/views/productManagement/payMethod/components/channelAction.vue b/src/views/productManagement/payMethod/components/channelAction.vue new file mode 100755 index 0000000..4eae1db --- /dev/null +++ b/src/views/productManagement/payMethod/components/channelAction.vue @@ -0,0 +1,292 @@ + + + + diff --git a/src/views/productManagement/payMethod/index.vue b/src/views/productManagement/payMethod/index.vue new file mode 100755 index 0000000..46a5c68 --- /dev/null +++ b/src/views/productManagement/payMethod/index.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/views/productManagement/preSaleConfigure/components/preview-video.vue b/src/views/productManagement/preSaleConfigure/components/preview-video.vue new file mode 100644 index 0000000..69c07e0 --- /dev/null +++ b/src/views/productManagement/preSaleConfigure/components/preview-video.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/views/productManagement/preSaleConfigure/index.vue b/src/views/productManagement/preSaleConfigure/index.vue new file mode 100644 index 0000000..53d2d81 --- /dev/null +++ b/src/views/productManagement/preSaleConfigure/index.vue @@ -0,0 +1,664 @@ + + + diff --git a/src/views/productManagement/productBenefitList/components/productBenefitAction.vue b/src/views/productManagement/productBenefitList/components/productBenefitAction.vue new file mode 100755 index 0000000..744a3b0 --- /dev/null +++ b/src/views/productManagement/productBenefitList/components/productBenefitAction.vue @@ -0,0 +1,317 @@ + + + + + diff --git a/src/views/productManagement/productBenefitList/index.vue b/src/views/productManagement/productBenefitList/index.vue new file mode 100755 index 0000000..932cb2e --- /dev/null +++ b/src/views/productManagement/productBenefitList/index.vue @@ -0,0 +1,171 @@ + + + + diff --git a/src/views/productManagement/productPositionList/components/positionAction.vue b/src/views/productManagement/productPositionList/components/positionAction.vue new file mode 100755 index 0000000..4a5bcde --- /dev/null +++ b/src/views/productManagement/productPositionList/components/positionAction.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/productManagement/productPositionList/index.vue b/src/views/productManagement/productPositionList/index.vue new file mode 100755 index 0000000..3b94379 --- /dev/null +++ b/src/views/productManagement/productPositionList/index.vue @@ -0,0 +1,167 @@ + + + + diff --git a/src/views/productManagement/promoteUrl/components/promoteAction.vue b/src/views/productManagement/promoteUrl/components/promoteAction.vue new file mode 100755 index 0000000..368d0d7 --- /dev/null +++ b/src/views/productManagement/promoteUrl/components/promoteAction.vue @@ -0,0 +1,207 @@ + + + + + diff --git a/src/views/productManagement/promoteUrl/index.vue b/src/views/productManagement/promoteUrl/index.vue new file mode 100755 index 0000000..090137c --- /dev/null +++ b/src/views/productManagement/promoteUrl/index.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/views/productManagement/vipCfg/components/edit.vue b/src/views/productManagement/vipCfg/components/edit.vue new file mode 100644 index 0000000..e8c7e2a --- /dev/null +++ b/src/views/productManagement/vipCfg/components/edit.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/views/productManagement/vipCfg/index.vue b/src/views/productManagement/vipCfg/index.vue new file mode 100644 index 0000000..1e5db1f --- /dev/null +++ b/src/views/productManagement/vipCfg/index.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/views/productManagement/vipProductList/components/vipAction.vue b/src/views/productManagement/vipProductList/components/vipAction.vue new file mode 100755 index 0000000..9206256 --- /dev/null +++ b/src/views/productManagement/vipProductList/components/vipAction.vue @@ -0,0 +1,1271 @@ + + + + + diff --git a/src/views/productManagement/vipProductList/index.vue b/src/views/productManagement/vipProductList/index.vue new file mode 100755 index 0000000..a025e2a --- /dev/null +++ b/src/views/productManagement/vipProductList/index.vue @@ -0,0 +1,862 @@ + + + + diff --git a/src/views/robot/chatLibrary/components/addContent.vue b/src/views/robot/chatLibrary/components/addContent.vue new file mode 100644 index 0000000..2d1a94a --- /dev/null +++ b/src/views/robot/chatLibrary/components/addContent.vue @@ -0,0 +1,110 @@ + + + \ No newline at end of file diff --git a/src/views/robot/chatLibrary/index.vue b/src/views/robot/chatLibrary/index.vue new file mode 100644 index 0000000..c08b3ba --- /dev/null +++ b/src/views/robot/chatLibrary/index.vue @@ -0,0 +1,157 @@ + + + \ No newline at end of file diff --git a/src/views/robot/robotConfig/components/addRobotPopup.vue b/src/views/robot/robotConfig/components/addRobotPopup.vue new file mode 100644 index 0000000..eb15897 --- /dev/null +++ b/src/views/robot/robotConfig/components/addRobotPopup.vue @@ -0,0 +1,198 @@ + + + \ No newline at end of file diff --git a/src/views/robot/robotConfig/index.vue b/src/views/robot/robotConfig/index.vue new file mode 100644 index 0000000..6b5115f --- /dev/null +++ b/src/views/robot/robotConfig/index.vue @@ -0,0 +1,175 @@ + + + \ No newline at end of file diff --git a/src/views/role/components/roleAction.vue b/src/views/role/components/roleAction.vue new file mode 100755 index 0000000..4dd5961 --- /dev/null +++ b/src/views/role/components/roleAction.vue @@ -0,0 +1,288 @@ + + + diff --git a/src/views/role/index.vue b/src/views/role/index.vue new file mode 100755 index 0000000..b108b96 --- /dev/null +++ b/src/views/role/index.vue @@ -0,0 +1,201 @@ + + + diff --git a/src/views/shortVideoRecommend/commentBannerList/index.vue b/src/views/shortVideoRecommend/commentBannerList/index.vue new file mode 100644 index 0000000..c328c3e --- /dev/null +++ b/src/views/shortVideoRecommend/commentBannerList/index.vue @@ -0,0 +1,506 @@ + + + + + diff --git a/src/views/shortVideoRecommend/paymentGuideList/index.vue b/src/views/shortVideoRecommend/paymentGuideList/index.vue new file mode 100644 index 0000000..d87aafe --- /dev/null +++ b/src/views/shortVideoRecommend/paymentGuideList/index.vue @@ -0,0 +1,884 @@ + + + + + diff --git a/src/views/shortVideoRecommend/vipCardExperiment/index.vue b/src/views/shortVideoRecommend/vipCardExperiment/index.vue new file mode 100644 index 0000000..9180563 --- /dev/null +++ b/src/views/shortVideoRecommend/vipCardExperiment/index.vue @@ -0,0 +1,1071 @@ + + + + + diff --git a/src/views/signinManagement/checkInCfgList/components/addContent.vue b/src/views/signinManagement/checkInCfgList/components/addContent.vue new file mode 100644 index 0000000..ceb37c7 --- /dev/null +++ b/src/views/signinManagement/checkInCfgList/components/addContent.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/src/views/signinManagement/checkInCfgList/index.vue b/src/views/signinManagement/checkInCfgList/index.vue new file mode 100644 index 0000000..234729b --- /dev/null +++ b/src/views/signinManagement/checkInCfgList/index.vue @@ -0,0 +1,188 @@ + + + diff --git a/src/views/signinManagement/checkInList/index.vue b/src/views/signinManagement/checkInList/index.vue new file mode 100644 index 0000000..0ad244d --- /dev/null +++ b/src/views/signinManagement/checkInList/index.vue @@ -0,0 +1,184 @@ + + + diff --git a/src/views/signinManagement/configurationList/index.vue b/src/views/signinManagement/configurationList/index.vue new file mode 100644 index 0000000..9e9093e --- /dev/null +++ b/src/views/signinManagement/configurationList/index.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/src/views/statistics/advAnalysis/index.vue b/src/views/statistics/advAnalysis/index.vue new file mode 100644 index 0000000..fb0f01a --- /dev/null +++ b/src/views/statistics/advAnalysis/index.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/statistics/clickStatistics/index.vue b/src/views/statistics/clickStatistics/index.vue new file mode 100755 index 0000000..ecaf0f0 --- /dev/null +++ b/src/views/statistics/clickStatistics/index.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/views/statistics/goldWater/index.vue b/src/views/statistics/goldWater/index.vue new file mode 100755 index 0000000..d467f81 --- /dev/null +++ b/src/views/statistics/goldWater/index.vue @@ -0,0 +1,211 @@ + + diff --git a/src/views/statistics/rechargeLog/components/echartPopup.vue b/src/views/statistics/rechargeLog/components/echartPopup.vue new file mode 100644 index 0000000..7e6fc42 --- /dev/null +++ b/src/views/statistics/rechargeLog/components/echartPopup.vue @@ -0,0 +1,181 @@ + + + + diff --git a/src/views/statistics/rechargeLog/index.vue b/src/views/statistics/rechargeLog/index.vue new file mode 100755 index 0000000..ab54012 --- /dev/null +++ b/src/views/statistics/rechargeLog/index.vue @@ -0,0 +1,207 @@ + + diff --git a/src/views/statistics/revenueData/index.vue b/src/views/statistics/revenueData/index.vue new file mode 100755 index 0000000..441ca19 --- /dev/null +++ b/src/views/statistics/revenueData/index.vue @@ -0,0 +1,137 @@ + + diff --git a/src/views/statistics/statistical/index.vue b/src/views/statistics/statistical/index.vue new file mode 100755 index 0000000..48afbb7 --- /dev/null +++ b/src/views/statistics/statistical/index.vue @@ -0,0 +1,211 @@ + + diff --git a/src/views/statistics/userToday/index.vue b/src/views/statistics/userToday/index.vue new file mode 100755 index 0000000..107c3f0 --- /dev/null +++ b/src/views/statistics/userToday/index.vue @@ -0,0 +1,582 @@ + + diff --git a/src/views/statistics/videoIncome/index.vue b/src/views/statistics/videoIncome/index.vue new file mode 100755 index 0000000..774d392 --- /dev/null +++ b/src/views/statistics/videoIncome/index.vue @@ -0,0 +1,185 @@ + + diff --git a/src/views/statistics/videoKlGoldStat/index.vue b/src/views/statistics/videoKlGoldStat/index.vue new file mode 100755 index 0000000..7b1c8f0 --- /dev/null +++ b/src/views/statistics/videoKlGoldStat/index.vue @@ -0,0 +1,136 @@ + + diff --git a/src/views/statistics/videoPayGoldStat/index.vue b/src/views/statistics/videoPayGoldStat/index.vue new file mode 100755 index 0000000..e179eab --- /dev/null +++ b/src/views/statistics/videoPayGoldStat/index.vue @@ -0,0 +1,131 @@ + + diff --git a/src/views/statistics/withdrawLog/index.vue b/src/views/statistics/withdrawLog/index.vue new file mode 100755 index 0000000..832cac9 --- /dev/null +++ b/src/views/statistics/withdrawLog/index.vue @@ -0,0 +1,153 @@ + + + + diff --git a/src/views/systemManagement/applicationManagement/components/applicationAction.vue b/src/views/systemManagement/applicationManagement/components/applicationAction.vue new file mode 100644 index 0000000..f7b6b44 --- /dev/null +++ b/src/views/systemManagement/applicationManagement/components/applicationAction.vue @@ -0,0 +1,69 @@ + + + \ No newline at end of file diff --git a/src/views/systemManagement/applicationManagement/index.vue b/src/views/systemManagement/applicationManagement/index.vue new file mode 100644 index 0000000..54a034c --- /dev/null +++ b/src/views/systemManagement/applicationManagement/index.vue @@ -0,0 +1,107 @@ + + diff --git a/src/views/systemManagement/ipConfig/components/addIpConfig.vue b/src/views/systemManagement/ipConfig/components/addIpConfig.vue new file mode 100755 index 0000000..1d16793 --- /dev/null +++ b/src/views/systemManagement/ipConfig/components/addIpConfig.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/views/systemManagement/ipConfig/index.vue b/src/views/systemManagement/ipConfig/index.vue new file mode 100755 index 0000000..486b3ac --- /dev/null +++ b/src/views/systemManagement/ipConfig/index.vue @@ -0,0 +1,165 @@ + + + + diff --git a/src/views/systemManagement/systemConfig/index.vue b/src/views/systemManagement/systemConfig/index.vue new file mode 100644 index 0000000..e75d287 --- /dev/null +++ b/src/views/systemManagement/systemConfig/index.vue @@ -0,0 +1,1112 @@ + + + diff --git a/src/views/systemManagement/versionManagement/components/versionAction.vue b/src/views/systemManagement/versionManagement/components/versionAction.vue new file mode 100755 index 0000000..8aa28f0 --- /dev/null +++ b/src/views/systemManagement/versionManagement/components/versionAction.vue @@ -0,0 +1,392 @@ + + + + diff --git a/src/views/systemManagement/versionManagement/index.vue b/src/views/systemManagement/versionManagement/index.vue new file mode 100755 index 0000000..7fffefc --- /dev/null +++ b/src/views/systemManagement/versionManagement/index.vue @@ -0,0 +1,221 @@ + + + diff --git a/src/views/systemMessage/emailPush/components/addEmail.vue b/src/views/systemMessage/emailPush/components/addEmail.vue new file mode 100644 index 0000000..18b2e96 --- /dev/null +++ b/src/views/systemMessage/emailPush/components/addEmail.vue @@ -0,0 +1,181 @@ +/* eslint-disable no-console */ + + + + + diff --git a/src/views/systemMessage/emailPush/index.vue b/src/views/systemMessage/emailPush/index.vue new file mode 100644 index 0000000..f1d099a --- /dev/null +++ b/src/views/systemMessage/emailPush/index.vue @@ -0,0 +1,167 @@ + + + diff --git a/src/views/systemMessage/messagePush/components/addMessage.vue b/src/views/systemMessage/messagePush/components/addMessage.vue new file mode 100644 index 0000000..0c758ec --- /dev/null +++ b/src/views/systemMessage/messagePush/components/addMessage.vue @@ -0,0 +1,399 @@ +/* eslint-disable no-console */ + + + + + diff --git a/src/views/systemMessage/messagePush/index.vue b/src/views/systemMessage/messagePush/index.vue new file mode 100644 index 0000000..91dd214 --- /dev/null +++ b/src/views/systemMessage/messagePush/index.vue @@ -0,0 +1,223 @@ + + + diff --git a/src/views/transactionManagement/advanceOrderList/index.vue b/src/views/transactionManagement/advanceOrderList/index.vue new file mode 100644 index 0000000..418753b --- /dev/null +++ b/src/views/transactionManagement/advanceOrderList/index.vue @@ -0,0 +1,361 @@ + + + diff --git a/src/views/transactionManagement/integralExchange/index.vue b/src/views/transactionManagement/integralExchange/index.vue new file mode 100644 index 0000000..f46b885 --- /dev/null +++ b/src/views/transactionManagement/integralExchange/index.vue @@ -0,0 +1,436 @@ + + + diff --git a/src/views/transactionManagement/rechargeList/components/edit-desc.vue b/src/views/transactionManagement/rechargeList/components/edit-desc.vue new file mode 100755 index 0000000..8fa415f --- /dev/null +++ b/src/views/transactionManagement/rechargeList/components/edit-desc.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/transactionManagement/rechargeList/index.vue b/src/views/transactionManagement/rechargeList/index.vue new file mode 100755 index 0000000..e02cc14 --- /dev/null +++ b/src/views/transactionManagement/rechargeList/index.vue @@ -0,0 +1,657 @@ + + + + diff --git a/src/views/transactionManagement/transferList/index.vue b/src/views/transactionManagement/transferList/index.vue new file mode 100644 index 0000000..60ce159 --- /dev/null +++ b/src/views/transactionManagement/transferList/index.vue @@ -0,0 +1,286 @@ + + + + + + diff --git a/src/views/transactionManagement/vipCardPurchaseRecord/index.vue b/src/views/transactionManagement/vipCardPurchaseRecord/index.vue new file mode 100644 index 0000000..86d11dd --- /dev/null +++ b/src/views/transactionManagement/vipCardPurchaseRecord/index.vue @@ -0,0 +1,409 @@ + + + + + diff --git a/src/views/transactionManagement/withdrawBank/components/edit-bank.vue b/src/views/transactionManagement/withdrawBank/components/edit-bank.vue new file mode 100755 index 0000000..0900219 --- /dev/null +++ b/src/views/transactionManagement/withdrawBank/components/edit-bank.vue @@ -0,0 +1,149 @@ + + + + diff --git a/src/views/transactionManagement/withdrawBank/index.vue b/src/views/transactionManagement/withdrawBank/index.vue new file mode 100755 index 0000000..4b3807c --- /dev/null +++ b/src/views/transactionManagement/withdrawBank/index.vue @@ -0,0 +1,139 @@ + + + diff --git a/src/views/transactionManagement/withdrawList/index.vue b/src/views/transactionManagement/withdrawList/index.vue new file mode 100755 index 0000000..a36e48c --- /dev/null +++ b/src/views/transactionManagement/withdrawList/index.vue @@ -0,0 +1,671 @@ + + + + diff --git a/src/views/transactionManagement/withdrawMethod/components/channelAction.vue b/src/views/transactionManagement/withdrawMethod/components/channelAction.vue new file mode 100755 index 0000000..45b480e --- /dev/null +++ b/src/views/transactionManagement/withdrawMethod/components/channelAction.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/src/views/transactionManagement/withdrawMethod/components/editTax.vue b/src/views/transactionManagement/withdrawMethod/components/editTax.vue new file mode 100755 index 0000000..14f4d32 --- /dev/null +++ b/src/views/transactionManagement/withdrawMethod/components/editTax.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/transactionManagement/withdrawMethod/index.vue b/src/views/transactionManagement/withdrawMethod/index.vue new file mode 100755 index 0000000..c6b99df --- /dev/null +++ b/src/views/transactionManagement/withdrawMethod/index.vue @@ -0,0 +1,173 @@ +0 + + + + diff --git a/src/views/transactionManagement/withdrawRefund/components/refund.vue b/src/views/transactionManagement/withdrawRefund/components/refund.vue new file mode 100644 index 0000000..0b42107 --- /dev/null +++ b/src/views/transactionManagement/withdrawRefund/components/refund.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/views/transactionManagement/withdrawRefund/index.vue b/src/views/transactionManagement/withdrawRefund/index.vue new file mode 100644 index 0000000..9bf2094 --- /dev/null +++ b/src/views/transactionManagement/withdrawRefund/index.vue @@ -0,0 +1,296 @@ + + + + diff --git a/src/views/user/backpackList/index.vue b/src/views/user/backpackList/index.vue new file mode 100644 index 0000000..a567119 --- /dev/null +++ b/src/views/user/backpackList/index.vue @@ -0,0 +1,303 @@ + + + diff --git a/src/views/user/blackList/components/addBlack.vue b/src/views/user/blackList/components/addBlack.vue new file mode 100755 index 0000000..ecc64bf --- /dev/null +++ b/src/views/user/blackList/components/addBlack.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/views/user/blackList/index.vue b/src/views/user/blackList/index.vue new file mode 100755 index 0000000..f9b815c --- /dev/null +++ b/src/views/user/blackList/index.vue @@ -0,0 +1,154 @@ + + + + diff --git a/src/views/user/commonQuestion/components/question-popup.vue b/src/views/user/commonQuestion/components/question-popup.vue new file mode 100755 index 0000000..1496665 --- /dev/null +++ b/src/views/user/commonQuestion/components/question-popup.vue @@ -0,0 +1,148 @@ + + + diff --git a/src/views/user/commonQuestion/index.vue b/src/views/user/commonQuestion/index.vue new file mode 100755 index 0000000..85f5906 --- /dev/null +++ b/src/views/user/commonQuestion/index.vue @@ -0,0 +1,179 @@ + + + diff --git a/src/views/user/feedbackList/components/editFeedback.vue b/src/views/user/feedbackList/components/editFeedback.vue new file mode 100755 index 0000000..4f8992e --- /dev/null +++ b/src/views/user/feedbackList/components/editFeedback.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/views/user/feedbackList/components/previewPicture.vue b/src/views/user/feedbackList/components/previewPicture.vue new file mode 100644 index 0000000..de34e94 --- /dev/null +++ b/src/views/user/feedbackList/components/previewPicture.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/views/user/feedbackList/index.vue b/src/views/user/feedbackList/index.vue new file mode 100755 index 0000000..8362975 --- /dev/null +++ b/src/views/user/feedbackList/index.vue @@ -0,0 +1,477 @@ + + + diff --git a/src/views/user/userFollow/components/add.vue b/src/views/user/userFollow/components/add.vue new file mode 100755 index 0000000..76098b7 --- /dev/null +++ b/src/views/user/userFollow/components/add.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/user/userFollow/index.vue b/src/views/user/userFollow/index.vue new file mode 100755 index 0000000..ea82406 --- /dev/null +++ b/src/views/user/userFollow/index.vue @@ -0,0 +1,458 @@ + + + + diff --git a/src/views/user/userIpBlock/components/blockAction.vue b/src/views/user/userIpBlock/components/blockAction.vue new file mode 100755 index 0000000..577eb63 --- /dev/null +++ b/src/views/user/userIpBlock/components/blockAction.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/src/views/user/userIpBlock/index.vue b/src/views/user/userIpBlock/index.vue new file mode 100755 index 0000000..8e82b13 --- /dev/null +++ b/src/views/user/userIpBlock/index.vue @@ -0,0 +1,170 @@ + + diff --git a/src/views/user/userList/components/aiMateTrans.vue b/src/views/user/userList/components/aiMateTrans.vue new file mode 100755 index 0000000..108b1c5 --- /dev/null +++ b/src/views/user/userList/components/aiMateTrans.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/views/user/userList/components/edit-user.vue b/src/views/user/userList/components/edit-user.vue new file mode 100755 index 0000000..4222461 --- /dev/null +++ b/src/views/user/userList/components/edit-user.vue @@ -0,0 +1,921 @@ + + + + + diff --git a/src/views/user/userList/components/gameCodeDialog.vue b/src/views/user/userList/components/gameCodeDialog.vue new file mode 100644 index 0000000..e215e69 --- /dev/null +++ b/src/views/user/userList/components/gameCodeDialog.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/views/user/userList/components/qrcode.vue b/src/views/user/userList/components/qrcode.vue new file mode 100644 index 0000000..a26f91e --- /dev/null +++ b/src/views/user/userList/components/qrcode.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/src/views/user/userList/components/recycleGameBalance.vue b/src/views/user/userList/components/recycleGameBalance.vue new file mode 100755 index 0000000..ae91d3b --- /dev/null +++ b/src/views/user/userList/components/recycleGameBalance.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/user/userList/components/recycleGold.vue b/src/views/user/userList/components/recycleGold.vue new file mode 100755 index 0000000..7a7bc05 --- /dev/null +++ b/src/views/user/userList/components/recycleGold.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/src/views/user/userList/components/unblockPage.vue b/src/views/user/userList/components/unblockPage.vue new file mode 100644 index 0000000..3e89ef3 --- /dev/null +++ b/src/views/user/userList/components/unblockPage.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/views/user/userList/components/verification-code.vue b/src/views/user/userList/components/verification-code.vue new file mode 100644 index 0000000..0f07a79 --- /dev/null +++ b/src/views/user/userList/components/verification-code.vue @@ -0,0 +1,88 @@ + + + + diff --git a/src/views/user/userList/components/view-video.vue b/src/views/user/userList/components/view-video.vue new file mode 100755 index 0000000..1d058af --- /dev/null +++ b/src/views/user/userList/components/view-video.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/views/user/userList/components/vipInfo.vue b/src/views/user/userList/components/vipInfo.vue new file mode 100755 index 0000000..adc90f4 --- /dev/null +++ b/src/views/user/userList/components/vipInfo.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/views/user/userList/index.vue b/src/views/user/userList/index.vue new file mode 100755 index 0000000..832fdd7 --- /dev/null +++ b/src/views/user/userList/index.vue @@ -0,0 +1,1649 @@ + + + + diff --git a/src/views/user/userLog/index.vue b/src/views/user/userLog/index.vue new file mode 100755 index 0000000..53ea55c --- /dev/null +++ b/src/views/user/userLog/index.vue @@ -0,0 +1,186 @@ + + diff --git a/src/views/user/userMessageList/index.vue b/src/views/user/userMessageList/index.vue new file mode 100644 index 0000000..bbc654b --- /dev/null +++ b/src/views/user/userMessageList/index.vue @@ -0,0 +1,369 @@ + + + diff --git a/src/views/user/userPostsLog/index.vue b/src/views/user/userPostsLog/index.vue new file mode 100755 index 0000000..35c51ae --- /dev/null +++ b/src/views/user/userPostsLog/index.vue @@ -0,0 +1,355 @@ + + + + diff --git a/src/views/user/userRecommendation/components/recommendAction.vue b/src/views/user/userRecommendation/components/recommendAction.vue new file mode 100644 index 0000000..bb3c3dd --- /dev/null +++ b/src/views/user/userRecommendation/components/recommendAction.vue @@ -0,0 +1,135 @@ + + + \ No newline at end of file diff --git a/src/views/user/userRecommendation/index.vue b/src/views/user/userRecommendation/index.vue new file mode 100644 index 0000000..f0edb7b --- /dev/null +++ b/src/views/user/userRecommendation/index.vue @@ -0,0 +1,138 @@ + + + diff --git a/src/views/user/userReport/components/comment-popup.vue b/src/views/user/userReport/components/comment-popup.vue new file mode 100755 index 0000000..438e147 --- /dev/null +++ b/src/views/user/userReport/components/comment-popup.vue @@ -0,0 +1,32 @@ + + + + diff --git a/src/views/user/userReport/index.vue b/src/views/user/userReport/index.vue new file mode 100755 index 0000000..ce9dccd --- /dev/null +++ b/src/views/user/userReport/index.vue @@ -0,0 +1,319 @@ + + + diff --git a/src/views/user/userResource/components/resourceAction.vue b/src/views/user/userResource/components/resourceAction.vue new file mode 100755 index 0000000..c1c92be --- /dev/null +++ b/src/views/user/userResource/components/resourceAction.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/views/user/userResource/index.vue b/src/views/user/userResource/index.vue new file mode 100755 index 0000000..8865dc9 --- /dev/null +++ b/src/views/user/userResource/index.vue @@ -0,0 +1,163 @@ + + diff --git a/src/views/user/userWatch/index.vue b/src/views/user/userWatch/index.vue new file mode 100755 index 0000000..9277459 --- /dev/null +++ b/src/views/user/userWatch/index.vue @@ -0,0 +1,137 @@ + + diff --git a/src/views/videoManagement/activeConfig/index.vue b/src/views/videoManagement/activeConfig/index.vue new file mode 100644 index 0000000..427868f --- /dev/null +++ b/src/views/videoManagement/activeConfig/index.vue @@ -0,0 +1,237 @@ + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/cityList/components/addTag.vue b/src/views/videoManagement/cityList/components/addTag.vue new file mode 100755 index 0000000..f4f2855 --- /dev/null +++ b/src/views/videoManagement/cityList/components/addTag.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/src/views/videoManagement/cityList/index.vue b/src/views/videoManagement/cityList/index.vue new file mode 100755 index 0000000..e614687 --- /dev/null +++ b/src/views/videoManagement/cityList/index.vue @@ -0,0 +1,155 @@ + + diff --git a/src/views/videoManagement/commentList/components/importComments.vue b/src/views/videoManagement/commentList/components/importComments.vue new file mode 100644 index 0000000..2d71303 --- /dev/null +++ b/src/views/videoManagement/commentList/components/importComments.vue @@ -0,0 +1,147 @@ + + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/commentList/components/importComments11.vue b/src/views/videoManagement/commentList/components/importComments11.vue new file mode 100644 index 0000000..18df5dd --- /dev/null +++ b/src/views/videoManagement/commentList/components/importComments11.vue @@ -0,0 +1,116 @@ + + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/commentList/components/updateComment.vue b/src/views/videoManagement/commentList/components/updateComment.vue new file mode 100644 index 0000000..d7784cf --- /dev/null +++ b/src/views/videoManagement/commentList/components/updateComment.vue @@ -0,0 +1,92 @@ + + + diff --git a/src/views/videoManagement/commentList/index.vue b/src/views/videoManagement/commentList/index.vue new file mode 100755 index 0000000..95847b2 --- /dev/null +++ b/src/views/videoManagement/commentList/index.vue @@ -0,0 +1,1040 @@ + + diff --git a/src/views/videoManagement/emojiList/index.vue b/src/views/videoManagement/emojiList/index.vue new file mode 100644 index 0000000..7419afe --- /dev/null +++ b/src/views/videoManagement/emojiList/index.vue @@ -0,0 +1,780 @@ + + + diff --git a/src/views/videoManagement/filterManagement/components/addFilter.vue b/src/views/videoManagement/filterManagement/components/addFilter.vue new file mode 100755 index 0000000..828861a --- /dev/null +++ b/src/views/videoManagement/filterManagement/components/addFilter.vue @@ -0,0 +1,87 @@ + + + \ No newline at end of file diff --git a/src/views/videoManagement/filterManagement/index.vue b/src/views/videoManagement/filterManagement/index.vue new file mode 100755 index 0000000..adc0d37 --- /dev/null +++ b/src/views/videoManagement/filterManagement/index.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/views/videoManagement/freeVidCfg/components/addFree.vue b/src/views/videoManagement/freeVidCfg/components/addFree.vue new file mode 100755 index 0000000..0654a86 --- /dev/null +++ b/src/views/videoManagement/freeVidCfg/components/addFree.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/views/videoManagement/freeVidCfg/index.vue b/src/views/videoManagement/freeVidCfg/index.vue new file mode 100755 index 0000000..2cf426b --- /dev/null +++ b/src/views/videoManagement/freeVidCfg/index.vue @@ -0,0 +1,137 @@ + + + diff --git a/src/views/videoManagement/goldCoinVideoConfig/components/previewPicture.vue b/src/views/videoManagement/goldCoinVideoConfig/components/previewPicture.vue new file mode 100644 index 0000000..b43176f --- /dev/null +++ b/src/views/videoManagement/goldCoinVideoConfig/components/previewPicture.vue @@ -0,0 +1,155 @@ + + + diff --git a/src/views/videoManagement/goldCoinVideoConfig/index.vue b/src/views/videoManagement/goldCoinVideoConfig/index.vue new file mode 100644 index 0000000..9f89ca3 --- /dev/null +++ b/src/views/videoManagement/goldCoinVideoConfig/index.vue @@ -0,0 +1,703 @@ + + + diff --git a/src/views/videoManagement/hotCity/components/addCity.vue b/src/views/videoManagement/hotCity/components/addCity.vue new file mode 100755 index 0000000..53be19d --- /dev/null +++ b/src/views/videoManagement/hotCity/components/addCity.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/videoManagement/hotCity/index.vue b/src/views/videoManagement/hotCity/index.vue new file mode 100755 index 0000000..326066c --- /dev/null +++ b/src/views/videoManagement/hotCity/index.vue @@ -0,0 +1,137 @@ + + diff --git a/src/views/videoManagement/pushList/index.vue b/src/views/videoManagement/pushList/index.vue new file mode 100644 index 0000000..8bb84ce --- /dev/null +++ b/src/views/videoManagement/pushList/index.vue @@ -0,0 +1,99 @@ + + \ No newline at end of file diff --git a/src/views/videoManagement/quickSearch/components/add.vue b/src/views/videoManagement/quickSearch/components/add.vue new file mode 100755 index 0000000..559403d --- /dev/null +++ b/src/views/videoManagement/quickSearch/components/add.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/src/views/videoManagement/quickSearch/index.vue b/src/views/videoManagement/quickSearch/index.vue new file mode 100755 index 0000000..8feb768 --- /dev/null +++ b/src/views/videoManagement/quickSearch/index.vue @@ -0,0 +1,187 @@ + + diff --git a/src/views/videoManagement/recommendSignature/components/addTag.vue b/src/views/videoManagement/recommendSignature/components/addTag.vue new file mode 100755 index 0000000..67e3188 --- /dev/null +++ b/src/views/videoManagement/recommendSignature/components/addTag.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/views/videoManagement/recommendSignature/index.vue b/src/views/videoManagement/recommendSignature/index.vue new file mode 100644 index 0000000..926a3ab --- /dev/null +++ b/src/views/videoManagement/recommendSignature/index.vue @@ -0,0 +1,207 @@ + + + + diff --git a/src/views/videoManagement/resourceManage/components/resourceAction.vue b/src/views/videoManagement/resourceManage/components/resourceAction.vue new file mode 100755 index 0000000..3037c70 --- /dev/null +++ b/src/views/videoManagement/resourceManage/components/resourceAction.vue @@ -0,0 +1,297 @@ + + + + diff --git a/src/views/videoManagement/resourceManage/index.vue b/src/views/videoManagement/resourceManage/index.vue new file mode 100755 index 0000000..e3871ee --- /dev/null +++ b/src/views/videoManagement/resourceManage/index.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/views/videoManagement/tagConfiguration/index.vue b/src/views/videoManagement/tagConfiguration/index.vue new file mode 100644 index 0000000..863bdd0 --- /dev/null +++ b/src/views/videoManagement/tagConfiguration/index.vue @@ -0,0 +1,363 @@ + + + + + diff --git a/src/views/videoManagement/tagList/components/addRecommendTag.vue b/src/views/videoManagement/tagList/components/addRecommendTag.vue new file mode 100644 index 0000000..85a216f --- /dev/null +++ b/src/views/videoManagement/tagList/components/addRecommendTag.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/src/views/videoManagement/tagList/components/addTag.vue b/src/views/videoManagement/tagList/components/addTag.vue new file mode 100755 index 0000000..64cac77 --- /dev/null +++ b/src/views/videoManagement/tagList/components/addTag.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/src/views/videoManagement/tagList/index.vue b/src/views/videoManagement/tagList/index.vue new file mode 100755 index 0000000..9204096 --- /dev/null +++ b/src/views/videoManagement/tagList/index.vue @@ -0,0 +1,401 @@ + + + + diff --git a/src/views/videoManagement/vidResCfg/components/look.vue b/src/views/videoManagement/vidResCfg/components/look.vue new file mode 100644 index 0000000..15b8fd8 --- /dev/null +++ b/src/views/videoManagement/vidResCfg/components/look.vue @@ -0,0 +1,59 @@ + + + + diff --git a/src/views/videoManagement/vidResCfg/components/preview-video.vue b/src/views/videoManagement/vidResCfg/components/preview-video.vue new file mode 100644 index 0000000..5b3aa06 --- /dev/null +++ b/src/views/videoManagement/vidResCfg/components/preview-video.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/videoManagement/vidResCfg/components/previewPicture.vue b/src/views/videoManagement/vidResCfg/components/previewPicture.vue new file mode 100644 index 0000000..1ebfa2a --- /dev/null +++ b/src/views/videoManagement/vidResCfg/components/previewPicture.vue @@ -0,0 +1,162 @@ + + + diff --git a/src/views/videoManagement/vidResCfg/index.vue b/src/views/videoManagement/vidResCfg/index.vue new file mode 100644 index 0000000..ea41574 --- /dev/null +++ b/src/views/videoManagement/vidResCfg/index.vue @@ -0,0 +1,792 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/add-video.vue b/src/views/videoManagement/videoExamine/components/add-video.vue new file mode 100755 index 0000000..fec2e02 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/add-video.vue @@ -0,0 +1,645 @@ +/* eslint-disable no-unreachable */ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/batchAutoPublishing.vue b/src/views/videoManagement/videoExamine/components/batchAutoPublishing.vue new file mode 100755 index 0000000..9a4acc3 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/batchAutoPublishing.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/configuration-popup.vue b/src/views/videoManagement/videoExamine/components/configuration-popup.vue new file mode 100644 index 0000000..9665f72 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/configuration-popup.vue @@ -0,0 +1,68 @@ + + \ No newline at end of file diff --git a/src/views/videoManagement/videoExamine/components/edit-video.vue b/src/views/videoManagement/videoExamine/components/edit-video.vue new file mode 100755 index 0000000..ee7d2ab --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/edit-video.vue @@ -0,0 +1,587 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/examine-all.vue b/src/views/videoManagement/videoExamine/components/examine-all.vue new file mode 100644 index 0000000..88552f8 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/examine-all.vue @@ -0,0 +1,201 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/examine-popup.vue b/src/views/videoManagement/videoExamine/components/examine-popup.vue new file mode 100755 index 0000000..ad66773 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/examine-popup.vue @@ -0,0 +1,405 @@ + + + diff --git a/src/views/videoManagement/videoExamine/components/notPass-list.vue b/src/views/videoManagement/videoExamine/components/notPass-list.vue new file mode 100644 index 0000000..7591e90 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/notPass-list.vue @@ -0,0 +1,219 @@ + + \ No newline at end of file diff --git a/src/views/videoManagement/videoExamine/components/preview-video.vue b/src/views/videoManagement/videoExamine/components/preview-video.vue new file mode 100644 index 0000000..f1f2bce --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/preview-video.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/components/previewPicture.vue b/src/views/videoManagement/videoExamine/components/previewPicture.vue new file mode 100644 index 0000000..507fce9 --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/previewPicture.vue @@ -0,0 +1,202 @@ + + + diff --git a/src/views/videoManagement/videoExamine/components/tags-popup.vue b/src/views/videoManagement/videoExamine/components/tags-popup.vue new file mode 100755 index 0000000..b30460c --- /dev/null +++ b/src/views/videoManagement/videoExamine/components/tags-popup.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/views/videoManagement/videoExamine/index.vue b/src/views/videoManagement/videoExamine/index.vue new file mode 100755 index 0000000..59633cb --- /dev/null +++ b/src/views/videoManagement/videoExamine/index.vue @@ -0,0 +1,1081 @@ + + + + diff --git a/src/views/videoManagement/videoHot/components/editPopup.vue b/src/views/videoManagement/videoHot/components/editPopup.vue new file mode 100755 index 0000000..1137492 --- /dev/null +++ b/src/views/videoManagement/videoHot/components/editPopup.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/views/videoManagement/videoHot/index.vue b/src/views/videoManagement/videoHot/index.vue new file mode 100755 index 0000000..d8078db --- /dev/null +++ b/src/views/videoManagement/videoHot/index.vue @@ -0,0 +1,156 @@ + + diff --git a/src/views/videoManagement/videoList/components/batchEditPopup.vue b/src/views/videoManagement/videoList/components/batchEditPopup.vue new file mode 100644 index 0000000..34285b0 --- /dev/null +++ b/src/views/videoManagement/videoList/components/batchEditPopup.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/edit-video.vue b/src/views/videoManagement/videoList/components/edit-video.vue new file mode 100755 index 0000000..6de233e --- /dev/null +++ b/src/views/videoManagement/videoList/components/edit-video.vue @@ -0,0 +1,1063 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/morePreviewPicture.vue b/src/views/videoManagement/videoList/components/morePreviewPicture.vue new file mode 100644 index 0000000..7a4e185 --- /dev/null +++ b/src/views/videoManagement/videoList/components/morePreviewPicture.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/videoManagement/videoList/components/previewPicture.vue b/src/views/videoManagement/videoList/components/previewPicture.vue new file mode 100644 index 0000000..7a4e185 --- /dev/null +++ b/src/views/videoManagement/videoList/components/previewPicture.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/videoManagement/videoList/components/setPopularity.vue b/src/views/videoManagement/videoList/components/setPopularity.vue new file mode 100644 index 0000000..7ea99d4 --- /dev/null +++ b/src/views/videoManagement/videoList/components/setPopularity.vue @@ -0,0 +1,198 @@ + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/videoList/components/transferPostPopup.vue b/src/views/videoManagement/videoList/components/transferPostPopup.vue new file mode 100644 index 0000000..5e14971 --- /dev/null +++ b/src/views/videoManagement/videoList/components/transferPostPopup.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/updateDownloadPopup.vue b/src/views/videoManagement/videoList/components/updateDownloadPopup.vue new file mode 100644 index 0000000..7421ada --- /dev/null +++ b/src/views/videoManagement/videoList/components/updateDownloadPopup.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/updateFreeTimePopup.vue b/src/views/videoManagement/videoList/components/updateFreeTimePopup.vue new file mode 100644 index 0000000..f8cee0a --- /dev/null +++ b/src/views/videoManagement/videoList/components/updateFreeTimePopup.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/updatePublisherPopup.vue b/src/views/videoManagement/videoList/components/updatePublisherPopup.vue new file mode 100644 index 0000000..6bddb92 --- /dev/null +++ b/src/views/videoManagement/videoList/components/updatePublisherPopup.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/videoManagement/videoList/components/vidHotQuery.vue b/src/views/videoManagement/videoList/components/vidHotQuery.vue new file mode 100644 index 0000000..2b00625 --- /dev/null +++ b/src/views/videoManagement/videoList/components/vidHotQuery.vue @@ -0,0 +1,122 @@ + + + + + \ No newline at end of file diff --git a/src/views/videoManagement/videoList/index.vue b/src/views/videoManagement/videoList/index.vue new file mode 100755 index 0000000..16d0fae --- /dev/null +++ b/src/views/videoManagement/videoList/index.vue @@ -0,0 +1,2771 @@ + + + + diff --git a/src/views/videoManagement/videoTimeOnlineList/components/add-video.vue b/src/views/videoManagement/videoTimeOnlineList/components/add-video.vue new file mode 100755 index 0000000..f2c2aab --- /dev/null +++ b/src/views/videoManagement/videoTimeOnlineList/components/add-video.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/videoManagement/videoTimeOnlineList/components/previewPicture.vue b/src/views/videoManagement/videoTimeOnlineList/components/previewPicture.vue new file mode 100644 index 0000000..93837a9 --- /dev/null +++ b/src/views/videoManagement/videoTimeOnlineList/components/previewPicture.vue @@ -0,0 +1,97 @@ + + + diff --git a/src/views/videoManagement/videoTimeOnlineList/index.vue b/src/views/videoManagement/videoTimeOnlineList/index.vue new file mode 100755 index 0000000..8e6c58f --- /dev/null +++ b/src/views/videoManagement/videoTimeOnlineList/index.vue @@ -0,0 +1,386 @@ + + + + diff --git a/src/views/welcome/index.vue b/src/views/welcome/index.vue new file mode 100755 index 0000000..0233f5f --- /dev/null +++ b/src/views/welcome/index.vue @@ -0,0 +1,72 @@ + + + diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..46cda94 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,34 @@ +/* + * @Author: 王枫叶 + * @Date: 2020-10-31 17:53:35 + * @LastEditors: 王枫叶 + * @LastEditTime: 2020-11-04 14:41:28 + */ + // gzip压缩配置 + const CompressionPlugin = require("compression-webpack-plugin") +module.exports = { + publicPath: './', + configureWebpack: () => { + if (process.env.NODE_ENV === "production") { + return { + plugins: [ + new CompressionPlugin({ + test: /\.js$|\.css$|\.html$|\.mp4$/, //匹配文件名 + threshold: 10240, //对超出10k对数据进行压缩 + deleteOriginalAssets: false //是否删除文件 + }) + ] + }; + } + }, + + css: { + loaderOptions: { + sass: { + data: `@import "@/assets/scss/base.scss";` + } + } + }, + + +}