From 397398b74698982ae1e88dbe1bdf74826512d488 Mon Sep 17 00:00:00 2001 From: fish Date: Thu, 8 Oct 2026 17:48:09 +0800 Subject: [PATCH] =?UTF-8?q?init:=20=E5=88=9D=E5=A7=8B=E5=8C=96=20hgmj=20?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- .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 + .node-version | 1 + 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 -> 127225 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 -> 207478 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 | 173 + 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 | 789 + .../animeContentList/index.vue | 749 + .../animeList/components/preview-media.vue | 1801 ++ .../components/updateFreeEpisodePopup.vue | 94 + .../animeList/components/updatePricePopup.vue | 136 + .../animeList/components/updateTagsPopup.vue | 225 + src/views/animationManage/animeList/index.vue | 2380 +++ .../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 | 923 + .../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 | 653 + .../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 | 1130 + .../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 + test_build.sh | 7 + vue.config.js | 34 + 645 files changed, 179153 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 .node-version 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 100755 test_build.sh 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/.node-version b/.node-version new file mode 100644 index 0000000..3cacc0b --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +12 \ No newline at end of file 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..37a4ab8 --- /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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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..b846de2 --- /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/hgmj/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..3a26aa8 --- /dev/null +++ b/project.md @@ -0,0 +1,162 @@ +--- +项目名称: 91短剧 管理后台客户端 # 与 DMP 或内部命名一致时请自行替换 +一级部门: 北斗 # 请填写一级部门名称 +二级部门: 瑞升 # 请填写二级部门名称,无则留空 + +DMP编码: JHA-214 # 无则留空 + +项目类型: PC + # 可选值: + # H5 / APP / PC / 服务 / 组件 / 工具 / AI / 中间件 + +开发语言: Node + # 可选值: + # GO / Java / PHP / Node + +项目负责人: DN3634,DN8161 # 员工编号,多个用逗号隔开,这里的负责是这套代码的负责人 + +运维负责人: DN9460,DN9651,DN4792 # 负责部署、监控、K8S、发布、证书等 + +产品负责人: YY1145,YY1208 # 项目产品经理 + +项目成员: DN3634,DN8161 + +项目状态: 开发中 + # 可选值: + # 开发中 / 维护中 / 已停止 / 已归档 + +项目级别: 中 + # 可选值: + # 高 / 中 / 低 + +核心分支: main + +代码仓库: + - https://bd-git.jsyyds.com/ruisheng/jha-214-91/frontend/91dj-admin-client + +最后审计人: + +最后审计时间: + +告警群: + +备注: + - `package.json` 中 `name` 为 `admin-server`,仓库/目录名为 `91dj-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/radiusdec;rad=radius>>radiusbiasshift;if(rad<=1)rad=0;for(j=0;jN&o;r05AXq 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

@BAS|1 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

~SYl+0S9C05z95;D8|0rx!y|1lzH?7WWd8}PN zWoN^Zvoak246C6j@t3F6a3vlRJEXE&DQhK0OkR;&K)uxWu-qRM}IL2O%dR~;FnR6{Y#0)ykl)_m4FI1V(w$_tDf+P0aPF34wfOo;hYoKBft)M zNE*h1R_`=4ric;vv{Dy_TxBNy-BDSItGvAItE?M;<{4FW5_)61Czi>Me$udZGfW@D zD8GhLRMht2?;?7hT&cMyVbwxJr^-~EugaFYhx>9KWSKCKnoHy=zmTTo`{(DEK4Bi3 z{IFyD|C|^AMyNi??Ck6{0DiVC@p6Kpbg^+-Udp^-2r~QSk*=|d#1045wmFPd%P004 z?V}iRSu7>1IpJR87^b|4uXq*H+OC0_R1>I%hM_krN34{YNc4WlrWzVsG)m)?40E;u zakvvxv@aubb$_sz)d)v_5@PN{Y%>|Y+#3KvweWL#yze`!OZ)I8`Ug(Y?(*?GQ%h@Kn!!^>NifR)}eJ+I%8|jGpuauUq|lek@iBpYlGHaM=@N z070XvP~)klTp8=gXO)p|>An)Ee`tutB5+0wxjUs(WAL%;2Fj18Y5K7fCr;dHzPW0j zzW={708|#qEiAvrr>53CA1Gc1lrILbwIYF7-Eyn%{axXPqm*XL0K)sLshZ{rdk4cA zR+&mH665bz2I2pVr1lT;ip1E^?w(?l@pVsF-CpJSL)`80U)rK=`27*rjS|PFzI!yD z)tr@xG{_;M*T1AtL^{Z)+;h?0vn+8SN$|I2S^n+#`1}_R9%Qf%{9}9e|G6`OQ6K@7 zE5NVW+1Z)FVDPM>EU!+I2)Du;$})1urElLR-yVQ6v%M!rUffsvn?&#fIg zQeUooy`sz5qnoUDq^pP3dO25l#N*9GOxt))cG2Rbrue$m?_G(-`}@k3(uKaFx+{P5 zG`RYajXxc|Kbnd>`YwrD0MdloaT-luud0q^Nw~zg55SG|lV#cU$B%Qtj=r?1 z|IeKPRJ8&`T=cc5&3tj@^fFDKp7;Bg7DaJslHgqOCnibKs)p{WhsYCAxrw#jIoWF?OFJ-3$PNr#kXPTyW)$8@|7De&x`T6-rE0SG{c>YPe z`u|^L0Hc^eVl@Nvnn1n2vymm|r%853igX8(ati?ZS(hXUb?Tg;=;IG&f&KumALxb^ z0!;pH8&&=wgIMLGRTcPCI0GL~4;p#D$GOMf + + + + + + + + 91短剧后台管理系统 + + + + + + +

+ + + + \ 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..3aa2195b48576d337619c549a36becc882b49c05 GIT binary patch literal 207478 zcmX6^V{|1!8hx>C+qRvFC&pxA+qP}nHYT?1iEZ0>Np^PkN1y8IuKN1kuliKixpg~2 zQC<=O78e!(03b+9i7NvDp#M%m0nm{Dibwaw_kRV9y_BXC004*f-vb1YnT`GLB8Zc+ zq$r?v2LJ3|1>8*Jrw9Ph5C;b|fcRHObpG+nS;fxO+0DSw1R!ByW@C`skZJ?~qq&n7 z7g2Qwx%`AmHeT}}g!cW0OG>C^opg0`adB&g=$J>$CGHnVN)}f_hZ&oTL=~}knYzx# ziC9=;GgEgm1-Y_xp0R|diD_a>lz>yDn~x;tM*jiTAAehmu)a}Qdw#EZ#x~gFSLbun z@j}{I*)dP~RXOJFu=8~6_R{-JA-9Ks09=qv3%F*LcqDfGJp(iPCpy*fmX(Eot09(8 zI@SnQC4B&W!Cv%}qB_9hry%QH1bkEKNmp)zyTTfbeNU+R2l&?eILE(0aKSWPB>s7y zXHdf{L5Y22gA9hdLw3A~$0l+H|Bd1XD#Z*FEeRg_+i0W+=Z;JinMcI!^PVhy;DWFe zzV8A)SzHKTFx`wEnqNpbI*d7Gy^J}8rfc3G+=!SRQtt7MzD)9T#_xkiZqEfm1#*`U zK5{qC6A7kyJq#R*A>vEyAJ9_f5H5}XcmeH;~a<-Md)YWVJ8$q^A9@+wHN4@ zHX=~IXg+m404;r>3ie+}HPE@zQj8_T?*>%Js509hXpZKN;r`rpj{8!|{!uY8YDCO=e_@?aV; zMGzoR!7mwx2(6>!;Qz^_>AKUOfLxaMI>sg$Gpu4*a@PDifU|DX(_|JREEg-f@Z%bDI&=ubzGavWAb{6%%(MLepqI${h z;@;T;ao6109ppG5{kO!xip_ zVevI8@px3cS#rapODSF6K>ON=i{Emj9@FM0kF1H04Q zY-#OS2#Urg8&b6S7PPS_m*NfKWWFobyYOu9Eud5Htzq{X&##8ta+;o6<(8B(h{ora z?zLtRJ4;A^z4wgX!6G2mzceid43LopsNRqNRaJud;0>XA83H7WWXmW@x(s%4|Byig zXHDS*nW~t$M5t804Zc&pS@nwLGjoK@H>R6lF8<(@Qbw+_ee5k;g9pir2I8P49Ub&DkOL zD&!w1)<}g|_aaZNQh3->-q858k~syqcLb{cl=NMCMKH0 ztp@1HhfIQ+>P-g&C4?=VWZK*Kg+lu9VbL@6a~3Atjf*1-%4mNGL>?a!2>&Exh*#>- zgBgGHS8p{2mVRPH&7AR0WS%==)KkiQb=tKgf!g6h>U-Au!KUOR2Z-Zm-hQ<4{*2+C zA&yQM?MMInAemMMs)J#c^f5y68JDzL&c4G2!&8P7i7C((%`j^3=Fa4q}u1lB$^ z=kd6p_`}wMBM1p*yw{zQc64S5fZi$JE}xi!YFpZ*!u$*(-%~&uBL5*IT1?ka4>-k>DzM0b1SSUy%)X!KriV8I*hWxK~e z%WfkqD2$IZDuDF$O<$2!s?=$*CBU7sSxK2y%2yyLk1_7p60EW64-&I4STR@uM;FZQ z&wc=Pir@A(ed*Un*=`^^renz``g}_~u`1zS1oe-IWDk77quu$0g>pd?lsL3#(Ehr* zl^&_px>R4QPI4Kmbh0pq!sOR65qX1e$V$TF=l&JNqI}QO+iNEni<;mS+NAeL9VGk@N!}TCnK=|YO7M+w(J|&&!O11kGFMxCnjBv23UTt zN0X7KH`nkOgYi+~(-O6fnRyia?kl9RIxGF(M|E4VVqxp)IcQe|N9QWm8R6o_C4Q_{ z8E8&~N0GFZSC61rxCreG^Ii8k0bKK`eQIaox=4LYpUrtk-nUVP&SkXUH0JtbR~m^e z5v=oLyu<8^ET~3(3Noe1-~~?SEI5mYETugVj*s__ddm1aG>nWq{Sm?7J(coGrUw3b z%%)JNihq4uf19w&jNr_&4%e;ORPB`)Kgwk=I?S0hQ}t{S=u<-j6|W<*9&H-@wk=J~ zIl%cy!u3^38?=si_?lgzUD$Oi1S{~YCgGCbFlW_=>(nqJu`l)(?~GGgS|omTt_}~U zFzO2a33{Lthz?%&V`j$C!2JHb(a=4~?c|H~W*_d9){%Z@d^*((2N~>R(|aY@dp+LW z;ry#%y_nNr5i1h1-(NarL>C8y#QeVe`}X!N&v(!cMw;`Jl6U9u?<;AU5QmCt zg={tDg+w|o7{jeI?TC}2tW*@9P0qt&Ppw3@2ym}Mwd1Lj?9dVM9iKQAl2dzXI9ftJ zWF`ANd?rz&ibO!(lMOOJv6ZW}#Zn`$&XC4%8ejfv36P2MBmJpEV^{9uSV1e~V<;&# zN(QXb^FyrC5+mVwX)Q*O zK_R^R0~xJ6wzIV*;x{+yw&jO>({ls(+S}>GLMR|HXO|3QVP20#0SSQ2=e80N>_3Ue zp?xQu@h)bKY0xCL+?Cml@s-&{r~rxo_~gg+6}5LH>PO#R=%Wu8yk}8%hNX;>1##pk zkuYeIEF}f64X@`y%%OC@G5Ffm0IL1~6856NcI+t@PB{eh$9|V9F10dQ|4%M$eLa`{K zhj>}f*BK&Cpfgk>SXBts(v@bO&QYg4>XJISha5K$#u5(HTgDoTK4){NNTGKBG=>0Q zU>!w^&}U0xSgwJKXUtMXahNIACi@I_c{6HC8i(n6T2L4^|LsBOlbB;&=tZIl&V7&t zFzhR2kFVlx70A;wNgGNt9q_&dWRKB7bE}j)ABTXjWbJ!ppI+Pgoj2@9)6|NT? z{^%cPSy!)GieI*^^_~TBWrRCJH^4GB_xD3g#+pmm_avC{)`)2K0D+VXSf8s6ux#&= zsI0oYL9gpP$+Dm3(=hv%6hXwXm#p5}$hW3{C|V9+%4TbfN`JUtj!&99BkrFv!0m47 zwo^~9t~#3#Ic-8K42qYNfBm3M3geH6mo6>kVU&g@LSa7>5y{%NcLlMdhU{~H`mm9U z`P|OTFaC7AOVa63i%N+WKU8!rJO^J2CQr?F@j<=2tb(yHkP>$OU0IE!wj9x2r+RIo zDyuxmuAMcdT1y(eo2OXs)BofhkR|?E3f=mU8_!bGMnOKx^crhD zUYk|;+~^{m2alG*E0ORfUoD~(Gn%hmR(M&1nPWH=iW1BMix~Vb7cSauXgi#L-bY3l zH<28}=Zh_fczS&O3RhTL+xp=6-%i8H{5lplmJlDB zoH|e4KMxv0Qk41ZH7?{fN|F|Dy?>TQ-%=P`I@`jeoq}XH4G-VkkAW3IP~v z5b7D;#Vrx(@l;G^vJ8*MD}HD9eHF0!(>hyJ>RM14r07S3QPd3Jfo~(@0!+??CWImc zqKDD9`}zDFnLC?Yk`PA$_^ zP2NNmK3=8rSPvBzhw(QQ0*$H1G_3zuM)ZEdV*y8E^D$YlGI-I75pHQokngLpJtt zW89MnV`19XwLQEBw-M<6LUM(Y8AAyRdQ(henux&E^?l}m4P)WwWEF1f7M}136(0vb zi!85PMsN+x^ndljZ9>0uTMnLK*FcP2eL7G?nv`pw0|z$8E!2Epr`_^~t#m^QYre<5 zCZ!K#5mh%K*{otolbVR<36&SptBzw72aO(KVFAdKU)9E|eye0Wai=%s!ia0gh>56Q zT1qPaPGapn9h@0O7z|c(ai=FFVhEKUW!?{@6unf+J(Ny15j>-XCS90iStT$uX^xw| zDsYrK$RU?{(1krz4>X2+|3v8!_(>k7JSty8>z{O>4x&0=9%Ex|K)c zX&ZN~R2c3oeI(nCF=rc*1K~19d{|DYo9u8!hYd!UGzI5K^$bpIv5dE;-oL^D#w>9B zq7JA!Me`~?ADrJfckUn6=H0IZU##`t45L6a7A5*|q4%B_LOz%`&=65s>`;HvyA_f4 zJ|z7&hb8n>sd76xk~#O(GNNhU#ANvVfj%#XMXm(loFHLS*h=*;g=g|w^b_H!Un7Fj zI&+`rD;k?N^3~S}fJx@e&xg3B8_!ZV*3kzgr4du#b#dEt8@BXU>R)r@7Vv|5n#HRu zJe@~yHh+mhx~wW()#?amBCRVi%gogVrFDo|friJ8ojzteSkvN)OMhPy|u4V3lR)X9}}Ja9OEl)G9C`;eiXpVzynK1{(|m}699!p%BX$Z00J?i;Ar8K=J!GHL700)?}}m-l3F_DjL44Y0iq()M-F+YrpQ$q~@d zDh4iW)E-vRQ&!n`nS~@e{#a6`m!zx5EUL0iwX{meAUNkEoe4cH!-}*v~C9pIolWZez;rV_3Mc~@e z*wr;!1E@el${?+dGUPkZvC|rwAG9$>m;}}fI_T#hYKBfc$Bm+wUJ}7aNgc$8_?*8KwiebbTPY7&!nc``^dl)1P>Z@09{i-Os}RREk>sCdF*JeLZF= zK_qQ3*JqqU7576tw5>XjT6jZK9aI?#_$ZrjbuzKC9D^2ym+t}s47Fs82TS$E*?Dxi z!FxlrKWv%~n|1t4`o4U@9**uD>Wmk7@DF#Pfpum-`!3|c{yP|=ySGxxYF+LmO8XVw z@cSAygVKvGC-G96FS7D z?8>AufYf7bN;+nYUV}v~6vZupuqi&aoNr6>-M&a3tzk3$KHTiB{=M&JaeI4aD|cFX zd{nNK>*uOsGYu%DC-0~Q31e<^8~yfkqZ_tbLtZyKad{ti2ZnI^{v-Ob+sXRHpGp-I zOg&dIk$bFCR)9^jmtqV27&6__znQ@{N)Ap3>+SEWyBBI`w;hIn(xLC4;OFLXDfbtc zB~|V*6=s1$l=t?3wRu`+IeLNFDqbKQo@%8mOSq$Bio)NP<;qIxbD63sRxLDL=0*jy zm@7j_i&feQp4IVqvl;sgB`QN9`Ia*3qjgiuO;Mj|=Wa=JmvIwV??1a%1>=Lix?hL}1l$<&*Epwsxc3(%aenH2?Ze!L zbpC|sZDuj8u!hH?urY|^)1*oqO~DqjjMAZ4Ppmniw>MzEdG@n?w^iG zo-C$0?S*pQ1dc668QE3wr55p+b4Mfzw(6J9B7j0c*C;m~Mx0Brz;+*)2Y=IRrg=L; z=6$E-bA*8$OQ%g;WIjArRfpRV;yj&@D@!UiOKloq|JAf zUE8=GoCq@)?O&s^F1Y(N0^Y@l4e*)C6N;tjVi948RG!u=6d9_D@P4Rg*D01M%pTgq zxG|#a_hp;7&_qK?4EadRIl*B}kyHYyoS=Owl1r62*|UMALp#ziY2qdXhD%pSeHMu4 zzaXFBxAcEiA3<&6uC68NCz%gGQsR)-#*Dhyz~L|^(;BI-9CJD+`^Kia-vzi44GDYu zeO9PtcQcFoF{6X`D76&ngFmu}cnJE|{v8Suy}pH|@BNI#_f3WB4j93}?`Mj2&v_8qbT%1Q z>RWP`XL=0tdEF8Z%xXIdg#g|n;SUAftcD%5Hq~=et*_&qU-&&xHcsiIP6Vci6J8`@ zqC9hAby#xqp}3nihdv0kN00=au~!HzU`heMt5_Ba#n-F$ z@L)Q*KXF+j78Lp}`iyqnnz){Z1%twVKrtA>+CeLh`bX07sAO{)igcK!Dy6%j@640G zA|067mDGstJ=$x1GKXzl0-*=_G=_D(%p zLEg%*sN9a8@UaEy+N$+x_dR~_`uyj@{c;VVDHF%kH1kKsd*-^FxLv`@*0BEE= z#ciL@GBBwzduV*dn*qKXyn5El+uUvv{nJ}~y3k^^O2*ErZvwt!!EJTklrn96th zgsleza{4|YDI92g?IxSUC7*lQw!rv^+ZMmv+5FyOBdsnV-;a5!T`=8rxFG$?`ab9W z0=^J{KNT-Bu|!(?ner1iPL%Btdf&2(BxAqZYvp_Tmc_=gjw*L|Psay37B-doqIb8p zQkfd$tPDB73U*wi5%s%4_ZZ>&@2mIH-1!9wBj!H7ZZ{j!A%NB`!EY!uqCOvlNf@L& zl|;@~K{sDj1m4RBtHR!kD%Y(V5@F%8Pq7I zEvW_6NJ37sNez_Bzf@^RjLRoub1hrGNT6Y@gmU}TMx`lS>idXQOL|<(|CnkX#IJa+ zr@y>7Nh88u4S$$X6sO;h|9k(bCV-bH=Fc}+zc4$wdKoN8dc79pKXx3{Xj|OcWev-PhzBkAl>xaMzJhp z78s_M?P-EV^bsPtG?Moyv1!Yp`sq=;g{QKtx|hjgKl2>FeQw^gv49WCly|YW5JIv% zbaLzR2e&`k5#1K%s+#QNw|Qh`w!0h~NYW!13STJ)2@BFmWd&6lcXhVfo}n>1mGdgL zE$s$mV=Ht|lI`aquCCGR3^Sl;k7{Ve;on{y%;DRfo3s=9{O7_QkHl<6{hV!#)dONz z+MThfP_}!~icRDxIc!}1@5N#VrG0V{@5W?I2tyn#UmYstpS)%F2g?v&LRhX+o{Z!6ojr+bg1s@LRXPtGKSSeb741_BH+rEM z*Q{N&Szc+0F@t7_9(}djX@kzjFOc%P-+-Eeqe%1;xo8ABWB91liyXeBwQl{5PxM2Z z&AHsmNXmL`?R`R>(Yu7@&7raLi3wHRLQ)lsk&s3C>bHmX5pih$d3x{Dn6r>4+{@KB z9M#F~VhI&it2GBqc(f9xu9v^l2JgE#m}5cyv(iZ1C8aKa(MI}n-prJLYW^o|hFR+k zJzJPP?ncy938(P2o$+YKM;YX6{Qx>4fsE!7|zRsl5B`3ho)9~_NxykjWv!g}w|vrB5dtn_~{k3&QP31_n> zo7d12UrSd%zAw2LX`4Ty;~Q_<&6GU$(UP$!f|4<&oyLkD*hRE##2}m;Y)!)LgxZ7Z z_`Q{^1s>rhfsmSzdZ^c_l`m5EAdcU)cC^!lA+7eMH*H>5@J-A{C^YOJzWw};NZYIj%8yM zmu$#+jDfYdNv@u;b%06y$?!mQZi=rs$v%d<%y>sRTzZm9foGdKU++-dGaWJ*YkR_qNY*3>enhA#NKj9x&@Bg06TXCLhSfE0__A_ z0cBb5itv1It`0erKWE%J_gXz=`emoezdFPbgh=7*{_;k! zZVW?nskC%MP`sa~3s%V!S07f?IB}m2NXp5fbz692wMB$DBIBT{-e0JOovVTKjKh~~F>1|BhJw9l?E+1I6IXn30 z)Dn|xnl2=EG=(8FtOWOH^T~W#*FL1&IUXqxC$)TyL15k9ujT3kTq+Ifd#I$cy7Icc-Ex5_;44(<4@RN+)3 zZ&+^?dHk^}(7I>{{zi{n&9C3FBD+tUq?yBd{;9}v}E2|MFiU>2QeOy8sFG;ZG(Wj;*Ub&q)QiowsfVFy@cwRccv@Ewok88D3Dpxbq=;`B>>9@S&1HuRu^ukqcLrw4BSx|*!D zN^dZeEYgSRIb-J_lF-fBY*u~ltY~G+8?T6*^QMpb`lj!FOmJJM$@5%_0oBW5@b|uD zkz@GM^HNNrWk0Qo98orX)~5n3pYv$SO6{I-X;>R9A>&TQf*eBi@4y$8F5gq)|5G3ou|m_Cji zCWqU3vWgO{be;C6K;0OdK|0!G6uyR9Yg$uL3DP0$f5GfF_CAilr z=tM|#jxd)&fiK7&hC||El>Z5+?+9F7hu{vDU6LESTRUF`i?(j#29BDS;iWz$#jSg}8li$7v z2MumidV#ZAyGa)63RKrT*YivMTF=YSk$!Hom65)wowsJeMl|Z<7`!MSU-c@gdpoL* zSh%lO@-%DtKrJf3M6Rwf@`x;|@3gmLc#Lx?Ev?~unyxxvPk&2){pxg2*;6wEJoX5E z^OxSPgJ>;bYm^rzMr4~ge!cG|bk6S5%U z>!q{!#4aVJ>DMT$Xwrgyz*V_i?XqO63y63(XmqULOoJUMCtb~Y!1x(ac`X$V5tFDQ zgCa-+7A4@+peK}k?j%`bfP;7@>DTjDaTJI(Oz79z8uV}Pw+WAcVM%u13Z{)%oljuI z&i6Q*^s7}*DCh|6Px@7SW95qEjMU9T6|h+hSGG7gZ@^X7jw9T==lvE}@cRja|NgLY zP8E9Gr^SeTKY`TQGIcUkN+EbKHy((zf6e#2XZLkDEh;M_sznk98oQ|0J{mi9Fcs3% z;zR6(zhEiKdU=W1uwh~i4XJNc5%3wt_fEYVZoni)`we+PH(b5uo+=_t%F9Q-1Eg8; ztpyT{#cH(D%LM8@V$ooPykj2pH|8!lk+2$-C1iNkuS?{E!xrW5YX=xRim*v4d=HI} zZ1`Pa-O&zIO#rYJ{Ce$w@OIE#B1EoP&(3ss+i-{|cnD=BUproH#E`v!|aj1zYyr_du*hWq^5A^4c!>~X? zzjwN{+e5gE*N<-q`&peRZr84&)5mf?)pK7Ps5$1y@C0I@sG|+)GLy~z&=~>nV#gao z&&wL4PJ0zYNlWyKi39Q7RK(&h_uD;oyII6sjk<6|mdz12QS&FfFGKQ&XY+^N*tj2jPD?p0g=2AdDnf5G9UmGByJ~?NY5&YJ zAHDCpwz>vP#+#Gi8jxNzWb_RE62<0npa~a0l1VWc9i%D6#qGzdeM%#3cMtcwT#*%b zC)|8bUp?nmfy(5qg1yq)OU&%q)G2{s-LCc~WRwIoZPzS=;RC1BlYc6s1YAIdXGz&C z%9&aLjyLOCTiBeHN5k##VMr}^GapF1fAqS7wc;3dQy%Ev1*||z-yqdfkH`{k-ckhB zmpk0=*AVEZIP5a{U2hn3%z(2=?JZQ>&5toNkWV9qfvbDYN{& z5f4}&+%6X799)IEX-v)Hy{6})r6ot4&v2zB3246?w>{c=~$zBo(vA`U-^5ka3>qu+vyMp zKlhkh9qySmFcnfPDro`4{0pjo`?onEH4abMY0+JiEb3t7MBRCEt|KoJB?>)V%W!q> zHkP{!cPdC>N-7Oct=B%}DGhI3!=fK9#2zKCZ9Fo|PmZ1R1qbf~iE}@WZ~eX^I`97a z9U}ruzVDs5JzSwK0)NRA(%vAAH5N>`y4FVI5|`@~jC>Ob-l5v|?D2nn3Vkw8&2ZH_ zOIZ_)kp&hdkOCJ;*-i1<>@BgftbBk=-|tF~UV*PVmjmmtZ(4wZ7oct zET<$9JaCl3;skbns4(OEDdB8#EQW}kcacrhL?v?2IS>_Gr!#@oa`hVeXqM_1J0+{s zE%hHSL-zu$ux{VNG#1UQWGxLHj{+LzX3`zM-|X`GUp9M*{2nCj26Wt*Dr7UwCHcff zbs1#IHE)AeVjFYZrK}-E3nltt1ybQp>rg z>Qpz>iOm+B=gGUoOa@eOlBTd~;UDTc4a3rJN)l7;(bvjZ2>(suI;iPNx`(>iB3!Mf z<7`hkEs8f$SAiK21(9}5w|h6en&qV{cNMeU)zFtxzhkese2R>{(0Ey`YWj!P;8I~*9R4RDCnuMrr;zTWp`xgVdi!R-R!>fAciN8AAiH_t{Z&5|_HYBUkt3{xXnK~a-BZR) z3@e;BHv%Onkn41c2y>$!Xj+;w3_VpeOXIu;G4*H$lLBc6QYbAE=W8z%!?@Kk#a%2^ zI5No%f3c+9ClRTWeWq5>)P@}qq|1D84J~gNWh^Of1WgoH9;}9|h5WjXL7gAmGti=_ z`q^mVVJO(A2bl@|^if^>x;K_>%B3n>^`eOf0t>0Hjw(wM;);ovj`A^0^wpzfKNt}8 zx+TO@0A2h@md}KiSP>Rz&aqVCZa9g+D?%AmG8ZtbDT8&hYZD)s?>^ZwNcp>s!@L|sm)P^Lep1?3l-mG_B2;) z8Gm3^(MdqKDRfDuj{MoLVyLI*6v-!3AMB@VzLIh!gKxCq%$US5CXJpF_cZ-DY{FnoFEy`JNI3 z0!g+U?QOeHSE_3TKqR=-_ppFmL>ISgg}Z)nnB+TVabg}6()I)7y^UxB%j~kn{8p9E ze#eB8mbS-RXGO-FaeFu-_`Oqz#C!Sx^L*d2Z96?M%knmcR)}_ndf#i<-0$BAtZU=u zuAA5sCc@SY^`v^lDAp$H1-D;fKi%tIfv<5yXiun#*XyzRa!u-_f8ci98C6FSG}$0B zh|^_1c-y{hKJEs_8M56?RIW-kRNOQ4)iY}#8S7pgz6KcOdmF3dLGk0uK;Av!n;?br z#%HHOM2+ua*x=G9cdWzW*!&2~ffBSflgskq|5Ns=im!H#*sOd2u|eRU)KD@5?JtSk~wuzSV3r@NU^zZ zcX3?X&lg0a9KlxSFp3plWwpL_*z7NL0*@>!<1!UUmirr^`wFCEZz9`e+~Zb*z;&!M zYTC@eb?_%fW?l-x@~4c?e6L9$$G@Z*sVX zuS_7`RGB@YE*LSD9?}S6EZ$068_J{E+-wT&Hg5hOC+C&Q`D0!Lo2xnkDF0yN_WI2} z1TNRx+z-V4=PWFHMXB6nG`*Q+8KMby1zwEA(aV2UznHMRUuqJ*Sn8qNclV6Bz6Nke zLfsL~2xn1!-HE^4vMKeW*D~OtLSVm_jUL>~^Z~Z$%Gdp$_xlA21)8e(D|B8mUT96D z2q(M?V){^QY?>aigdO}9Ch>@|i>blo7n%Bz9X^~N-=2h7L6Nk2vCEME*2+_<-l~Ma zYRMm0(+UO}?KvbHG~vJwecze9n}Z{#&VSArv<(!5VIcCF@9zBpyeHY;HtE6(Hp7ek z5DnL6J@BgWgahkMpp(4d!!H4mNIOnHAJ@$9ndWCy_n#a9eq3)*l~ug*2$YWlg(9ZO zr}wk1(_sa~`(0QdJ4q@%vi=Y6yvfiLo;q@0-XQ6@ZlZHWffqH+0?{WdwaBW*`#ga- zLl7fW(YX`pLO@yymvtPO38v=alTfGTn~&lT&cWj)M7y?=IQ?x!+OYEoaSRnscl!km z5^*-8$nIc3L#K)QAqvTc{bf+2{)P_Q@$fU!%Apw<`p48rZ;cPbsi|Ihdn;GyuXg&E z%w{toudbh3FIE!{<`pqVA*rxwiR`j;@69gs(4Qof`0+1(d4KDUsypv9y& zoIKR-phrVIKW;vsTK954UiJuHm`L^3kS#q^al~X+-e0RJ=RH{Tj!=eEc{Ac){C#pb zw|zH!FZHgei9kGbXR1OS5#%P=_Dfgg-482V=Ctu7?Uo3^x@|e8LI`y}<*+@1l-7S^ z(*MM8&1HvjD+s_bU9YNHyL)WUt-3?zi{C3b>dQ&TKTwDqfp!G0$Y73ROsdd3xURV^y ztyIX0l*GQlNZ8x0iU*?;N~X>kIlTDl*!SS5{TknYe)lZo#vdvSw0@&0+4=Y)*0A*# z!{dNCC(n*&HZ#jIB;uueg<(i(O}_E9pl|K+!))F1L4MhBL3Z0|EXKc~CN-(WXdyZZ zsaqT35h<6~IW^QmzWtih7EV4BS<3yA@}RU1XYR+^{d~C@^&;f<*RstUT__~p+yY7d zos}uC#eg^&#kopR5ql16$P{ymb;5SEX7Ack(2U_>8yxx1efm5aveYy8J326S$tk)< z_COeI*AixN6!kk?jO(BvnQtykp7DfA?q~`ki_j`2-C9D;&s=24r6O(zz$YUZDcS|LCgP$>e zD2#~K*X;3oJWlxr8O|kpEGmb3k2N~q{MemB(*^RNfPGh{jNv>ZJ{oQQMVQ0dH&&zV zE~3k`{SzmEt@hw2tqNML1jm5zCwV!IsWzegV1;5Bmffa_=n>b7d@)^^W3$8k7CBEa zAxVh{zShqW9!y4tM>hzNopl`aG5|UVtMn3!M?gl}OLIg0oGPTp1hU40YT4g=i(tHjw0#Iob zkMafSflVxNU)xmh0}$Xe6459@>&;*g5x2j$7go{FhMT&>GeuOzrzi4PySYyyG*~=SNbm_OAFml_ zHjI?PJ@sW$`lu(v+^Y^sR0t48!=h~S1SW>~`Awkhk8Z>ien~z0c!$^(Fx-LN#nK;= zbD5|fs`V>LJ7Pxy^#S>=6;=)!ea&m2 zV^DrjDucb2(AiI_fnn@41l_QHUPo^?hQJGQW-px|8MkjqqIlVTuRTy*&IGFw!n!&8 zP15(X@}#d%uy52+0-xlnJ{{9lcu=wnbemQIliDFXZ@ImnzqF;%X+)S&j&uknni~?& z2BZ@@&}n#dcm%M7ElflQ;$s6V(bWu9S1puTR-o@fI{8H!Y<&gAOu#Nyj>)lpzro1) z5J)mR#!9cLR~{ar^yTCfkP%oL>+tnUpW z`kX^>|L&fA-9{on`FJS|pS<{8$vG7!R~LO39fx4Z_b}eYbscu}SD5c5V{K(1LCj{8 zwgp{2XH%I9@sNeD>NpL&gAT_ZEvwDm0Ly2d(B@W}0xbXWbR>sGlhg(Wnv;t%k+52h zP3V1$q>48N@}3;*U`Y0!v{Z-xMTZ~%VK%`%>FLDao0`bv52in)4;};&6 zpB1J4isBL-n;>uZ69r2*O2#i;Yi z*`zvq`7naG&WHfQ5u}e#NE`a|&5&7(>GBzc8yT+_g<$ONVP$~$_M8Jy)IZ7`0=kM~ z1gmSinZOoFxNuYX3e9+sVx<6;_`)~S#w{bMt>jHT&RPlalbd6G|s@)r-)~B0$ZpXr@okLk$8x|g!OTiVI7Q`?#l;u1_aSziW zsLt%*LP_|X4M4qOG>vH}ciou!%9C0BNGy`B;(@%RUje5lbDGhs^wVOC)c@jd(f z>UCSy`vmIy)T-ClnyWdwu1=H_!jp4TzNw+X!Pbh3@Gc-?4dwo#^QY}2mIAo*UH7uL ztJE)bX=m8fSR;=;R^)3rjToj5(0GAPo_5IylCyxQMk8uxV$4ArpCuSQVLrVcE&Dn( z5qZEnZ!66G;937U9vp4Ie_84%>wW&nY1`(~dq2Q+dPZ8jAkwUXx)jRks4A|3yET5& zawd6K*SbEcX#T6`{WOzT^R}jpGkB=C2>vtYyg_=-rrs4H z^bK@P7Td%i@bQV|{Cf9Gt8S2QrzhMxHu+AkrwRdDt;bc6TMJn`DuUbhaknB(S@nddwesnZkrdyDRQ{;5RJJhU2Jq zl?fgx0!=*5qn)%+Yh!!KpW3T3`T-rW3>huPs+13}AXaWz7n^qJR7>v-n(tmo9{#=k zA!y84M-VKKA2!=Mefr`AAF95DzalYlwLV-&DPtR&Fx9tE#ng@TTZ}Jhpg8s;3MV05e^go{ zDuq%Q_07j=TJ&Sr0(nsfVm;l~%`N;XMzA(%q4_`|FU294#nw6#^+!+V2H5anwhn>5 zhB=aYE99^Cx#5{*{ODL>m&sB7TqJn3~Rm<}l(3^nMzB5X17 zJ1t#(@)$fMX|buScPZ~spo!_4)_96Bz z@WQEn`%99CbqdsRIcnK$x!`n5&jd^2r4!{1398cE)CoJkA{t+FP?r|M)0OmgWK?@t>b`!y2>TO@iaxuHP>mF2Wc9e=Pf)Hztc3{ zWC}~ANG@J-G9WR*3#{F6LqV|nH^r;iVcz+HW9IF{+_Yw*3&S_aNZmKgJtx;eZT9U^ zbpkzsDp()p;oVoM`HvnA)A_A15~58#d+$6h4YQ+P+nql=g2h%)Ahis8wabSyeuo~+ zC3>c2bbo_i%$mwu_>mMXK*T<_GO2wTet)hOaGH9EuxoUF5X6L95=_SN&QZ})Z9&w* zi27V_BHH#USO*y2ukH%3(NL@TYT@0P*d)|#`rjZmFg!naZK3qsH*;j`ob8RLwcG;f zI=Pv!1OJ-2suGm=_`76mTA#v29NGjgJ1E<76lfdDMB&1HQ$_wXrw*Fh$|1nt-0833 zV%!yYA?QQ$*4MNd9eXxQ?JvMDI3Su<%>R9BFr%^0VFeiu^R5~&HHnX;Dqd0ZfRe}vb1b5}_hIDsMY-v7LF&7wk*fkO zzb%+<@-t<&d`GPXR2J&wc94iS66#uaj}Wz6K%)9)n#?)TG|D_FEqrnE$eRVg5vS z51tyJ#wld|4*-`yXuk{=cQF~mOeo_-9i~}1`F!u4hw#8%^Z20;9>6>ASyY}Bd8qrQ z^it^Z?x{84;)NIw_>svG{GHi;m0Ex+X8;IqnPY#hv_FL@ycQ6X+$p@V!7>E7B21&9 z!ys@e6-uHjt>dM1Do^hz2Ee)rHXkx6t)F=&ZRsv0;>IkYA@-u*an};&gpPWqCC~f= zy+K|u#XK5_G8#A_2=Rl0_&@Z%Bbb|$#|%mN7f?=XO9TC}_7q_oqi5xcFV}tmgxY;h zd^f}v!^ZYd6My3+N3l&Js`LYJd99CJbbxf%%QKQ`5zNV8fK{Q{xFq)XAANis7lkI} z`O}+t;gucbMR4_Uzfjjp^?s&|^Rj}#YK=t6d>1Z6DqBPPXk=gCZJ_SC$aIPu56|Q6 zx9-Cay#D~^78}Y|qu>~b68#av9)*ZH$mkQ|@2$83xFQDNEhGJNXzt{T>^ufT$A(y3 z7>5@5d2FH^b8_(N#<6~&Zmw|@d4jSFNh#!79sm5~mXXpi_#C(H23Klwt7XYyQeI4i z(U`GGsK?`>Dqna-yNkPKp)-|zUkJ#K?u6>=r&?Wb0h~BOi18Zosy31HgQFKtS)6Dh zRhONF`iSEV3M+E+=2uA)D`I*OUynmK%wg$38@#=%+boR>+0=zXro+1Awf*U@ zNpj{*W{*FT)_lmLjIFt*x_$3mckjn}(Fdo_T~?C6+DvDCv60m8zkI%rKYe5s5B~A< zXbTO&XTJ0bPMsI=Mfio49pyGy8c>dmL7p_=lYO$dI1AVMzU(uYlMZGKjF&#;{0J8B z=yA;Ki@Hmjh<844Krm#4B~kx-ZapBzr-`5X@DZU!$;4KT_NBn;)Iy`U2#cH# zBK2O3BTI?iSrO#wl$;F62_QvNjt`&xv5z+I`i)Owk8ouSz?)h6cMxJ_6S)TQyU{pC z272r!#-4t)oIJ`OW)X5&#;Xs-^7n{{^KwF<=&3|5lq`|Q<}_)EWxm1tv7Iee|cEjmB*z=#C zZR5y6eR&cYRACNhB>E&E{+`g3nwt*M=hRvY)~Knz=-Q8ouTNr+uxAF~O)LEe9Bn1a zaK>yr9^?e!rmIAtQHDq(bNi+ODTNc1YBETcS(Zyt$aqLea&f;pQYr;uR|0i|TFtFt zEMZLK%j6=(QflU!G)@9P64k}22)b zw;e9>=9Qa|WCBKb@NG+&oiSGeTfT_3w>^1_;pI)S1+ck=fAG&AGb(%O6QQL((tUBK z+0a)Nn>-6!h0N5@q>;p5GFlQwLiN#T>dT0h7iJWJmpAzNEhKf7vUFb5?+@_6?fY=| zopbm{A3G|>PW0KZ19|*U7R2jatp&+-rz@vJG_pfo@=BC>C6r&}lv?&tsOjV6a`XGt zgdM*UTY$YY0B2=m@PsQ(x694eC@rtX=wQf5EQG z-qgIf#42XE*jcN^3Z~raiIUkR-4Lk-7>;mUY&)!NO83K=R^Nlv2?I;awNy>|goG-; zVU9$SX)l*^NviCJ`c8#@e`uPJYc~ht`PiWuW$<|Ha2vPYJdY!XXYs9XZ{ggfE*@TA zRhRk5yzNCsBccA6Hv)D-MV<_5Vo zMOhm%YI4TG^3Y2x1Hx#OTIOs33t=H22V4!d4lgx}X0+jjh zUua@^QS99xpU3+iJc#2r&12&-D{YK4@RO$<3ML=Mv!C(8c*~9RxKpIVP h9EM<~ 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

tJuAWwni)~pFzbyMUiXR%e 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 FV1l`D@^SzG 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 zcmV-j3!?OiP)h_I6+wjLbb zz2(HVbzhXra3>^(b1iNs=B4VL02bCc_M`oQ=odgPo?Oht_j&>dw`pnnzM!zKbFLd% zw{7)a^{gw=e1&BBxJOF#HcS50r)9!72^a-nWQm_CrDZI$l5%dsycLXJd$O2rk7leD zeSzo`Kvp-J2;`v`LQJn~U-M#6h^ren6N{jhNXB9S zla*Nr#vOGT`{Dz`k_Ifu|0E)jeVa^o{wK!lB zb7JW=PnST%lZ{NQ=6y_MiuX*@$IQp7$%;rMoo8zQ=!F0-$c#o`c;x!1NjNm|V$Kb~c!E2crC* zgfXQ?;sgOgcj3ZAoLF66UYC|%= z8fI5q-Bh>wzAuM$pYF#`*@T%AjG0l#j;Yvunh;_Om@d;Y)*scxo$==H3X*?e(2AI2 z-Cj)@S2u40@PJ3hc%>SBfh?R^Wp!gEffh0N(wLKa%Cnew@=_2#DW#lFu5R89V2S3~ zUmxgVFvUa@svX{3;<_=+`40$a14Wia)2rLU00>KyD_&v(w4~0lmiv6JZmPuT9tGex z3`~tV_UMw0#m!Yh@VIC?HNDzI#W-e7`ORI8FYNoyxOu7|ybI>%wMUv zjT>78iQ!SlIw!2qAe|dGXMpfL1B+vh{j0&qsK(>!Mh8IZJbv%%Gn(8cSsqY3@D2!X zX=!_IH9?i$f2!Yj%$NA0UFEjS+#&>JKsY4f@p+l#huXHa9}Q-%UJI8nH-K@L0!R=-E5Q=#nHix>$@m~b%x$AwVtH9=TWm$v^Dg0>=wn=tPK!>9^r#fvkH{IVUmkC+x#G$B_{{*%COMIC$A zKm}K$S7nu4+-L=n0E;s*Tz;^Jjy-9+^`F5g*&k2o z;$wb9%cO3oCg0V~w?TMMOWQy6X|uXnaHEwjvRpiQEfcRJA@ykc+Dx?x2J&7NvLy4J z04@zvHu3X=@{l}mk$FYgtzcZFW$evLnce3u7;#KbWM9}oE*m#m1kv}y0Aav0nMzq- zCH`F8Sjt2#08iAM)OJPV-#q}GSBORvrt-^w2znhio@|b0EUQ|rQ}HVR1oB*OwZX*i z3l^J#`F3AC#XDvjz+*Hgb#&kWtNPUCTG~Frk49DDNJV#NR#V{r`QDwB91F>p0W?N) ztmdx|u&MHtO;N{QT+9cO7XrLl5GBfswI5DMM!Rc1|NIo^cl!payq6O*{XA^w97cZe z45a~@p*hwIfe19Y1I)WM$G)nBG;S=FL`lJHg-yzXN(?2Xd}BhgcH(xcyBw6On~#BL ztdl!bF(ECSO?2Ij>a+pBSU&vjE(2u=s+B8522D)}^n1yD>I@93$?|M=UlKkEAO zvbuRC0qa40la@}cQqM~}pghlrp2!Yj-k*<*ICpgW{a$@0P#N3BLS7wfU;AcQ5DI{R zm;xygCi_xyJLA`UOVE*@5NJO$&-Fdyo=LY1i{$se&O{^j*W|~Kef`n>y#N&4lW`Y_ zenHGFL6ZrT{`L~+%1SlLu%P;*`&c(d;BUACCuqyewIK-{4bK1tZrODAaxHB5iN@bDuZr3c?*bD^!bmk z@^s#q?Un+0D1gEinzIGLt4m7eY4w?uSEW{C&!mO%NS>w#SKx50d`>rh#2^)%eFcHp zv9#@#)eHI>dPwO70c_{MA9H;TQLQ5<#J`S3F8Vu)D>;FLnZS4f$h@G zB`mQe+F^T@aeov;26c0rv9y&cm(h2FBVpb_3@?c$h%=(jnqB40#Z*rfy`GbVjgi`( zXQNwNKj}}=y?XO0J;={u&@4zSjdj@DD$xgOq^d}IXDn_1vJzeYEhgP);$oMEz>R*P z)fe>d$=4rupr@w^g_f&#ixaSufi1x}KdYM$k!q(F{=7DmqLa)|RPs(mlk!UY1YQvB zqdQZS)4vr5yEV!?abBz_uUvCuW5oUF8*>Sm3ZiKQyb^V6)sFQ>(G0vMp9Jj^dEOXo zoRsJ$B!^Q(E-nObeRpMo8dvR7D&ky&*&qdeOTbtFI~Z6IyzKg4f^ct(my~KdjZX^U~5rBEBKTOQ6wRzEce85%q zw*;YfASl4g74o795c5@28o+yCdKJL4erdAWntP=|U>1l~4soh#o&$2-zKCq~Z`f)w z{PzO}5ENV}%hM$Up3Q)lKl>khFmWd&3JnT@(Ny-a2LUdFo)OGX52edFBmlj@G&E0> zLQeBOvmuHxbBuuE=QhX^QI@&z*^Q9m#k!8(edn+%UQYL4XERG+v;v?R00000NkvXX 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..d103027 --- /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..65d8837 --- /dev/null +++ b/src/components/media-popup.vue @@ -0,0 +1,173 @@ + + + + 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..f6a5fd4 --- /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://91djht.remoces.com/api/web/admin"; +} else if (process.env.NODE_ENV === "development") { + // 测试服 + baseConfig.baseServerUrl = "https://91djht.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..86aae54 --- /dev/null +++ b/src/views/animationManage/acgVidResCfg/index.vue @@ -0,0 +1,789 @@ + + + + + + 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..5c17c56 --- /dev/null +++ b/src/views/animationManage/animeList/components/preview-media.vue @@ -0,0 +1,1801 @@ + + + + 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..b3c4bd0 --- /dev/null +++ b/src/views/animationManage/animeList/index.vue @@ -0,0 +1,2380 @@ + + + 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..95244fd --- /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..fa30312 --- /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..d13fda5 --- /dev/null +++ b/src/views/moduleConfManagement/sectionList/index.vue @@ -0,0 +1,923 @@ + + + + + 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..eea9765 --- /dev/null +++ b/src/views/productManagement/bannerActivityList/index.vue @@ -0,0 +1,653 @@ + + + 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..85ff330 --- /dev/null +++ b/src/views/systemManagement/systemConfig/index.vue @@ -0,0 +1,1130 @@ + + + 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..1861f18 --- /dev/null +++ b/src/views/welcome/index.vue @@ -0,0 +1,72 @@ + + + diff --git a/test_build.sh b/test_build.sh new file mode 100755 index 0000000..bc76b79 --- /dev/null +++ b/test_build.sh @@ -0,0 +1,7 @@ +# sh 执行打包到测试服上 +npm run test-build +zip -q -r dist.zip dist +scp dist.zip root@172.104.181.99:/export/91dj/houtai/ +ssh root@172.104.181.99 "cd /export/91dj/houtai/ && unzip -o dist.zip" +rm dist.zip +# 域名: https://91djht.remoces.com \ No newline at end of file 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";` + } + } + }, + + +}