From e848fda4e37c9d8f024802e9c35b5bf7803fd205 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 1 Feb 2021 14:55:39 +0800 Subject: [PATCH 01/37] =?UTF-8?q?=E5=B0=86=E4=B8=8B=E8=BD=BD=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E4=B8=8E=E6=88=91=E7=9A=84=E5=88=97=E8=A1=A8=E5=88=86?= =?UTF-8?q?=E7=A6=BB=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/utils.js | 12 +++++++++++- src/main/rendererEvents/playList.js | 21 +++++++++++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/common/utils.js b/src/common/utils.js index ae274f99..372a67a5 100644 --- a/src/common/utils.js +++ b/src/common/utils.js @@ -150,6 +150,9 @@ exports.initSetting = () => { const electronStore_config = new Store({ name: 'config', }) + const electronStore_downloadList = new Store({ + name: 'downloadList', + }) let setting = electronStore_config.get('setting') if (setting) { let version = electronStore_config.get('version') @@ -165,7 +168,7 @@ exports.initSetting = () => { } const downloadList = electronStore_config.get('download') if (downloadList) { - if (downloadList.list) electronStore_list.set('downloadList', downloadList.list) + if (downloadList.list) electronStore_downloadList.set('list', downloadList.list) electronStore_config.delete('download') } } @@ -181,6 +184,13 @@ exports.initSetting = () => { } } + // 从我的列表分离下载列表 v1.7.0 后 + let downloadList = electronStore_list.get('downloadList') + if (downloadList) { + electronStore_downloadList.set('list', downloadList) + electronStore_list.delete('downloadList') + } + const { version: settingVersion, setting: newSetting } = exports.mergeSetting(setting, electronStore_config.get('version')) // 重置 ^0.18.2 排行榜ID diff --git a/src/main/rendererEvents/playList.js b/src/main/rendererEvents/playList.js index 219046da..5bfeb50e 100644 --- a/src/main/rendererEvents/playList.js +++ b/src/main/rendererEvents/playList.js @@ -3,6 +3,7 @@ const { mainOn, NAMES: { mainWindow: ipcMainWindowNames }, mainHandle } = requir let electronStore_list +let electronStore_downloadList mainHandle(ipcMainWindowNames.get_playlist, async(event, isIgnoredError = false) => { if (!electronStore_list) { @@ -11,13 +12,29 @@ mainHandle(ipcMainWindowNames.get_playlist, async(event, isIgnoredError = false) clearInvalidConfig: !isIgnoredError, }) } + if (!electronStore_downloadList) { + electronStore_downloadList = new Store({ + name: 'downloadList', + }) + } return { defaultList: electronStore_list.get('defaultList'), loveList: electronStore_list.get('loveList'), userList: electronStore_list.get('userList'), - downloadList: electronStore_list.get('downloadList'), + downloadList: electronStore_downloadList.get('list'), } }) -mainOn(ipcMainWindowNames.save_playlist, (event, { type, data }) => electronStore_list && electronStore_list.set(type, data)) +mainOn(ipcMainWindowNames.save_playlist, (event, { type, data }) => { + switch (type) { + case 'defaultList': + case 'loveList': + case 'userList': + electronStore_list && electronStore_list.set(type, data) + break + case 'downloadList': + electronStore_downloadList && electronStore_downloadList.set(type, data) + break + } +}) From 84530ca0a2503c827947509e7eca994534ba3d75 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 1 Feb 2021 16:17:57 +0800 Subject: [PATCH 02/37] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BD=91=E7=9B=98?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=89=93=E5=BC=80=E7=9A=84=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1820fc76..088b531d 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ 软件变化请查看:[更新日志](https://github.com/lyswhut/lx-music-desktop/blob/master/CHANGELOG.md)
软件下载请转到:[发布页面](https://github.com/lyswhut/lx-music-desktop/releases)
-或者到网盘下载(网盘内有MAC、windows版):`https://www.lanzoux.com/b0bf2cfa/` 密码:`glqw`
+或者到网盘下载(网盘内有MAC、windows版):`https://www.lanzoux.com/b0bf2cfa/` 密码:`glqw`(若链接无法打开请百度:蓝奏云链接打不开)
使用常见问题请转至:[常见问题](https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md) ### 源码使用方法 From 70d24ffdfd2b34c3cc30a4b71f70fad7ddc56b35 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 1 Feb 2021 18:26:26 +0800 Subject: [PATCH 03/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=9F=B3=E4=B9=90?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=88=97=E8=A1=A8=E7=9A=84=E7=A8=8D=E5=90=8E?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=8A=9F=E8=83=BD=E6=97=A0=E6=95=88=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 3 +-- src/renderer/views/Search.vue | 16 ++++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 2460416e..ef55a99e 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,4 +1,3 @@ ### 修复 -- 修复非透明模式下右侧滚动条无法拖动的问题 -- 修复MAC下xm音乐滑块验证问题 +- 修复音乐搜索列表的稍后播放功能无效的问题 diff --git a/src/renderer/views/Search.vue b/src/renderer/views/Search.vue index 9fb8f0a8..6c428d8e 100644 --- a/src/renderer/views/Search.vue +++ b/src/renderer/views/Search.vue @@ -289,14 +289,6 @@ export default { case 'play': this.testPlay(info.index) break - case 'playLater': - if (this.selectedData.length) { - this.setTempPlayList(this.selectedData.map(s => ({ listId: '__temp__', musicInfo: s }))) - this.resetSelect() - } else { - this.setTempPlayList([{ listId: '__temp__', musicInfo: this.list[info.index] }]) - } - break case 'listAdd': this.musicInfo = this.listInfo.list[info.index] this.$nextTick(() => { @@ -480,6 +472,14 @@ export default { } this.testPlay(index) break + case 'playLater': + if (this.selectedData.length) { + this.setTempPlayList(this.selectedData.map(s => ({ listId: '__temp__', musicInfo: s }))) + this.resetSelect() + } else { + this.setTempPlayList([{ listId: '__temp__', musicInfo: this.listInfo.list[index] }]) + } + break case 'addTo': if (this.selectedData.length) { this.$nextTick(() => { From f9cbf9254c9daa1674c95f5378242775fed9e502 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Tue, 2 Feb 2021 15:08:07 +0800 Subject: [PATCH 04/37] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE-?= =?UTF-8?q?=E5=85=B6=E4=BB=96-=E5=88=97=E8=A1=A8=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=B8=85=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 4 ++++ src/renderer/lang/en-us/view/setting.json | 9 +++---- src/renderer/lang/zh-cn/view/setting.json | 9 +++---- src/renderer/lang/zh-tw/view/setting.json | 9 +++---- src/renderer/store/modules/list.js | 12 ++++++++++ src/renderer/views/Setting.vue | 29 ++++++++++++++++++----- 6 files changed, 54 insertions(+), 18 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index ef55a99e..6bbf7a39 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,3 +1,7 @@ +### 新增 + +- 新增设置-其他-列表缓存信息清理功能,注:此功能一般情况下不要使用 + ### 修复 - 修复音乐搜索列表的稍后播放功能无效的问题 diff --git a/src/renderer/lang/en-us/view/setting.json b/src/renderer/lang/en-us/view/setting.json index 2eaa537a..468256e0 100644 --- a/src/renderer/lang/en-us/view/setting.json +++ b/src/renderer/lang/en-us/view/setting.json @@ -121,10 +121,11 @@ "other_tray_theme": "Tray Icon Style", "other_tray_theme_native": "Solid Color", "other_tray_theme_origin": "Primary Color", - "other_cache": "Cache size (Not recommended since resources such as pictures after the cache is cleaned need re-downloading. The software will dynamically manage the cache size based on disk space)", - "other_cache_label": "Cache size used: ", - "other_cache_label_title": "Currently used cache size", - "other_cache_clear_btn": "Clear cache", + "other_resource_cache": "Resource cache management (pictures, audios and other caches, pictures and other resources will need to be downloaded again after cleaning up, it is not recommended to clean up, the software will dynamically manage the cache size according to the disk space)", + "other_resource_cache_label": "The software has used cache size: ", + "other_resource_cache_clear_btn": "Clear resource cache", + "other_play_list_cache": "List cache management (links to songs that have been cached in my list, alternative sources for playback, after cleaning up, you need to re-acquire them when you play and download songs, and do not clean up if there are no issues related to song playback)", + "other_play_list_cache_clear_btn": "Clear list cache information", "update": "Update", "update_latest_label": "Latest version: ", diff --git a/src/renderer/lang/zh-cn/view/setting.json b/src/renderer/lang/zh-cn/view/setting.json index 00e1dcdd..5ea41c74 100644 --- a/src/renderer/lang/zh-cn/view/setting.json +++ b/src/renderer/lang/zh-cn/view/setting.json @@ -121,10 +121,11 @@ "other_tray_theme": "托盘图标样式", "other_tray_theme_native": "纯色", "other_tray_theme_origin": "原色", - "other_cache": "缓存大小(清理缓存后图片等资源将需要重新下载,不建议清理,软件会根据磁盘空间动态管理缓存大小)", - "other_cache_label": "软件已使用缓存大小:", - "other_cache_label_title": "当前已用缓存", - "other_cache_clear_btn": "清理缓存", + "other_resource_cache": "资源缓存管理(图片、音频等缓存,清理后图片等资源将需要重新下载,不建议清理,软件会根据磁盘空间动态管理缓存大小)", + "other_resource_cache_label": "软件已使用缓存大小:", + "other_resource_cache_clear_btn": "清理资源缓存", + "other_play_list_cache": "列表缓存管理(我的列表中已缓存的歌曲链接、播放代替源,清理后播放、下载歌曲时需要重新获取,没有歌曲播放相关的问题不要清理)", + "other_play_list_cache_clear_btn": "清理列表缓存信息", "update": "软件更新", "update_latest_label": "最新版本:", diff --git a/src/renderer/lang/zh-tw/view/setting.json b/src/renderer/lang/zh-tw/view/setting.json index 0ba303c2..f4129d29 100644 --- a/src/renderer/lang/zh-tw/view/setting.json +++ b/src/renderer/lang/zh-tw/view/setting.json @@ -121,10 +121,11 @@ "other_tray_theme": "托盤圖標樣式", "other_tray_theme_native": "純色", "other_tray_theme_origin": "原色", - "other_cache": "緩存大小(清理緩存後圖片等資源將需要重新下載,不建議清理,軟件會根據磁盤空間動態管理緩存大小)", - "other_cache_label": "軟件已使用緩存大小:", - "other_cache_label_title": "當前已用緩存", - "other_cache_clear_btn": "清理緩存", + "other_resource_cache": "資源緩存管理(圖片、音頻等緩存,清理後圖片等資源將需要重新下載,不建議清理,軟件會根據磁盤空間動態管理緩存大小)", + "other_resource_cache_label": "軟件已使用緩存大小:", + "other_resource_cache_clear_btn": "清理資源緩存", + "other_play_list_cache": "列表緩存管理(我的列表中已緩存的歌曲鏈接、播放代替源,清理後播放、下載歌曲時需要重新獲取,沒有歌曲播放相關的問題不要清理)", + "other_play_list_cache_clear_btn": "清理列表緩存信息", "update": "軟件更新", "update_latest_label": "最新版本:", diff --git a/src/renderer/store/modules/list.js b/src/renderer/store/modules/list.js index fceb4056..d0bc5451 100644 --- a/src/renderer/store/modules/list.js +++ b/src/renderer/store/modules/list.js @@ -205,6 +205,18 @@ const mutations = { targetList.list.splice(sortNum - 1, 0, ...musicInfos) }, + clearCache() { + const lists = Object.values(allList) + for (const { list } of lists) { + for (const item of list) { + if (item.otherSource) item.otherSource = null + if (item.typeUrl['128k']) delete item.typeUrl['128k'] + if (item.typeUrl['320k']) delete item.typeUrl['320k'] + if (item.typeUrl.flac) delete item.typeUrl.flac + if (item.typeUrl.wav) delete item.typeUrl.wav + } + } + }, } export default { diff --git a/src/renderer/views/Setting.vue b/src/renderer/views/Setting.vue index 27c9ad8b..21f81480 100644 --- a/src/renderer/views/Setting.vue +++ b/src/renderer/views/Setting.vue @@ -196,13 +196,18 @@ div.scroll(:class="$style.setting" ref="dom_setting") material-checkbox(:id="'setting_tray_theme_' + item.id" v-model="current_setting.tray.themeId" name="setting_tray_theme" need :class="$style.gapLeft" :label="$t('view.setting.other_tray_theme_' + item.name)" :key="item.id" :value="item.id" v-for="item in trayThemeList") dd - h3#other_cache {{$t('view.setting.other_cache')}} + h3#other_resource_cache {{$t('view.setting.other_resource_cache')}} div p - | {{$t('view.setting.other_cache_label')}} - span.auto-hidden(:tips="$t('view.setting.other_cache_label_title')") {{cacheSize}} + | {{$t('view.setting.other_resource_cache_label')}} + span.auto-hidden {{cacheSize}} p - material-btn(:class="$style.btn" min @click="clearCache") {{$t('view.setting.other_cache_clear_btn')}} + material-btn(:class="$style.btn" min :disabled="isDisabledResourceCacheClear" @click="clearResourceCache") {{$t('view.setting.other_resource_cache_clear_btn')}} + dd + h3#other_play_list_cache {{$t('view.setting.other_play_list_cache')}} + div + material-btn(:class="$style.btn" min :disabled="isDisabledListCacheClear" @click="clearListCache") {{$t('view.setting.other_play_list_cache_clear_btn')}} + dt#update {{$t('view.setting.update')}} dd p.small @@ -570,6 +575,8 @@ export default { list: [], activeId: '', }, + isDisabledResourceCacheClear: false, + isDisabledListCacheClear: false, } }, watch: { @@ -624,7 +631,10 @@ export default { }, methods: { ...mapMutations(['setSetting', 'setSettingVersion', 'setVersionModalVisible']), - ...mapMutations('list', ['setList']), + ...mapMutations('list', { + setList: 'setList', + clearMyListCache: 'clearCache', + }), ...mapMutations(['setMediaDeviceId']), init() { this.current_setting = JSON.parse(JSON.stringify(this.setting)) @@ -859,11 +869,18 @@ export default { this.cacheSize = sizeFormate(size) }) }, - clearCache() { + clearResourceCache() { + this.isDisabledResourceCacheClear = true clearCache().then(() => { this.getCacheSize() + this.isDisabledResourceCacheClear = false }) }, + clearListCache() { + this.isDisabledListCacheClear = true + this.clearMyListCache() + this.isDisabledListCacheClear = false + }, handleWindowSizeChange(index) { let info = index == null ? this.windowSizeList[2] : this.windowSizeList[index] setWindowSize(info.width, info.height) From e9c96ecde21b8189686c020ac43e693a0d940bf2 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 4 Feb 2021 14:37:52 +0800 Subject: [PATCH 05/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8F=8C=E5=87=BB=E4=B8=8D=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E7=9A=84=E6=BA=90=E6=97=B6=E4=BC=9A=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=88=87=E6=AD=8C=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + .../components/material/AasideList.vue | 319 ------------------ src/renderer/views/Search.vue | 2 +- 3 files changed, 2 insertions(+), 320 deletions(-) delete mode 100644 src/renderer/components/material/AasideList.vue diff --git a/publish/changeLog.md b/publish/changeLog.md index 6bbf7a39..69862234 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -5,3 +5,4 @@ ### 修复 - 修复音乐搜索列表的稍后播放功能无效的问题 +- 修复搜索列表双击不支持播放的源时会导致切歌的问题 diff --git a/src/renderer/components/material/AasideList.vue b/src/renderer/components/material/AasideList.vue deleted file mode 100644 index ac319081..00000000 --- a/src/renderer/components/material/AasideList.vue +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - diff --git a/src/renderer/views/Search.vue b/src/renderer/views/Search.vue index 6c428d8e..e8aac721 100644 --- a/src/renderer/views/Search.vue +++ b/src/renderer/views/Search.vue @@ -274,7 +274,7 @@ export default { this.clickIndex = index return } - this.testPlay(index) + if (this.assertApiSupport(this.listInfo.list[index].source)) this.testPlay(index) this.clickTime = 0 this.clickIndex = -1 }, From a0254eb4f2d8bf7e10015ac527eb069d778d02bb Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 4 Feb 2021 17:25:40 +0800 Subject: [PATCH 06/37] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E5=90=8D=E6=AD=8C=E6=9B=B2=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/utils/music/index.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/renderer/utils/music/index.js b/src/renderer/utils/music/index.js index 81caef4c..7ef844b3 100644 --- a/src/renderer/utils/music/index.js +++ b/src/renderer/utils/music/index.js @@ -74,26 +74,31 @@ export default { return tempResult } const trimStr = str => typeof str == 'string' ? str.trim() : str - const sortedSinger = sortSingle(musicInfo.singer) + const sortedSinger = String(sortSingle(musicInfo.singer)).toLowerCase() const musicName = trimStr(musicInfo.name) + const lowerCaseName = String(musicName).toLowerCase() + const lowerCaseAlbumName = String(musicInfo.albumName).toLowerCase() for (const source of sources.sources) { if (!sources[source.id].musicSearch || source.id === musicInfo.source || source.id === 'xm') continue tasks.push(sources[source.id].musicSearch.search(`${musicName} ${musicInfo.singer || ''}`.trim(), 1, { limit: 10 }).then(res => { for (const item of res.list) { - item.sortedSinger = sortSingle(item.singer) + item.sortedSinger = String(sortSingle(item.singer)).toLowerCase() item.name = trimStr(item.name) + item.lowerCaseName = String(item.name).toLowerCase() + item.lowerCaseAlbumName = String(item.albumName).toLowerCase() + console.log(lowerCaseName, item.lowerCaseName) if ( ( item.sortedSinger === sortedSinger && - (item.name === musicName || item.interval === musicInfo.interval) + (item.lowerCaseName === lowerCaseName || item.interval === musicInfo.interval) ) || ( - item.interval === musicInfo.interval && item.name === musicName && + item.interval === musicInfo.interval && item.lowerCaseName === lowerCaseName && (item.sortedSinger.includes(sortedSinger) || sortedSinger.includes(item.sortedSinger)) ) || ( - item.name === musicName && item.albumName === musicInfo.albumName && + item.lowerCaseName === lowerCaseName && item.lowerCaseAlbumName === lowerCaseAlbumName && item.interval === musicInfo.interval ) ) { @@ -106,12 +111,13 @@ export default { const result = (await Promise.all(tasks)).filter(s => s) const newResult = [] if (result.length) { - newResult.push(...sortMusic(result, item => item.sortedSinger === sortedSinger && item.name === musicName && item.interval === musicInfo.interval)) + newResult.push(...sortMusic(result, item => item.sortedSinger === sortedSinger && item.lowerCaseName === lowerCaseName && item.interval === musicInfo.interval)) newResult.push(...sortMusic(result, item => item.sortedSinger === sortedSinger && item.interval === musicInfo.interval)) - newResult.push(...sortMusic(result, item => item.name === musicName && item.sortedSinger === sortedSinger && item.albumName === musicInfo.albumName)) - newResult.push(...sortMusic(result, item => item.sortedSinger === sortedSinger && item.name === musicName)) + newResult.push(...sortMusic(result, item => item.lowerCaseName === lowerCaseName && item.sortedSinger === sortedSinger && item.lowerCaseAlbumName === lowerCaseAlbumName)) + newResult.push(...sortMusic(result, item => item.sortedSinger === sortedSinger && item.lowerCaseName === lowerCaseName)) for (const item of result) { delete item.sortedSinger + delete item.lowerCaseName } newResult.push(...result) } From c78811fe360d218fd495be7bb9002ce58eda135b Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 5 Feb 2021 23:06:08 +0800 Subject: [PATCH 07/37] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=99=BE=E7=B1=B3?= =?UTF-8?q?=E6=BA=90=EF=BC=8C=E5=85=81=E8=AE=B8=E6=92=AD=E6=94=BE=E9=99=A4?= =?UTF-8?q?=E4=BA=86=E6=90=9C=E7=B4=A2=E5=88=97=E8=A1=A8=E4=BB=A5=E5=A4=96?= =?UTF-8?q?=E7=9A=84=E6=89=80=E6=9C=89=E6=AD=8C=E6=9B=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 6 +- publish/changeLog.md | 8 +++ src/renderer/components/core/Player.vue | 11 ++- .../components/material/MusicComment.vue | 2 +- src/renderer/components/material/SongList.vue | 10 ++- src/renderer/store/modules/list.js | 12 +++- src/renderer/store/modules/player.js | 68 +++++++++++++++---- src/renderer/utils/music/api-source-info.js | 1 - src/renderer/utils/music/index.js | 2 +- src/renderer/utils/music/xm/index.js | 65 +++++++++++------- src/renderer/utils/music/xm/util.js | 2 +- src/renderer/views/List.vue | 10 +-- src/renderer/views/SongList.vue | 2 +- 13 files changed, 134 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index 4be9b8a8..5561cdd4 100644 --- a/package.json +++ b/package.json @@ -34,18 +34,20 @@ "publish:gh:linux": "node build-config/pack.js && npm run publish:linux", "publish:linux": "npm run publish:linux:deb && npm run publish:linux:appImage && npm run publish:linux:rpm && npm run publish:linux:pacman", "publish:linux:appImage": "cross-env ARCH=x64 electron-builder -l=AppImage -p onTagOrDraft", - "publish:linux:deb": "npm run publish:linux:deb:x64 && npm run publish:linux:deb:x86 && npm run publish:linux:deb:arm64", + "publish:linux:deb": "npm run publish:linux:deb:x64 && npm run publish:linux:deb:x86 && npm run publish:linux:deb:arm64 && npm run publish:linux:deb:armv7l", "publish:linux:deb:x64": "cross-env ARCH=x64 electron-builder -l=deb --x64 -p onTagOrDraft", "publish:linux:deb:x86": "cross-env ARCH=x86 electron-builder -l=deb --ia32 -p onTagOrDraft", "publish:linux:deb:arm64": "cross-env ARCH=arm64 electron-builder -l=deb --arm64 -p onTagOrDraft", + "publish:linux:deb:armv7l": "cross-env ARCH=armv7l electron-builder -l=deb --armv7l -p onTagOrDraft", "publish:linux:rpm": "cross-env ARCH=x64 electron-builder -l=rpm --x64 -p onTagOrDraft", "publish:linux:pacman": "cross-env ARCH=x64 electron-builder -l=pacman --x64 -p onTagOrDraft", "pack:linux": "node build-config/pack.js && npm run pack:linux:deb && npm run pack:linux:appImage && npm run pack:linux:rpm && npm run pack:linux:pacman", "pack:linux:appImage": "cross-env ARCH=x64 electron-builder -l=AppImage", - "pack:linux:deb": "npm run pack:linux:deb:x64 && npm run pack:linux:deb:x86 && npm run pack:linux:deb:arm64", + "pack:linux:deb": "npm run pack:linux:deb:x64 && npm run pack:linux:deb:x86 && npm run pack:linux:deb:arm64 && npm run pack:linux:deb:armv7l", "pack:linux:deb:x64": "cross-env ARCH=x64 electron-builder -l=deb --x64", "pack:linux:deb:x86": "cross-env ARCH=x86 electron-builder -l=deb --ia32", "pack:linux:deb:arm64": "cross-env ARCH=arm64 electron-builder -l=deb --arm64", + "pack:linux:deb:armv7l": "cross-env ARCH=armv7l electron-builder -l=deb --armv7l", "pack:linux:rpm": "cross-env ARCH=x64 electron-builder -l=rpm --x64", "pack:linux:pacman": "cross-env ARCH=x64 electron-builder -l=pacman --x64", "pack:mac": "node build-config/pack.js && electron-builder -m=dmg", diff --git a/publish/changeLog.md b/publish/changeLog.md index 69862234..d7f52fa0 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -2,6 +2,14 @@ - 新增设置-其他-列表缓存信息清理功能,注:此功能一般情况下不要使用 +### 优化 + +- 允许播放除了搜索列表以外的所有歌曲,即原来没有播放按钮或者灰色的歌曲都可以点击尝试去播放。注:该功能的原理是尝试自动切换到其他源播放,所以不一定会播放成功,特别是对于那些独家的资源 + +### 移除 + +- 移除虾米源。注:虽然已移除该源,但仍可尝试去播放之前添加的歌曲,虽然不一定会成功 + ### 修复 - 修复音乐搜索列表的稍后播放功能无效的问题 diff --git a/src/renderer/components/core/Player.vue b/src/renderer/components/core/Player.vue index 2fb13e46..e7847c55 100644 --- a/src/renderer/components/core/Player.vue +++ b/src/renderer/components/core/Player.vue @@ -91,7 +91,6 @@ import { formatPlayTime2, getRandom, checkPath, setTitle, clipboardWriteText, de import { mapGetters, mapActions, mapMutations } from 'vuex' import { requestMsg } from '../../utils/message' import { player as eventPlayerNames } from '../../../common/hotKey' -import musicSdk from '@renderer/utils/music' import path from 'path' let audio @@ -327,6 +326,7 @@ export default { }, methods: { ...mapActions('player', ['getUrl', 'getPic', 'getLrc', 'playPrev', 'playNext']), + ...mapActions('list', ['getOtherSource']), ...mapMutations('player', [ 'setPlayMusicInfo', 'setPlayIndex', @@ -492,7 +492,7 @@ export default { this.setImg(targetSong.musicInfo) this.setLrc(targetSong.musicInfo) } else { - if (!this.assertApiSupport(targetSong.source)) return this.playNext() + // if (!this.assertApiSupport(targetSong.source)) return this.playNext() this.musicInfo.songmid = targetSong.songmid this.musicInfo.singer = targetSong.singer this.musicInfo.name = targetSong.name @@ -573,7 +573,7 @@ export default { togglePlay() { if (!audio.src) { if (this.restorePlayTime != null) { - if (!this.assertApiSupport(this.targetSong.source)) return this.playNext() + // if (!this.assertApiSupport(this.targetSong.source)) return this.playNext() this.setUrl(this.targetSong) } return @@ -613,10 +613,7 @@ export default { this.status = this.statusText = 'Try toggle source...' - return (originMusic.otherSource && originMusic.otherSource.length ? Promise.resolve(originMusic.otherSource) : musicSdk.findMusic(originMusic)).then(res => { - this.updateMusicInfo({ id: this.listId, index: this.playIndex, data: { otherSource: res }, musicInfo: originMusic }) - return res - }).then(otherSource => { + return this.getOtherSource(originMusic).then(otherSource => { console.log('find otherSource', otherSource) if (otherSource.length) { for (const item of otherSource) { diff --git a/src/renderer/components/material/MusicComment.vue b/src/renderer/components/material/MusicComment.vue index 7b5c198e..f13c74bd 100644 --- a/src/renderer/components/material/MusicComment.vue +++ b/src/renderer/components/material/MusicComment.vue @@ -50,7 +50,7 @@ export default { singer: '', }, page: 1, - total: 10, + total: 0, maxPage: 1, limit: 20, isHotLoading: true, diff --git a/src/renderer/components/material/SongList.vue b/src/renderer/components/material/SongList.vue index 67c3c46a..afb4b7fc 100644 --- a/src/renderer/components/material/SongList.vue +++ b/src/renderer/components/material/SongList.vue @@ -31,8 +31,6 @@ div(:class="$style.songList") td(:style="{ width: rowWidth.r6 }" style="padding-left: 0; padding-right: 0;") material-list-buttons(:index="index" :class="$style.btns" :remove-btn="false" @btn-click="handleListBtnClick" - :listAdd-btn="assertApiSupport(item.source)" - :play-btn="assertApiSupport(item.source)" :download-btn="assertApiSupport(item.source)") //- button.btn-info(type='button' v-if="item._types['128k'] || item._types['192k'] || item._types['320k'] || item._types.flac" @click.stop='openDownloadModal(index)') 下载 //- button.btn-secondary(type='button' v-if="item._types['128k'] || item._types['192k'] || item._types['320k']" @click.stop='testPlay(index)') 试听 @@ -243,7 +241,7 @@ export default { this.clickIndex = index return } - this.emitEvent(this.assertApiSupport(this.source) ? 'testPlay' : 'search', index) + this.emitEvent('testPlay', index) this.clickTime = 0 this.clickIndex = -1 }, @@ -340,9 +338,9 @@ export default { }, handleListItemRigthClick(event, index) { this.listMenu.itemMenuControl.sourceDetail = !!musicSdk[this.list[index].source].getMusicDetailPageUrl - this.listMenu.itemMenuControl.play = - this.listMenu.itemMenuControl.playLater = - this.listMenu.itemMenuControl.download = + // this.listMenu.itemMenuControl.play = + // this.listMenu.itemMenuControl.playLater = + this.listMenu.itemMenuControl.download = this.assertApiSupport(this.list[index].source) let dom_selected = this.$refs.dom_tbody.querySelector('tr.selected') if (dom_selected) dom_selected.classList.remove('selected') diff --git a/src/renderer/store/modules/list.js b/src/renderer/store/modules/list.js index d0bc5451..10af48b6 100644 --- a/src/renderer/store/modules/list.js +++ b/src/renderer/store/modules/list.js @@ -1,3 +1,5 @@ +import musicSdk from '../../utils/music' + let allList = {} window.allList = allList @@ -48,7 +50,12 @@ const getters = { // actions const actions = { - + getOtherSource({ state, commit }, musicInfo) { + return (musicInfo.otherSource && musicInfo.otherSource.length ? Promise.resolve(musicInfo.otherSource) : musicSdk.findMusic(musicInfo)).then(otherSource => { + commit('setOtherSource', { musicInfo, otherSource }) + return otherSource + }) + }, } // mitations @@ -217,6 +224,9 @@ const mutations = { } } }, + setOtherSource(state, { musicInfo, otherSource }) { + musicInfo.otherSource = otherSource + }, } export default { diff --git a/src/renderer/store/modules/player.js b/src/renderer/store/modules/player.js index a6a27bfc..d134f033 100644 --- a/src/renderer/store/modules/player.js +++ b/src/renderer/store/modules/player.js @@ -18,8 +18,8 @@ const state = { } let urlRequest -let picRequest -let lrcRequest +// let picRequest +// let lrcRequest const filterList = async({ playedList, listInfo, savePath, commit }) => { // if (this.list.listName === null) return @@ -44,7 +44,7 @@ const filterList = async({ playedList, listInfo, savePath, commit }) => { } } else { list = listInfo.list.filter(s => { - if (!assertApiSupport(s.source)) return false + // if (!assertApiSupport(s.source)) return false canPlayList.push(s) let index = filteredPlayedList.indexOf(s) @@ -62,6 +62,42 @@ const filterList = async({ playedList, listInfo, savePath, commit }) => { return list } +const getPic = function(musicInfo, retryedSource = [], originMusic) { + console.log(musicInfo.source) + return music[musicInfo.source].getPic(musicInfo).promise.catch(err => { + if (!retryedSource.includes(musicInfo.source)) retryedSource.push(musicInfo.source) + return this.dispatch('list/getOtherSource', musicInfo).then(otherSource => { + if (!originMusic) originMusic = musicInfo + console.log('find otherSource', otherSource) + if (otherSource.length) { + for (const item of otherSource) { + if (retryedSource.includes(item.source)) continue + console.log('try toggle to: ', item.source, item.name, item.singer, item.interval) + return getPic.call(this, item, retryedSource, originMusic) + } + } + return Promise.reject(err) + }) + }) +} +const getLyric = function(musicInfo, retryedSource = [], originMusic) { + return music[musicInfo.source].getLyric(musicInfo).promise.catch(err => { + if (!retryedSource.includes(musicInfo.source)) retryedSource.push(musicInfo.source) + return this.dispatch('list/getOtherSource', musicInfo).then(otherSource => { + if (!originMusic) originMusic = musicInfo + console.log('find otherSource', otherSource) + if (otherSource.length) { + for (const item of otherSource) { + if (retryedSource.includes(item.source)) continue + console.log('try toggle to: ', item.source, item.name, item.singer, item.interval) + return getLyric.call(this, item, retryedSource, originMusic) + } + } + return Promise.reject(err) + }) + }) +} + // getters const getters = { list: state => state.listInfo.list, @@ -120,7 +156,11 @@ const actions = { } if (urlRequest && urlRequest.cancelHttp) urlRequest.cancelHttp() if (musicInfo.typeUrl[type] && !isRefresh) return Promise.resolve(musicInfo.typeUrl[type]) - urlRequest = music[musicInfo.source].getMusicUrl(musicInfo, type) + try { + urlRequest = music[musicInfo.source].getMusicUrl(musicInfo, type) + } catch (err) { + return Promise.reject(err) + } return urlRequest.promise.then(({ url }) => { if (originMusic) commit('setUrl', { musicInfo: originMusic, url, type }) commit('setUrl', { musicInfo, url, type }) @@ -132,18 +172,18 @@ const actions = { }) }, getPic({ commit, state }, musicInfo) { - if (picRequest && picRequest.cancelHttp) picRequest.cancelHttp() - picRequest = music[musicInfo.source].getPic(musicInfo) - return picRequest.promise.then(url => { - picRequest = null + // if (picRequest && picRequest.cancelHttp) picRequest.cancelHttp() + // picRequest = music[musicInfo.source].getPic(musicInfo) + return getPic.call(this, musicInfo).then(url => { + // picRequest = null commit('getPic', { musicInfo, url }) }).catch(err => { - picRequest = null + // picRequest = null return Promise.reject(err) }) }, getLrc({ commit, state }, musicInfo) { - if (lrcRequest && lrcRequest.cancelHttp) lrcRequest.cancelHttp() + // if (lrcRequest && lrcRequest.cancelHttp) lrcRequest.cancelHttp() if (musicInfo.lrc && musicInfo.tlrc != null) { if (musicInfo.lrc.startsWith('\ufeff[id:$00000000]')) { let str = musicInfo.lrc.replace('\ufeff[id:$00000000]\n', '') @@ -153,12 +193,12 @@ const actions = { } - lrcRequest = music[musicInfo.source].getLyric(musicInfo) - return lrcRequest.promise.then(({ lyric, tlyric }) => { - lrcRequest = null + // lrcRequest = music[musicInfo.source].getLyric(musicInfo) + return getLyric.call(this, musicInfo).then(({ lyric, tlyric }) => { + // lrcRequest = null commit('setLrc', { musicInfo, lyric, tlyric }) }).catch(err => { - lrcRequest = null + // lrcRequest = null return Promise.reject(err) }) }, diff --git a/src/renderer/utils/music/api-source-info.js b/src/renderer/utils/music/api-source-info.js index 74379655..e3ea06f7 100644 --- a/src/renderer/utils/music/api-source-info.js +++ b/src/renderer/utils/music/api-source-info.js @@ -11,7 +11,6 @@ module.exports = [ tx: ['128k'], wy: ['128k'], mg: ['128k'], - xm: ['128k'], // bd: ['128k'], }, }, diff --git a/src/renderer/utils/music/index.js b/src/renderer/utils/music/index.js index 7ef844b3..c9821b02 100644 --- a/src/renderer/utils/music/index.js +++ b/src/renderer/utils/music/index.js @@ -87,7 +87,7 @@ export default { item.name = trimStr(item.name) item.lowerCaseName = String(item.name).toLowerCase() item.lowerCaseAlbumName = String(item.albumName).toLowerCase() - console.log(lowerCaseName, item.lowerCaseName) + // console.log(lowerCaseName, item.lowerCaseName) if ( ( item.sortedSinger === sortedSinger && diff --git a/src/renderer/utils/music/xm/index.js b/src/renderer/utils/music/xm/index.js index e586bf25..5142a0db 100644 --- a/src/renderer/utils/music/xm/index.js +++ b/src/renderer/utils/music/xm/index.js @@ -1,39 +1,54 @@ -import { apis } from '../api-source' -import leaderboard from './leaderboard' -import songList from './songList' -import musicSearch from './musicSearch' +// import { apis } from '../api-source' +// import leaderboard from './leaderboard' +// import songList from './songList' +// import musicSearch from './musicSearch' // import pic from './pic' -import lyric from './lyric' -import hotSearch from './hotSearch' -import comment from './comment' -import musicInfo from './musicInfo' -import { closeVerifyModal } from './util' +// import lyric from './lyric' +// import hotSearch from './hotSearch' +// import comment from './comment' +// import musicInfo from './musicInfo' +// import { closeVerifyModal } from './util' const xm = { - songList, - musicSearch, - leaderboard, - hotSearch, - closeVerifyModal, - comment, + // songList, + // musicSearch, + // leaderboard, + // hotSearch, + // closeVerifyModal, + comment: { + getComment() { + return Promise.reject(new Error('fail')) + }, + getHotComment() { + return Promise.reject(new Error('fail')) + }, + }, getMusicUrl(songInfo, type) { - return apis('xm').getMusicUrl(songInfo, type) + return { + promise: Promise.reject(new Error('fail')), + } + // return apis('xm').getMusicUrl(songInfo, type) }, getLyric(songInfo) { - return lyric.getLyric(songInfo) + return { + promise: Promise.reject(new Error('fail')), + } + // return lyric.getLyric(songInfo) }, getPic(songInfo) { - return Promise.reject(new Error('fail')) + return { + promise: Promise.reject(new Error('fail')), + } // return pic.getPic(songInfo) }, - getMusicDetailPageUrl(songInfo) { - if (songInfo.songStringId) return `https://www.xiami.com/song/${songInfo.songStringId}` + // getMusicDetailPageUrl(songInfo) { + // if (songInfo.songStringId) return `https://www.xiami.com/song/${songInfo.songStringId}` - musicInfo.getMusicInfo(songInfo).then(({ data }) => { - songInfo.songStringId = data.songStringId - }) - return `https://www.xiami.com/song/${songInfo.songmid}` - }, + // musicInfo.getMusicInfo(songInfo).then(({ data }) => { + // songInfo.songStringId = data.songStringId + // }) + // return `https://www.xiami.com/song/${songInfo.songmid}` + // }, // init() { // getToken() // }, diff --git a/src/renderer/utils/music/xm/util.js b/src/renderer/utils/music/xm/util.js index d8b30f08..e02aa2c3 100644 --- a/src/renderer/utils/music/xm/util.js +++ b/src/renderer/utils/music/xm/util.js @@ -68,7 +68,7 @@ export const xmRequest = (path, params = '') => { isCancelled: false, cancelHttp() { if (!this.isInited) this.isCancelled = true - this.requestObj.cancelHttp() + this.requestObj && this.requestObj.cancelHttp() }, } diff --git a/src/renderer/views/List.vue b/src/renderer/views/List.vue index 8703fd19..2759cad9 100644 --- a/src/renderer/views/List.vue +++ b/src/renderer/views/List.vue @@ -569,7 +569,7 @@ export default { } }, testPlay(index) { - if (!this.assertApiSupport(this.list[index].source)) return + // if (!this.assertApiSupport(this.list[index].source)) return this.setPlayList({ list: this.listData, index }) }, handleRemove(index) { @@ -579,7 +579,7 @@ export default { switch (info.action) { case 'download': { const minfo = this.list[info.index] - if (!this.assertApiSupport(minfo.source)) return + // if (!this.assertApiSupport(minfo.source)) return this.musicInfo = minfo this.$nextTick(() => { this.isShowDownload = true @@ -732,9 +732,9 @@ export default { }, handleListItemRigthClick(event, index) { this.listMenu.itemMenuControl.sourceDetail = !!musicSdk[this.list[index].source].getMusicDetailPageUrl - this.listMenu.itemMenuControl.play = - this.listMenu.itemMenuControl.playLater = - this.listMenu.itemMenuControl.download = + // this.listMenu.itemMenuControl.play = + // this.listMenu.itemMenuControl.playLater = + this.listMenu.itemMenuControl.download = this.assertApiSupport(this.list[index].source) let dom_selected = this.$refs.dom_tbody.querySelector('tr.selected') if (dom_selected) dom_selected.classList.remove('selected') diff --git a/src/renderer/views/SongList.vue b/src/renderer/views/SongList.vue index e0dbac2f..dc272426 100644 --- a/src/renderer/views/SongList.vue +++ b/src/renderer/views/SongList.vue @@ -239,7 +239,7 @@ export default { break case 'play': if (this.selectedData.length) { - this.listAddMultiple({ id: 'default', list: this.filterList(this.selectedData) }) + this.listAddMultiple({ id: 'default', list: [...this.selectedData] }) this.resetSelect() } this.testPlay(info.index) From b6b41660d6cfaa37b4bb29a82f50c56f12ba39ad Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 5 Feb 2021 23:07:36 +0800 Subject: [PATCH 08/37] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=9C=AA=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/store/modules/player.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/store/modules/player.js b/src/renderer/store/modules/player.js index d134f033..87d3d083 100644 --- a/src/renderer/store/modules/player.js +++ b/src/renderer/store/modules/player.js @@ -1,6 +1,6 @@ import path from 'path' import music from '../../utils/music' -import { getRandom, checkPath, assertApiSupport } from '../../utils' +import { getRandom, checkPath } from '../../utils' // state const state = { From 0afb1417a3ec5a7cf78377a4c0c1df8d5a72c72c Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 6 Feb 2021 00:09:09 +0800 Subject: [PATCH 09/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=95=B0=E6=8D=AE=E5=AD=98=E5=82=A8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/rendererEvents/playList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/rendererEvents/playList.js b/src/main/rendererEvents/playList.js index 5bfeb50e..a22c5e4f 100644 --- a/src/main/rendererEvents/playList.js +++ b/src/main/rendererEvents/playList.js @@ -34,7 +34,7 @@ mainOn(ipcMainWindowNames.save_playlist, (event, { type, data }) => { electronStore_list && electronStore_list.set(type, data) break case 'downloadList': - electronStore_downloadList && electronStore_downloadList.set(type, data) + electronStore_downloadList && electronStore_downloadList.set('list', data) break } }) From 475b8924c3542db48d13bfc1a2ca7450e1838f1b Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 15 Feb 2021 10:52:29 +0800 Subject: [PATCH 10/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=AD=8C=E5=8D=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8A=A0=E8=BD=BD=E5=A4=B1=E8=B4=A5=E6=97=B6?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=BF=9B=E5=85=A5=E6=AD=8C=E5=8D=95=E6=89=93?= =?UTF-8?q?=E5=BC=80=E7=95=8C=E9=9D=A2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/renderer/views/SongList.vue | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index d7f52fa0..a620045f 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -14,3 +14,4 @@ - 修复音乐搜索列表的稍后播放功能无效的问题 - 修复搜索列表双击不支持播放的源时会导致切歌的问题 +- 修复歌单列表加载失败时无法进入歌单打开界面的问题 diff --git a/src/renderer/views/SongList.vue b/src/renderer/views/SongList.vue index dc272426..35ad83f7 100644 --- a/src/renderer/views/SongList.vue +++ b/src/renderer/views/SongList.vue @@ -23,7 +23,7 @@ material-select(:class="$style.select" :list="sourceInfo.sources" item-key="id" item-name="name" v-model="source") div(:class="$style.songListContent") transition(enter-active-class="animated-fast fadeIn" leave-active-class="animated-fast fadeOut") - div(:class="$style.songListContent" v-show="listData.list.length") + div(:class="$style.songListContent") transition(enter-active-class="animated-fast fadeIn" leave-active-class="animated-fast fadeOut") div.scroll(:class="$style.songList" v-if="sortId !== 'importSongList'" ref="dom_scrollContent") ul @@ -49,7 +49,7 @@ li {{$t('view.song_list.tip_2')}} li {{$t('view.song_list.tip_3')}} transition(enter-active-class="animated-fast fadeIn" leave-active-class="animated-fast fadeOut") - div(v-show="!listData.list.length" :class="$style.noitem") + div(v-show="!listData.list.length && sortId !== 'importSongList'" :class="$style.noitem") p {{$t('view.song_list.loding_list')}} material-download-modal(:show="isShowDownload" :musicInfo="musicInfo" @select="handleAddDownload" @close="isShowDownload = false") material-download-multiple-modal(:show="isShowDownloadMultiple" :list="selectedData" @select="handleAddDownloadMultiple" @close="isShowDownloadMultiple = false") From 00d262f0e630f138396c64a2ad704a9569f860cb Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 15 Feb 2021 12:40:12 +0800 Subject: [PATCH 11/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmg=E6=BA=90=E6=AD=8C?= =?UTF-8?q?=E5=8D=95=E5=88=97=E8=A1=A8=E6=97=A0=E6=B3=95=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/renderer/utils/music/mg/songList.js | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index a620045f..0c496d8e 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -15,3 +15,4 @@ - 修复音乐搜索列表的稍后播放功能无效的问题 - 修复搜索列表双击不支持播放的源时会导致切歌的问题 - 修复歌单列表加载失败时无法进入歌单打开界面的问题 +- 修复mg源歌单列表无法加载的问题 diff --git a/src/renderer/utils/music/mg/songList.js b/src/renderer/utils/music/mg/songList.js index 5eaf869d..0f7f49bb 100644 --- a/src/renderer/utils/music/mg/songList.js +++ b/src/renderer/utils/music/mg/songList.js @@ -48,10 +48,12 @@ export default { return `https://app.c.nf.migu.cn/MIGUM2.0/v1.0/user/queryMusicListSongs.do?musicListId=${id}&pageNo=${page}&pageSize=${this.limit_song}` }, defaultHeaders: { - language: 'Chinese', - ua: 'Android_migu', - mode: 'android', - version: '6.8.5', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + Referer: 'https://m.music.migu.cn/', + // language: 'Chinese', + // ua: 'Android_migu', + // mode: 'android', + // version: '6.8.5', }, /** @@ -155,6 +157,7 @@ export default { if (this._requestObj_list) this._requestObj_list.cancelHttp() if (tryNum > 2) return Promise.reject(new Error('try max num')) this._requestObj_list = httpFetch(this.getSongListUrl(sortId, tagId, page), { + headers: this.defaultHeaders, // headers: { // sign: 'c3b7ae985e2206e97f1b2de8f88691e2', // timestamp: 1578225871982, @@ -186,6 +189,7 @@ export default { // }) // }) return this._requestObj_list.promise.then(({ body }) => { + // console.log(body) if (body.retCode !== '100000' || body.retMsg.code !== this.successCode) return this.getList(sortId, tagId, page, ++tryNum) return { list: this.filterList(body.retMsg.playlist), From ef371dedb42b5130c0f3f2efc6df10bb88668169 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 15 Feb 2021 19:53:46 +0800 Subject: [PATCH 12/37] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 0c496d8e..6c426675 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -4,7 +4,7 @@ ### 优化 -- 允许播放除了搜索列表以外的所有歌曲,即原来没有播放按钮或者灰色的歌曲都可以点击尝试去播放。注:该功能的原理是尝试自动切换到其他源播放,所以不一定会播放成功,特别是对于那些独家的资源 +- 允许播放除了搜索列表以外的所有歌曲,即原来没有播放按钮或者灰色的歌曲都可以去尝试点击播放。注:该功能的原理是尝试自动切换到其他源播放,所以不一定会播放成功,特别是对于那些独家的资源 ### 移除 From d128aeb6efc9cb83e4a786eab8fb1a669eac0d62 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 19 Feb 2021 11:47:25 +0800 Subject: [PATCH 13/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dkg=E6=AD=8C=E6=9B=B2?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E7=9A=84=E6=AD=8C=E6=9B=B2=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=92=AD=E6=94=BE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/renderer/utils/music/kg/index.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 6c426675..c84185f6 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -16,3 +16,4 @@ - 修复搜索列表双击不支持播放的源时会导致切歌的问题 - 修复歌单列表加载失败时无法进入歌单打开界面的问题 - 修复mg源歌单列表无法加载的问题 +- 修复kg歌曲详情页的歌曲无法播放的问题 diff --git a/src/renderer/utils/music/kg/index.js b/src/renderer/utils/music/kg/index.js index c0ccfbb2..4d4ac3da 100644 --- a/src/renderer/utils/music/kg/index.js +++ b/src/renderer/utils/music/kg/index.js @@ -26,7 +26,7 @@ const kg = { return pic.getPic(songInfo) }, getMusicDetailPageUrl(songInfo) { - return `https://www.kugou.com/song/#hash=${songInfo.hash}` + return `https://www.kugou.com/song/#hash=${songInfo.hash}&album_id=${songInfo.albumId}` }, // getPic(songInfo) { // return apis('kg').getPic(songInfo) From 9e1fe0a6c1c80c4bccaafbe5cc84c58a86410387 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 19 Feb 2021 21:59:58 +0800 Subject: [PATCH 14/37] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 2 +- src/renderer/views/Setting.vue | 40 +++++++++++++++++----------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index c84185f6..4b4e5c67 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -16,4 +16,4 @@ - 修复搜索列表双击不支持播放的源时会导致切歌的问题 - 修复歌单列表加载失败时无法进入歌单打开界面的问题 - 修复mg源歌单列表无法加载的问题 -- 修复kg歌曲详情页的歌曲无法播放的问题 +- 修复kg跳转到官方歌曲详情页的歌曲无法播放的问题 diff --git a/src/renderer/views/Setting.vue b/src/renderer/views/Setting.vue index 21f81480..10ed1d08 100644 --- a/src/renderer/views/Setting.vue +++ b/src/renderer/views/Setting.vue @@ -301,26 +301,26 @@ export default { ? `${this.version.downloadProgress.percent.toFixed(2)}% - ${sizeFormate(this.version.downloadProgress.transferred)}/${sizeFormate(this.version.downloadProgress.total)} - ${sizeFormate(this.version.downloadProgress.bytesPerSecond)}/s` : this.$t('view.setting.update_init') }, - togglePlayMethods() { - return [ - { - name: this.$t('view.setting.play_toggle_list_loop'), - value: 'listLoop', - }, - { - name: this.$t('view.setting.play_toggle_random'), - value: 'random', - }, - { - name: this.$t('view.setting.play_toggle_list'), - value: 'list', - }, - { - name: this.$t('view.setting.play_toggle_single_loop'), - value: 'singleLoop', - }, - ] - }, + // togglePlayMethods() { + // return [ + // { + // name: this.$t('view.setting.play_toggle_list_loop'), + // value: 'listLoop', + // }, + // { + // name: this.$t('view.setting.play_toggle_random'), + // value: 'random', + // }, + // { + // name: this.$t('view.setting.play_toggle_list'), + // value: 'list', + // }, + // { + // name: this.$t('view.setting.play_toggle_single_loop'), + // value: 'singleLoop', + // }, + // ] + // }, apiSources() { return apiSourceInfo.map(api => ({ id: api.id, From 24d5722ef72319584852f091557d85464d6cbfc1 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 19 Feb 2021 22:10:37 +0800 Subject: [PATCH 15/37] =?UTF-8?q?=E7=A7=BB=E9=99=A4log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/store/modules/player.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/store/modules/player.js b/src/renderer/store/modules/player.js index 87d3d083..cfde88f0 100644 --- a/src/renderer/store/modules/player.js +++ b/src/renderer/store/modules/player.js @@ -63,7 +63,7 @@ const filterList = async({ playedList, listInfo, savePath, commit }) => { } const getPic = function(musicInfo, retryedSource = [], originMusic) { - console.log(musicInfo.source) + // console.log(musicInfo.source) return music[musicInfo.source].getPic(musicInfo).promise.catch(err => { if (!retryedSource.includes(musicInfo.source)) retryedSource.push(musicInfo.source) return this.dispatch('list/getOtherSource', musicInfo).then(otherSource => { From ffaa3e591b47390847a6dbf41287165b121c79f7 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 20 Feb 2021 00:50:00 +0800 Subject: [PATCH 16/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dkg=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/utils/music/kg/pic.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/renderer/utils/music/kg/pic.js b/src/renderer/utils/music/kg/pic.js index feceef68..b74693ba 100644 --- a/src/renderer/utils/music/kg/pic.js +++ b/src/renderer/utils/music/kg/pic.js @@ -37,7 +37,9 @@ export default { requestObj.promise = requestObj.promise.then(({ body }) => { if (body.error_code !== 0) return Promise.reject('图片获取失败') let info = body.data[0].info - return info.imgsize ? info.image.replace('{size}', info.imgsize[0]) : info.image + const img = info.imgsize ? info.image.replace('{size}', info.imgsize[0]) : info.image + if (!img) return Promise.reject('Pic get failed') + return img }) return requestObj }, From 376b7545e1c53b31f0d7438230e714f60de6e2cb Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 20 Feb 2021 01:01:58 +0800 Subject: [PATCH 17/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=88=91=E7=9A=84?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=9A=84=E7=81=B0=E8=89=B2=E6=AD=8C=E6=9B=B2?= =?UTF-8?q?=E4=BC=9A=E6=98=BE=E7=A4=BA=E4=B8=8B=E8=BD=BD=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/views/List.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/List.vue b/src/renderer/views/List.vue index 2759cad9..15e8966b 100644 --- a/src/renderer/views/List.vue +++ b/src/renderer/views/List.vue @@ -54,7 +54,7 @@ td(style="width: 9%;") span(:class="[$style.time, $style.noSelect]") {{item.interval || '--/--'}} td(style="width: 15%; padding-left: 0; padding-right: 0;") - material-list-buttons(:index="index" @btn-click="handleListBtnClick") + material-list-buttons(:index="index" @btn-click="handleListBtnClick" :download-btn="assertApiSupport(item.source)") //- button.btn-info(type='button' v-if="item._types['128k'] || item._types['192k'] || item._types['320k'] || item._types.flac" @click.stop='openDownloadModal(index)') 下载 //- button.btn-secondary(type='button' v-if="item._types['128k'] || item._types['192k'] || item._types['320k']" @click.stop='testPlay(index)') 试听 //- button.btn-secondary(type='button' @click.stop='handleRemove(index)') 删除 From b5f5e13f22277997f7a4decfd5898c218f348ba8 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 21 Feb 2021 12:34:50 +0800 Subject: [PATCH 18/37] =?UTF-8?q?=E7=A7=BB=E9=99=A4xm=20verify=E7=AA=97?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/rendererEvents/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/rendererEvents/index.js b/src/main/rendererEvents/index.js index 395d0fca..4df658d3 100644 --- a/src/main/rendererEvents/index.js +++ b/src/main/rendererEvents/index.js @@ -18,6 +18,6 @@ require('./showDialog') require('./playList') require('./data') -require('./xm_verify') +// require('./xm_verify') require('./kw_decodeLyric') From 6ffe61562b4689ca88fa2c95f4ab62635a8e8227 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 21 Feb 2021 15:46:19 +0800 Subject: [PATCH 19/37] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=8D=A2=E6=BA=90=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/store/modules/list.js | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/renderer/store/modules/list.js b/src/renderer/store/modules/list.js index 10af48b6..6dc9b97f 100644 --- a/src/renderer/store/modules/list.js +++ b/src/renderer/store/modules/list.js @@ -64,20 +64,6 @@ const mutations = { if (defaultList != null) Object.assign(state.defaultList, { list: defaultList.list, location: defaultList.location }) if (loveList != null) Object.assign(state.loveList, { list: loveList.list, location: loveList.location }) if (userList != null) state.userList = userList - if (window.localStorage.getItem('isResetOtherSource') != '1') { - for (const item of defaultList.list) { - if (item.otherSource) item.otherSource = null - } - for (const item of loveList.list) { - if (item.otherSource) item.otherSource = null - } - for (const list of userList) { - for (const item of list.list) { - if (item.otherSource) item.otherSource = null - } - } - window.localStorage.setItem('isResetOtherSource', '1') - } allListInit(state.defaultList, state.loveList, state.userList) state.isInitedList = true }, From b6107b728194be2436a1520b281e56b0ef22a57e Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 21 Feb 2021 16:19:08 +0800 Subject: [PATCH 20/37] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/rendererEvents/playList.js | 14 +++++++--- src/renderer/App.vue | 40 +++++++++++++++-------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/main/rendererEvents/playList.js b/src/main/rendererEvents/playList.js index a22c5e4f..86a90d89 100644 --- a/src/main/rendererEvents/playList.js +++ b/src/main/rendererEvents/playList.js @@ -26,12 +26,18 @@ mainHandle(ipcMainWindowNames.get_playlist, async(event, isIgnoredError = false) } }) +const handleSaveList = ({ defaultList, loveList, userList }) => { + if (!electronStore_list) return + let data = {} + if (defaultList != null) data.defaultList = defaultList + if (loveList != null) data.loveList = loveList + if (userList != null) data.userList = userList + electronStore_list.set(data) +} mainOn(ipcMainWindowNames.save_playlist, (event, { type, data }) => { switch (type) { - case 'defaultList': - case 'loveList': - case 'userList': - electronStore_list && electronStore_list.set(type, data) + case 'myList': + handleSaveList(data) break case 'downloadList': electronStore_downloadList && electronStore_downloadList.set('list', data) diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 161531cb..3364102a 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -37,6 +37,20 @@ dnscache({ cachesize: 1000, }) +const listThrottle = (fn, delay = 100) => { + let timer = null + let _data = {} + return function(data) { + Object.assign(_data, data) + if (timer) return + timer = setTimeout(() => { + timer = null + fn.call(this, _data) + _data = {} + }, delay) + } +} + export default { data() { return { @@ -70,24 +84,12 @@ export default { }), }, created() { - this.saveDefaultList = throttle(n => { + this.saveMyList = listThrottle(data => { rendererSend(NAMES.mainWindow.save_playlist, { - type: 'defaultList', - data: n, + type: 'myList', + data, }) - }, 500) - this.saveLoveList = throttle(n => { - rendererSend(NAMES.mainWindow.save_playlist, { - type: 'loveList', - data: n, - }) - }, 500) - this.saveUserList = throttle(n => { - rendererSend(NAMES.mainWindow.save_playlist, { - type: 'userList', - data: n, - }) - }, 500) + }, 300) this.saveDownloadList = throttle(n => { rendererSend(NAMES.mainWindow.save_playlist, { type: 'downloadList', @@ -115,19 +117,19 @@ export default { }, defaultList: { handler(n) { - this.saveDefaultList(n) + this.saveMyList({ defaultList: n }) }, deep: true, }, loveList: { handler(n) { - this.saveLoveList(n) + this.saveMyList({ loveList: n }) }, deep: true, }, userList: { handler(n) { - this.saveUserList(n) + this.saveMyList({ userList: n }) }, deep: true, }, From fa0d9ad4c3efe0c409a00041159606837afc7a3a Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 22 Feb 2021 12:59:39 +0800 Subject: [PATCH 21/37] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E5=8F=82=E6=95=B0-play?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 + publish/changeLog.md | 1 + src/common/config.js | 2 +- src/main/rendererEvents/index.js | 2 - src/main/rendererEvents/xm_verify/index.js | 4 - .../rendererEvents/xm_verify/xm_verify.js | 4 - .../xm_verify/xm_verify_view.js | 79 ------- .../rendererEvents/xm_verify/xm_verify_win.js | 91 -------- src/renderer/App.vue | 120 ++++++++-- .../components/material/XmVerifyModal.vue | 50 ---- src/renderer/utils/index.js | 11 + src/renderer/utils/music/index.js | 4 +- src/renderer/utils/music/kw/index.js | 2 +- .../utils/music/{xm/index.js => xm.js} | 0 src/renderer/utils/music/xm/api-test.js | 20 -- src/renderer/utils/music/xm/comment.js | 47 ---- src/renderer/utils/music/xm/hotSearch.js | 20 -- src/renderer/utils/music/xm/leaderboard.js | 211 ----------------- src/renderer/utils/music/xm/lyric.js | 107 --------- src/renderer/utils/music/xm/musicInfo.js | 14 -- src/renderer/utils/music/xm/musicSearch.js | 115 --------- src/renderer/utils/music/xm/songList.js | 221 ------------------ src/renderer/utils/music/xm/util.js | 122 ---------- 23 files changed, 121 insertions(+), 1132 deletions(-) delete mode 100644 src/main/rendererEvents/xm_verify/index.js delete mode 100644 src/main/rendererEvents/xm_verify/xm_verify.js delete mode 100644 src/main/rendererEvents/xm_verify/xm_verify_view.js delete mode 100644 src/main/rendererEvents/xm_verify/xm_verify_win.js delete mode 100644 src/renderer/components/material/XmVerifyModal.vue rename src/renderer/utils/music/{xm/index.js => xm.js} (100%) delete mode 100644 src/renderer/utils/music/xm/api-test.js delete mode 100644 src/renderer/utils/music/xm/comment.js delete mode 100644 src/renderer/utils/music/xm/hotSearch.js delete mode 100644 src/renderer/utils/music/xm/leaderboard.js delete mode 100644 src/renderer/utils/music/xm/lyric.js delete mode 100644 src/renderer/utils/music/xm/musicInfo.js delete mode 100644 src/renderer/utils/music/xm/musicSearch.js delete mode 100644 src/renderer/utils/music/xm/songList.js delete mode 100644 src/renderer/utils/music/xm/util.js diff --git a/README.md b/README.md index 088b531d..a9af56d1 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,12 @@ npm run pack:linux - `-search` 启动软件时自动在搜索框搜索指定的内容,例如:`-search="突然的自我 - 伍佰"` - `-dha` 禁用硬件加速启动(Disable Hardware Acceleration),窗口显示有问题时可以尝试添加此参数启动(v1.6.0起新增) - `-dt` 以非透明模式启动(Disable Transparent),对于未开启AERO效果的win7系统可加此参数启动以确保界面正常显示,原来的`-nt`参数已重命名为`-dt`(v1.6.0起重命名) +- `-play` 启动时播放指定列表的音乐,参数说明: + - `type`:播放类型,目前固定为`songList` + - `source`:播放源,可用值为`kw/kg/tx/wy/mg/myList`,其中`kw/kg/tx/wy/mg`对应各源的在线列表,`myList`为本地列表 + - `link`:要播放的在线列表歌单链接、或ID,source为`kw/kg/tx/wy/mg`之一(在线列表)时必传,举例:`./lx-music-desktop -play="type=songList&source=kw&link=歌单URL or ID",注意:如果传入URL时必须对URL进行编码后再传入 + - `name`:要播放的本地列表歌单名字,source为`myList`时必传,举例:`./lx-music-desktop -play="type=songList&source=myList&name=默认列表" + - `index`:从列表的哪个位置开始播放,选传,若不传默认播放第一首歌曲,举例:`./lx-music-desktop -play="type=songList&source=myList&name=默认列表&index=2" ### 常见问题 diff --git a/publish/changeLog.md b/publish/changeLog.md index 4b4e5c67..33529d36 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,6 +1,7 @@ ### 新增 - 新增设置-其他-列表缓存信息清理功能,注:此功能一般情况下不要使用 +- 新增启动参数`-play`,可以在启动软件时播放指定歌单,使用方法看Readme.md的"启动参数"部分 ### 优化 diff --git a/src/common/config.js b/src/common/config.js index 833c3a86..c6568f1d 100644 --- a/src/common/config.js +++ b/src/common/config.js @@ -51,6 +51,6 @@ module.exports = { }, ], navigationUrlWhiteList: [ - /^https:\/\/www\.xiami\.com/, + ], } diff --git a/src/main/rendererEvents/index.js b/src/main/rendererEvents/index.js index 4df658d3..9fe426ab 100644 --- a/src/main/rendererEvents/index.js +++ b/src/main/rendererEvents/index.js @@ -18,6 +18,4 @@ require('./showDialog') require('./playList') require('./data') -// require('./xm_verify') - require('./kw_decodeLyric') diff --git a/src/main/rendererEvents/xm_verify/index.js b/src/main/rendererEvents/xm_verify/index.js deleted file mode 100644 index c702a972..00000000 --- a/src/main/rendererEvents/xm_verify/index.js +++ /dev/null @@ -1,4 +0,0 @@ -const { isMac } = require('../../../common/utils') - -// mac下的 BrowserView 无法拖动验证栏,改用 BrowserWindow -require(isMac ? './xm_verify_win' : './xm_verify_view') diff --git a/src/main/rendererEvents/xm_verify/xm_verify.js b/src/main/rendererEvents/xm_verify/xm_verify.js deleted file mode 100644 index c702a972..00000000 --- a/src/main/rendererEvents/xm_verify/xm_verify.js +++ /dev/null @@ -1,4 +0,0 @@ -const { isMac } = require('../../../common/utils') - -// mac下的 BrowserView 无法拖动验证栏,改用 BrowserWindow -require(isMac ? './xm_verify_win' : './xm_verify_view') diff --git a/src/main/rendererEvents/xm_verify/xm_verify_view.js b/src/main/rendererEvents/xm_verify/xm_verify_view.js deleted file mode 100644 index 22df05ef..00000000 --- a/src/main/rendererEvents/xm_verify/xm_verify_view.js +++ /dev/null @@ -1,79 +0,0 @@ -const { BrowserView } = require('electron') -const { mainHandle, NAMES: { mainWindow: ipcMainWindowNames } } = require('../../../common/ipc') -const { getWindowSizeInfo } = require('../../utils') - -let view -let isActioned = false -let rejectFn - -const closeView = async() => { - if (!view) return - // await view.webContents.session.clearCache() - if (global.modules.mainWindow) global.modules.mainWindow.removeBrowserView(view) - await view.webContents.session.clearStorageData() - view.destroy() - view = null -} - -mainHandle(ipcMainWindowNames.handle_xm_verify_open, (event, url) => new Promise((resolve, reject) => { - if (!global.modules.mainWindow) return reject(new Error('mainWindow is undefined')) - if (view) { - global.modules.mainWindow.removeBrowserView(view) - view.destroy() - } - - rejectFn = reject - - isActioned = false - - view = new BrowserView({ - webPreferences: { - enableRemoteModule: false, - disableHtmlFullscreenWindowResize: true, - }, - }) - // view.webContents.on('did-finish-load', () => { - // if (/punish\?/.test(view.webContents.getURL())) return - // let ses = view.webContents.session - // ses.cookies.get({ name: 'x5sec' }) - // .then(async([x5sec]) => { - // isActioned = true - // await closeView() - // if (!x5sec) return reject(new Error('get x5sec failed')) - // resolve(x5sec.value) - // }).catch(async err => { - // isActioned = true - // await closeView() - // reject(err) - // }) - // }) - view.webContents.session.webRequest.onCompleted({ urls: ['*://www.xiami.com/*'] }, details => { - if (/\/_____tmd_____\/slide\?/.test(details.url)) { - for (const item of details.responseHeaders['set-cookie']) { - if (!/^x5sec=/.test(item)) continue - const x5sec = /x5sec=(\w+);.+$/.exec(item) - isActioned = true - closeView().finally(() => { - if (!x5sec) return reject(new Error('get x5sec failed')) - resolve(x5sec[1]) - }) - } - } - }) - // console.log(url) - global.modules.mainWindow.setBrowserView(view) - const windowSizeInfo = getWindowSizeInfo(global.appSetting) - view.setBounds({ x: (windowSizeInfo.width - 380) / 2, y: ((windowSizeInfo.height - 320 + 52) / 2), width: 380, height: 320 }) - view.webContents.loadURL(url, { - httpReferrer: 'https://www.xiami.com/', - }) - // view.webContents.openDevTools() -})) - -mainHandle(ipcMainWindowNames.handle_xm_verify_close, async() => { - await closeView() - if (!rejectFn) return - if (!isActioned) rejectFn(new Error('canceled verify')) - rejectFn = null -}) - diff --git a/src/main/rendererEvents/xm_verify/xm_verify_win.js b/src/main/rendererEvents/xm_verify/xm_verify_win.js deleted file mode 100644 index 611fcaed..00000000 --- a/src/main/rendererEvents/xm_verify/xm_verify_win.js +++ /dev/null @@ -1,91 +0,0 @@ -const { BrowserWindow } = require('electron') -const { mainHandle, NAMES: { mainWindow: ipcMainWindowNames } } = require('../../../common/ipc') -const { getWindowSizeInfo } = require('../../utils') - -let win - -const closeWin = async() => { - if (!win) return - // await win.webContents.session.clearCache() - // if (global.modules.mainWindow) global.modules.mainWindow.removeBrowserView(win) - if (win.isDestroyed()) { - win = null - return - } - await win.webContents.session.clearStorageData() - win.destroy() - win = null -} - -mainHandle(ipcMainWindowNames.handle_xm_verify_open, (event, url) => new Promise((resolve, reject) => { - if (!global.modules.mainWindow) return reject(new Error('mainWindow is undefined')) - if (win) win.destroy() - - let isActioned = false - - const mainWindowSizeInfo = global.modules.mainWindow.getBounds() - const windowSizeInfo = getWindowSizeInfo(global.appSetting) - win = new BrowserWindow({ - parent: global.modules.mainWindow, - width: 1000, - height: 800, - resizable: false, - // transparent: true, - x: mainWindowSizeInfo.x + (windowSizeInfo.width - 1000) / 2, - y: mainWindowSizeInfo.y + (windowSizeInfo.height - 800 + 52) / 2, - minimizable: false, - maximizable: false, - // movable: false, - // frame: false, - // modal: true, - webPreferences: { - enableRemoteModule: false, - disableHtmlFullscreenWindowResize: true, - }, - }) - // win.webContents.on('did-finish-load', () => { - // if (/punish\?/.test(win.webContents.getURL())) return - // let ses = win.webContents.session - // ses.cookies.get({ name: 'x5sec' }) - // .then(async([x5sec]) => { - // isActioned = true - // await closeWin() - // if (!x5sec) return reject(new Error('get x5sec failed')) - // resolve(x5sec.value) - // }).catch(async err => { - // isActioned = true - // await closeWin() - // reject(err) - // }) - // }) - - win.webContents.session.webRequest.onCompleted({ urls: ['*://www.xiami.com/*'] }, details => { - if (/\/_____tmd_____\/slide\?/.test(details.url)) { - for (const item of details.responseHeaders['set-cookie']) { - if (!/^x5sec=/.test(item)) continue - const x5sec = /x5sec=(\w+);.+$/.exec(item) - isActioned = true - closeWin().finally(() => { - if (!x5sec) return reject(new Error('get x5sec failed')) - resolve(x5sec[1]) - }) - } - } - }) - - win.webContents.loadURL(url, { - httpReferrer: 'https://www.xiami.com/', - }) - - win.on('closed', async() => { - await closeWin() - if (isActioned) return - reject(new Error('canceled verify')) - }) - - // win.webContents.openDevTools() -})) - -mainHandle(ipcMainWindowNames.handle_xm_verify_close, async() => { - await closeWin() -}) diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 3364102a..edd3bad4 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -6,7 +6,6 @@ core-view#view core-player#player core-icons - material-xm-verify-modal(v-show="globalObj.xm.isShowVerify" :show="globalObj.xm.isShowVerify" :bg-close="false" @close="handleXMVerifyModalClose") material-version-modal(v-show="version.showModal") material-pact-modal(v-show="!setting.isAgreePact || globalObj.isShowPact") #container(v-else :class="theme") @@ -16,7 +15,6 @@ core-view#view core-player#player core-icons - material-xm-verify-modal(v-show="globalObj.xm.isShowVerify" :show="globalObj.xm.isShowVerify" :bg-close="false" @close="handleXMVerifyModalClose") material-version-modal(v-show="version.showModal") material-pact-modal(v-show="!setting.isAgreePact || globalObj.isShowPact") @@ -27,7 +25,7 @@ import { mapMutations, mapGetters, mapActions } from 'vuex' import { rendererOn, rendererSend, rendererInvoke, NAMES } from '../common/ipc' import { isLinux } from '../common/utils' import music from './utils/music' -import { throttle, openUrl, compareVer, getPlayList } from './utils' +import { throttle, openUrl, compareVer, getPlayList, parseUrlParams } from './utils' import { base as eventBaseName } from './event/names' window.ELECTRON_DISABLE_SECURITY_WARNINGS = process.env.ELECTRON_DISABLE_SECURITY_WARNINGS @@ -62,9 +60,6 @@ export default { proxy: {}, isShowPact: false, qualityList: {}, - xm: { - isShowVerify: false, - }, }, updateTimeout: null, envParams: { @@ -179,10 +174,12 @@ export default { ...mapMutations('player', { setPlayList: 'setList', }), + ...mapActions('songList', ['getListDetailAll']), init() { document.documentElement.style.fontSize = this.windowSizeActive.fontSize - rendererInvoke(NAMES.mainWindow.get_env_params).then(this.handleEnvParamsInit) + const asyncTask = [] + asyncTask.push(rendererInvoke(NAMES.mainWindow.get_env_params).then(this.handleEnvParamsInit)) document.body.addEventListener('click', this.handleBodyClick, true) rendererOn(NAMES.mainWindow.update_available, (e, info) => { @@ -246,14 +243,18 @@ export default { }, 60 * 30 * 1000) this.listenEvent() - this.initData() + asyncTask.push(this.initData()) this.globalObj.apiSource = this.setting.apiSource this.globalObj.qualityList = music.supportQuality[this.setting.apiSource] this.globalObj.proxy = Object.assign({}, this.setting.network.proxy) window.globalObj = this.globalObj // 初始化音乐sdk - music.init() + asyncTask.push(music.init()) + Promise.all(asyncTask).then(() => { + this.handleInitEnvParamSearch() + this.handleInitEnvParamPlay() + }) }, enableIgnoreMouseEvents() { if (this.isDT) return @@ -267,12 +268,14 @@ export default { }, initData() { // 初始化数据 - this.initLocalList() // 初始化播放列表 + return Promise.all([ + this.initMyList(), // 初始化播放列表 + this.initSearchHistoryList(), // 初始化搜索历史列表 + ]) // this.initDownloadList() // 初始化下载列表 - this.initSearchHistoryList() // 初始化搜索历史列表 }, - initLocalList() { - getPlayList().then(({ defaultList, loveList, userList, downloadList }) => { + initMyList() { + return getPlayList().then(({ defaultList, loveList, userList, downloadList }) => { if (!defaultList) defaultList = this.defaultList if (!loveList) loveList = this.loveList if (userList) { @@ -391,18 +394,91 @@ export default { document.body.addEventListener('mouseenter', this.dieableIgnoreMouseEvents) document.body.addEventListener('mouseleave', this.enableIgnoreMouseEvents) } + this.handleInitEnvParamSearch() + this.handleInitEnvParamPlay() + }, + // 处理启动参数 search + handleInitEnvParamSearch() { + if (this.envParams.search == null) return + this.$router.push({ + path: 'search', + query: { + text: this.envParams.search, + }, + }) + }, + // 处理启动参数 play + handleInitEnvParamPlay() { + if (this.envParams.play == null || typeof this.envParams.play != 'string') return + // -play="source=kw&link=链接、ID" + // -play="source=myList&name=名字" + // -play="source=myList&name=名字&index=位置" + const params = parseUrlParams(this.envParams.play) + if (params.type != 'songList') return + this.handlePlaySongList(params) + }, + handlePlaySongList(params) { + switch (params.source) { + case 'myList': + if (params.name != null) { + let targetList + const lists = Object.values(window.allList) + for (const list of lists) { + if (list.name === params.name) { + targetList = list + break + } + } + if (!targetList) return - if (this.envParams.search != null) { - this.$router.push({ - path: 'search', - query: { - text: this.envParams.search, - }, - }) + + this.setPlayList({ + list: { + list: targetList.list, + id: targetList.id, + }, + index: this.getListPlayIndex(targetList.list, params.index), + }) + } + break + case 'kw': + case 'kg': + case 'tx': + case 'mg': + case 'wy': + this.playSongListDetail(params.source, params.link, params.index) + break } }, - handleXMVerifyModalClose() { - music.xm.closeVerifyModal() + async playSongListDetail(source, link, playIndex) { + if (link == null) return + let list + try { + list = await this.getListDetailAll({ source, id: decodeURIComponent(link) }) + } catch (err) { + console.log(err) + } + this.setPlayList({ + list: { + list, + id: null, + }, + index: this.getListPlayIndex(list, playIndex), + }) + }, + getListPlayIndex(list, index) { + if (index == null) { + index = 1 + } else { + index = parseInt(index) + if (Number.isNaN(index)) { + index = 1 + } else { + if (index < 1) index = 1 + else if (index > list.length) index = list.length + } + } + return index - 1 }, listenEvent() { window.eventHub.$on('key_escape_down', this.handle_key_esc_down) diff --git a/src/renderer/components/material/XmVerifyModal.vue b/src/renderer/components/material/XmVerifyModal.vue deleted file mode 100644 index 6a910c4c..00000000 --- a/src/renderer/components/material/XmVerifyModal.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - diff --git a/src/renderer/utils/index.js b/src/renderer/utils/index.js index 1e642b57..772849d3 100644 --- a/src/renderer/utils/index.js +++ b/src/renderer/utils/index.js @@ -396,3 +396,14 @@ export const getPlayList = () => rendererInvoke(NAMES.mainWindow.get_playlist).c return rendererInvoke(NAMES.mainWindow.get_playlist, true) }) +// 解析URL参数为对象 +export const parseUrlParams = str => { + const params = {} + if (typeof str !== 'string') return params + const paramsArr = str.split('&') + for (const param of paramsArr) { + let [key, value] = param.split('=') + params[key] = value + } + return params +} diff --git a/src/renderer/utils/music/index.js b/src/renderer/utils/music/index.js index c9821b02..c9466f67 100644 --- a/src/renderer/utils/music/index.js +++ b/src/renderer/utils/music/index.js @@ -50,10 +50,12 @@ const sources = { export default { ...sources, init() { + const tasks = [] for (let source of sources.sources) { let sm = sources[source.id] - sm && sm.init && sm.init() + sm && sm.init && tasks.push(sm.init()) } + return Promise.all(tasks) }, supportQuality, diff --git a/src/renderer/utils/music/kw/index.js b/src/renderer/utils/music/kw/index.js index 1039305e..d8c4dc21 100644 --- a/src/renderer/utils/music/kw/index.js +++ b/src/renderer/utils/music/kw/index.js @@ -106,7 +106,7 @@ const kw = { }, init() { - getToken() + return getToken() }, } diff --git a/src/renderer/utils/music/xm/index.js b/src/renderer/utils/music/xm.js similarity index 100% rename from src/renderer/utils/music/xm/index.js rename to src/renderer/utils/music/xm.js diff --git a/src/renderer/utils/music/xm/api-test.js b/src/renderer/utils/music/xm/api-test.js deleted file mode 100644 index c9881164..00000000 --- a/src/renderer/utils/music/xm/api-test.js +++ /dev/null @@ -1,20 +0,0 @@ -import { httpFetch } from '../../request' -import { requestMsg } from '../../message' -import { headers, timeout } from '../options' - -const api_test = { - getMusicUrl(songInfo, type) { - const requestObj = httpFetch(`http://ts.tempmusic.tk/url/xm/${songInfo.songmid}/${type}`, { - method: 'get', - timeout, - headers, - family: 4, - }) - requestObj.promise = requestObj.promise.then(({ body }) => { - return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail)) - }) - return requestObj - }, -} - -export default api_test diff --git a/src/renderer/utils/music/xm/comment.js b/src/renderer/utils/music/xm/comment.js deleted file mode 100644 index d8432cbe..00000000 --- a/src/renderer/utils/music/xm/comment.js +++ /dev/null @@ -1,47 +0,0 @@ -import { xmRequest } from './util' -import { dateFormat2 } from '../../' - -export default { - _requestObj: null, - _requestObj2: null, - async getComment({ songmid }, page = 1, limit = 20) { - if (this._requestObj) this._requestObj.cancelHttp() - - const _requestObj = xmRequest('/api/comment/getCommentList', { objectId: songmid, objectType: 'song', pagingVO: { page, pageSize: limit } }) - const { body, statusCode } = await _requestObj.promise - // console.log(body) - if (statusCode != 200 || body.code !== 'SUCCESS') throw new Error('获取评论失败') - return { source: 'xm', comments: this.filterComment(body.result.data.commentList), total: body.result.data.pagingVO.count, page, limit, maxPage: Math.ceil(body.result.data.pagingVO.count / limit) || 1 } - }, - async getHotComment({ songmid }, page = 1, limit = 100) { - if (this._requestObj2) this._requestObj2.cancelHttp() - if (!songmid) throw new Error('获取失败') - const _requestObj2 = xmRequest('/api/comment/getHotCommentList', { objectId: songmid, objectType: 'song', pagingVO: { page, pageSize: limit } }) - const { body, statusCode } = await _requestObj2.promise - // console.log(body) - if (statusCode != 200 || body.code !== 'SUCCESS') throw new Error('获取热门评论失败') - return { source: 'xm', comments: this.filterComment(body.result.data.hotList) } - }, - filterComment(rawList) { - return rawList.map(item => ({ - id: item.commentId, - text: item.message.split('\n').filter(t => !!t), - time: item.gmtCreate, - timeStr: dateFormat2(item.gmtCreate), - userName: item.nickName, - avatar: item.avatar, - userId: item.userId, - likedCount: item.likes, - reply: item.replyData ? item.replyData.map(c => ({ - id: c.commentId, - text: c.message.split('\n').filter(t => !!t), - time: c.gmtCreate, - timeStr: dateFormat2(c.gmtCreate), - userName: c.nickName, - avatar: c.avatar, - userId: c.userId, - likedCount: c.likes, - })) : [], - })) - }, -} diff --git a/src/renderer/utils/music/xm/hotSearch.js b/src/renderer/utils/music/xm/hotSearch.js deleted file mode 100644 index 247fdd5c..00000000 --- a/src/renderer/utils/music/xm/hotSearch.js +++ /dev/null @@ -1,20 +0,0 @@ -// import { xmRequest } from './util' - -export default { - _requestObj: null, - async getList(retryNum = 0) { - // if (this._requestObj) this._requestObj.cancelHttp() - // if (retryNum > 2) return Promise.reject(new Error('try max num')) - - // const _requestObj = xmRequest('/api/search/getHotSearchWords') - // const { body, statusCode } = await _requestObj.promise - // // console.log(body) - // if (statusCode != 200 || body.code !== 'SUCCESS') return this.getList(++retryNum) - // // console.log(body, statusCode) - // return { source: 'xm', list: this.filterList(body.result.data.hotWords) } - return { source: 'xm', list: [] } - }, - filterList(rawList) { - return rawList.map(item => item.word) - }, -} diff --git a/src/renderer/utils/music/xm/leaderboard.js b/src/renderer/utils/music/xm/leaderboard.js deleted file mode 100644 index 5831e56b..00000000 --- a/src/renderer/utils/music/xm/leaderboard.js +++ /dev/null @@ -1,211 +0,0 @@ -import { xmRequest } from './util' -import { formatPlayTime, sizeFormate } from '../../index' -// import jshtmlencode from 'js-htmlencode' - -let boardList = [{ id: 'xm__102', name: '新歌榜', bangid: '102' }, { id: 'xm__103', name: '热歌榜', bangid: '103' }, { id: 'xm__104', name: '原创榜', bangid: '104' }, { id: 'xm__306', name: 'K歌榜', bangid: '306' }, { id: 'xm__332', name: '抖音热歌榜', bangid: '332' }, { id: 'xm__305', name: '歌单收录榜', bangid: '305' }, { id: 'xm__327', name: '趴间热歌榜', bangid: '327' }, { id: 'xm__324', name: '影视原声榜', bangid: '324' }, { id: 'xm__204', name: '美国Billboard单曲榜', bangid: '204' }, { id: 'xm__206', name: '韩国MNET音乐排行榜', bangid: '206' }, { id: 'xm__201', name: 'Hito 中文排行榜', bangid: '201' }, { id: 'xm__203', name: '英国UK单曲榜', bangid: '203' }, { id: 'xm__205', name: 'oricon公信单曲榜', bangid: '205' }, { id: 'xm__328', name: '美国iTunes榜', bangid: '328' }, { id: 'xm__329', name: 'Beatport电音榜', bangid: '329' }, { id: 'xm__330', name: '香港商业电台榜', bangid: '330' }] - -export default { - limit: 200, - list: [ - { - id: 'xmrgb', - name: '热歌榜', - bangid: '103', - }, - { - id: 'xmxgb', - name: '新歌榜', - bangid: '102', - }, - { - id: 'xmrcb', - name: '原创榜', - bangid: '104', - }, - { - id: 'xmdyb', - name: '抖音榜', - bangid: '332', - }, - { - id: 'xmkgb', - name: 'K歌榜', - bangid: '306', - }, - { - id: 'xmfxb', - name: '分享榜', - bangid: '307', - }, - { - id: 'xmrdtlb', - name: '讨论榜', - bangid: '331', - }, - { - id: 'xmgdslb', - name: '歌单榜', - bangid: '305', - }, - { - id: 'xmpjrgb', - name: '趴间榜', - bangid: '327', - }, - { - id: 'xmysysb', - name: '影视榜', - bangid: '324', - }, - ], - requestBoardsObj: null, - requestObj: null, - getBoardsData() { - if (this.requestBoardsObj) this.requestBoardsObj.cancelHttp() - this.requestBoardsObj = xmRequest('/api/billboard/getBillboards') - return this.requestBoardsObj.promise - }, - getData(id) { - if (this.requestObj) this.requestObj.cancelHttp() - this.requestObj = xmRequest('/api/billboard/getBillboardDetail', { billboardId: id }) - return this.requestObj.promise - }, - getSinger(singers) { - let arr = [] - singers.forEach(singer => { - arr.push(singer.artistName) - }) - return arr.join('、') - }, - filterData(rawList) { - // console.log(rawList) - let ids = new Set() - const list = [] - rawList.forEach(songData => { - if (!songData) return - if (ids.has(songData.songId)) return - ids.add(songData.songId) - - const types = [] - const _types = {} - let size = null - for (const item of songData.purviewRoleVOs) { - if (!item.filesize) continue - size = sizeFormate(item.filesize) - switch (item.quality) { - case 's': - types.push({ type: 'wav', size }) - _types.wav = { - size, - } - break - case 'h': - types.push({ type: '320k', size }) - _types['320k'] = { - size, - } - break - case 'l': - types.push({ type: '128k', size }) - _types['128k'] = { - size, - } - break - } - } - types.reverse() - - list.push({ - singer: this.getSinger(songData.singerVOs), - name: songData.songName, - albumName: songData.albumName, - albumId: songData.albumId, - source: 'xm', - interval: formatPlayTime(parseInt(songData.length / 1000)), - songmid: songData.songId, - img: songData.albumLogo || songData.albumLogoS, - songStringId: songData.songStringId, - lrc: null, - lrcUrl: songData.lyricInfo && songData.lyricInfo.lyricFile, - otherSource: null, - types, - _types, - typeUrl: {}, - }) - }) - - return list - }, - filterBoardsData(rawList) { - // console.log(rawList) - let list = [] - if (rawList.xiamiBillboards) { - for (const board of rawList.xiamiBillboards) { - if (board.itemType != 1) continue - list.push({ - id: 'xm__' + board.billboardId, - name: board.name, - bangid: String(board.billboardId), - }) - } - } - if (rawList.spBillboards) { - for (const board of rawList.spBillboards) { - if (board.itemType != 1) continue - list.push({ - id: 'xm__' + board.billboardId, - name: board.name, - bangid: String(board.billboardId), - }) - } - } - if (rawList.globalBillboards) { - for (const board of rawList.globalBillboards) { - if (board.itemType != 1) continue - list.push({ - id: 'xm__' + board.billboardId, - name: board.name, - bangid: String(board.billboardId), - }) - } - } - return list - }, - async getBoards(retryNum = 0) { - // if (++retryNum > 3) return Promise.reject(new Error('try max num')) - // let response - // try { - // response = await this.getBoardsData() - // } catch (error) { - // return this.getBoards(retryNum) - // } - // if (response.statusCode !== 200 || response.body.code !== 'SUCCESS') return this.getBoards(retryNum) - // const list = this.filterBoardsData(response.body.result.data) - // this.list = list - // return { - // list, - // source: 'xm', - // } - this.list = boardList - return { - list: boardList, - source: 'xm', - } - }, - getList(bangid, page, retryNum = 0) { - if (++retryNum > 3) return Promise.reject(new Error('try max num')) - return this.getData(bangid).then(({ statusCode, body }) => { - if (statusCode !== 200 || body.code !== 'SUCCESS') return this.getList(bangid, page, retryNum) - // console.log(body) - const list = this.filterData(body.result.data.billboard.songs) - - return { - total: parseInt(body.result.data.billboard.attributeMap.item_size), - list, - limit: this.limit, - page, - source: 'xm', - } - }) - }, -} diff --git a/src/renderer/utils/music/xm/lyric.js b/src/renderer/utils/music/xm/lyric.js deleted file mode 100644 index d1e85d79..00000000 --- a/src/renderer/utils/music/xm/lyric.js +++ /dev/null @@ -1,107 +0,0 @@ -import { httpGet, httpFetch } from '../../request' -import { xmRequest } from './util' - -const parseLyric = str => { - str = str.replace(/(?:<\d+>|\r)/g, '') - let tlyric = [] - let lyric = str.replace(/\[[\d:.]+\].*?\n\[x-trans\].*/g, s => { - // console.log(s) - let [lrc, tlrc] = s.split('\n') - tlrc = tlrc.replace('[x-trans]', lrc.replace(/^(\[[\d:.]+\]).*$/, '$1')) - tlyric.push(tlrc) - return lrc - }) - tlyric = tlyric.join('\n') - return { - lyric, - tlyric, - } -} - -export default { - failTime: 0, - expireTime: 60 * 1000 * 1000, - getLyricFile_1(url, retryNum = 0) { - if (retryNum > 5) return Promise.reject('歌词获取失败') - let requestObj = httpFetch(url) - requestObj.promise = requestObj.promise.then(({ body, statusCode }) => { - if (statusCode !== 200) { - let tryRequestObj = this.getLyric(url, ++retryNum) - requestObj.cancelHttp = tryRequestObj.cancelHttp.bind(tryRequestObj) - return tryRequestObj.promise - } - return url.endsWith('.xtrc') ? parseLyric(body) : { - lyric: body, - tlyric: '', - } - }) - return requestObj - }, - getLyricFile_2(url, retryNum = 0) { - if (retryNum > 5) return Promise.reject('歌词获取失败') - return new Promise((resolve, reject) => { - httpGet(url, { - headers: { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', - referer: 'https://www.xiami.com', - }, - }, function(err, resp, body) { - if (err || resp.statusCode !== 200) return this.getLyricFile(url, ++retryNum).then(resolve).catch(reject) - return resolve(url.endsWith('.xtrc') ? parseLyric(body) : { - lyric: body, - tlyric: '', - }) - }) - }) - }, - getLyricUrl_1(songInfo, retryNum = 0) { - if (retryNum > 2) return Promise.reject('歌词获取失败') - let requestObj = xmRequest('/api/lyric/getSongLyrics', { songId: songInfo.songmid }) - requestObj.promise = requestObj.promise.then(({ statusCode, body }) => { - if (statusCode !== 200) { - let tryRequestObj = this.getLyricUrl_1(songInfo, ++retryNum) - requestObj.cancelHttp = tryRequestObj.cancelHttp.bind(tryRequestObj) - return tryRequestObj.promise - } - if (body.code !== 'SUCCESS') { - this.failTime = Date.now() - let tryRequestObj = this.getLyricUrl_2(songInfo) - requestObj.cancelHttp = tryRequestObj.cancelHttp.bind(tryRequestObj) - return tryRequestObj.promise - } - if (!body.result.data.lyrics.length) return Promise.reject(new Error('未找到歌词')) - let lrc = body.result.data.lyrics.find(lyric => /\.(trc|lrc)$/.test(lyric.lyricUrl)) - return lrc - ? lrc.lyricUrl.endsWith('.trc') - ? parseLyric(lrc.content) - : { lyric: lrc.content, tlyric: '' } - : Promise.reject(new Error('未找到歌词')) - }) - return requestObj - }, - getLyricUrl_2(songInfo, retryNum = 0) { - if (retryNum > 2) return Promise.reject('歌词获取失败') - // https://github.com/listen1/listen1_chrome_extension/blob/2587e627d23a85e490628acc0b3c9b534bc8323d/js/provider/xiami.js#L149 - let requestObj = httpFetch(`https://emumo.xiami.com/song/playlist/id/${songInfo.songmid}/object_name/default/object_id/0/cat/json`, { - headers: { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', - referer: 'https://www.xiami.com', - }, - }) - requestObj.promise = requestObj.promise.then(({ statusCode, body }) => { - if (statusCode !== 200 || !body.status) { - let tryRequestObj = this.getLyricUrl_2(songInfo, ++retryNum) - requestObj.cancelHttp = tryRequestObj.cancelHttp.bind(tryRequestObj) - return tryRequestObj.promise - } - let url = body.data.trackList[0].lyric_url - if (!url) return Promise.reject(new Error('未找到歌词')) - return this.getLyricFile_2(/^http:/.test(url) ? url : ('http:' + url)) - }) - return requestObj - }, - getLyric(songInfo) { - if (songInfo.lrcUrl && /\.(xtrc|lrc)$/.test(songInfo.lrcUrl)) return this.getLyricFile_1(songInfo.lrcUrl) - return Date.now() - this.failTime > this.expireTime ? this.getLyricUrl_1(songInfo) : this.getLyricUrl_2(songInfo) - }, -} diff --git a/src/renderer/utils/music/xm/musicInfo.js b/src/renderer/utils/music/xm/musicInfo.js deleted file mode 100644 index 7ca9b1be..00000000 --- a/src/renderer/utils/music/xm/musicInfo.js +++ /dev/null @@ -1,14 +0,0 @@ -import { xmRequest } from './util' - -export default { - _requestObj: null, - async getMusicInfo({ songmid }, page = 1, limit = 20) { - if (this._requestObj) this._requestObj.cancelHttp() - - const _requestObj = xmRequest('/api/song/initialize', { songId: songmid }) - const { body, statusCode } = await _requestObj.promise - // console.log(body) - if (statusCode != 200 || body.code !== 'SUCCESS') throw new Error('获取歌曲信息失败') - return { source: 'xm', data: body.result.data.songDetail } - }, -} diff --git a/src/renderer/utils/music/xm/musicSearch.js b/src/renderer/utils/music/xm/musicSearch.js deleted file mode 100644 index 1971c190..00000000 --- a/src/renderer/utils/music/xm/musicSearch.js +++ /dev/null @@ -1,115 +0,0 @@ -// import '../../polyfill/array.find' -// import jshtmlencode from 'js-htmlencode' -import { xmRequest } from './util' -import { formatPlayTime, sizeFormate } from '../../index' -// import { debug } from '../../utils/env' -// import { formatSinger } from './util' -// "cdcb72dc3eba41cb5bc4267f09183119_xmMain_/api/list/collect_{"pagingVO":{"page":1,"pageSize":60},"dataType":"system"}" -let searchRequest -export default { - limit: 30, - total: 0, - page: 0, - allPage: 1, - musicSearch(str, page, limit) { - if (searchRequest && searchRequest.cancelHttp) searchRequest.cancelHttp() - searchRequest = xmRequest('/api/search/searchSongs', { - key: str, - pagingVO: { - page: page, - pageSize: limit, - }, - }) - return searchRequest.promise.then(({ body }) => body) - }, - getSinger(singers) { - let arr = [] - singers.forEach(singer => { - arr.push(singer.artistName) - }) - return arr.join('、') - }, - handleResult(rawData) { - // console.log(rawData) - let ids = new Set() - const list = [] - rawData.forEach(songData => { - if (!songData) return - if (ids.has(songData.songId)) return - ids.add(songData.songId) - - const types = [] - const _types = {} - let size = null - for (const item of songData.purviewRoleVOs) { - if (!item.filesize) continue - size = sizeFormate(item.filesize) - switch (item.quality) { - case 's': - types.push({ type: 'wav', size }) - _types.wav = { - size, - } - break - case 'h': - types.push({ type: '320k', size }) - _types['320k'] = { - size, - } - break - case 'l': - types.push({ type: '128k', size }) - _types['128k'] = { - size, - } - break - } - } - types.reverse() - - list.push({ - singer: this.getSinger(songData.singerVOs), - name: songData.songName, - albumName: songData.albumName, - albumId: songData.albumId, - source: 'xm', - interval: formatPlayTime(parseInt(songData.length / 1000)), - songmid: songData.songId, - img: songData.albumLogo || songData.albumLogoS, - songStringId: songData.songStringId, - lrc: null, - lrcUrl: songData.lyricInfo && songData.lyricInfo.lyricFile, - otherSource: null, - types, - _types, - typeUrl: {}, - }) - }) - return list - }, - search(str, page = 1, { limit } = {}, retryNum = 0) { - if (++retryNum > 3) return Promise.reject(new Error('try max num')) - if (limit == null) limit = this.limit - // http://newlyric.kuwo.cn/newlyric.lrc?62355680 - return this.musicSearch(str, page, limit).then(result => { - if (!result) return this.search(str, page, { limit }, retryNum) - if (result.code !== 'SUCCESS') return this.search(str, page, { limit }, retryNum) - // const songResultData = result.data || { songs: [], total: 0 } - - let list = this.handleResult(result.result.data.songs) - if (list == null) return this.search(str, page, { limit }, retryNum) - - this.total = parseInt(result.result.data.pagingVO.count) - this.page = page - this.allPage = Math.ceil(this.total / limit) - - return Promise.resolve({ - list, - allPage: this.allPage, - limit, - total: this.total, - source: 'xm', - }) - }).catch(err => err.message.includes('canceled verify') ? Promise.reject(err) : this.search(str, page, { limit }, retryNum)) - }, -} diff --git a/src/renderer/utils/music/xm/songList.js b/src/renderer/utils/music/xm/songList.js deleted file mode 100644 index 5389cff0..00000000 --- a/src/renderer/utils/music/xm/songList.js +++ /dev/null @@ -1,221 +0,0 @@ -import { xmRequest } from './util' -import { sizeFormate, formatPlayTime } from '../../index' - -export default { - _requestObj_tags: null, - _requestObj_list: null, - _requestObj_listDetail: null, - limit_list: 36, - limit_song: 100000, - successCode: 'SUCCESS', - sortList: [ - { - name: '推荐', - id: 'system', - }, - { - name: '精选', - id: 'recommend', - }, - { - name: '最热', - id: 'hot', - }, - { - name: '最新', - id: 'new', - }, - ], - regExps: { - // https://www.xiami.com/collect/1138092824?action=play - listDetailLink: /^.+\/collect\/(\d+)(?:\s\(.*|\?.*|&.*$|#.*$|$)/, - }, - tagsUrl: '/api/collect/getRecommendTags', - songListUrl: '/api/list/collect', - songListDetailUrl: '/api/collect/initialize', - getSongListData(sortId, tagId, page) { - if (tagId == null) { - return { pagingVO: { page, pageSize: this.limit_list }, dataType: sortId } - } - switch (sortId) { - case 'system': - case 'recommend': - sortId = 'hot' - } - return { pagingVO: { page, pageSize: this.limit_list }, dataType: sortId, key: tagId } - }, - - /** - * 格式化播放数量 - * @param {*} num - */ - formatPlayCount(num) { - if (num > 100000000) return parseInt(num / 10000000) / 10 + '亿' - if (num > 10000) return parseInt(num / 1000) / 10 + '万' - return num - }, - getSinger(singers) { - let arr = [] - singers.forEach(singer => { - arr.push(singer.artistName) - }) - return arr.join('、') - }, - - getListDetail(id, page, tryNum = 0) { // 获取歌曲列表内的音乐 - if (this._requestObj_listDetail) this._requestObj_listDetail.cancelHttp() - if (tryNum > 2) return Promise.reject(new Error('try max num')) - - if ((/[?&:/]/.test(id))) id = id.replace(this.regExps.listDetailLink, '$1') - - this._requestObj_listDetail = xmRequest('/api/collect/getCollectStaticUrl', { listId: id }) - return this._requestObj_listDetail.promise.then(({ body }) => { - if (body.code !== this.successCode) return this.getListDetail(id, page, ++tryNum) - this._requestObj_listDetail = xmRequest(body.result.data.data.data.url) - return this._requestObj_listDetail.promise.then(({ body }) => { - if (!body.status) return this.getListDetail(id, page, ++tryNum) - // console.log(JSON.stringify(body)) - return { - list: this.filterListDetail(body.resultObj.songs), - page, - limit: this.limit_song, - total: body.resultObj.songCount, - source: 'xm', - info: { - name: body.resultObj.collectName, - img: body.resultObj.collectLogo, - desc: body.resultObj.description, - author: body.resultObj.userName, - play_count: this.formatPlayCount(body.resultObj.playCount), - }, - } - }) - }) - }, - filterListDetail(rawList) { - // console.log(rawList) - let ids = new Set() - const list = [] - rawList.forEach(songData => { - if (!songData) return - if (ids.has(songData.songId)) return - ids.add(songData.songId) - - const types = [] - const _types = {} - let size = null - for (const item of songData.purviewRoleVOs) { - if (!item.filesize) continue - size = sizeFormate(item.filesize) - switch (item.quality) { - case 's': - types.push({ type: 'wav', size }) - _types.wav = { - size, - } - break - case 'h': - types.push({ type: '320k', size }) - _types['320k'] = { - size, - } - break - case 'l': - types.push({ type: '128k', size }) - _types['128k'] = { - size, - } - break - } - } - types.reverse() - - list.push({ - singer: this.getSinger(songData.singerVOs), - name: songData.songName, - albumName: songData.albumName, - albumId: songData.albumId, - source: 'xm', - interval: formatPlayTime(parseInt(songData.length / 1000)), - songmid: songData.songId, - songStringId: songData.songStringId, - img: songData.albumLogo || songData.albumLogoS, - lrc: null, - lrcUrl: songData.lyricInfo && songData.lyricInfo.lyricFile, - otherSource: null, - types, - _types, - typeUrl: {}, - }) - }) - return list - }, - - // 获取列表数据 - getList(sortId, tagId, page, tryNum = 0) { - if (this._requestObj_list) this._requestObj_list.cancelHttp() - if (tryNum > 2) return Promise.reject(new Error('try max num')) - this._requestObj_list = xmRequest(this.songListUrl, this.getSongListData(sortId, tagId, page)) - return this._requestObj_list.promise.then(({ body }) => { - if (body.code !== this.successCode) return this.getList(sortId, tagId, page, ++tryNum) - return { - list: this.filterList(body.result.data.collects), - total: body.result.data.pagingVO.count, - page, - limit: body.result.data.pagingVO.pageSize, - source: 'xm', - } - }) - }, - filterList(rawData) { - return rawData.map(item => ({ - play_count: this.formatPlayCount(item.playCount), - id: item.listId, - author: item.userName, - name: item.collectName, - time: null, - img: item.collectLogo, - grade: null, - desc: null, - source: 'xm', - })) - }, - - // 获取标签 - getTag(tryNum = 0) { - if (this._requestObj_tags) this._requestObj_tags.cancelHttp() - if (tryNum > 2) return Promise.reject(new Error('try max num')) - this._requestObj_tags = xmRequest(this.tagsUrl, { recommend: 1 }) - return this._requestObj_tags.promise.then(({ body }) => { - if (body.code !== this.successCode) return this.getTag(++tryNum) - return this.filterTagInfo(body.result.data.recommendTags) - }) - }, - filterTagInfo(rawList) { - return { - hotTag: rawList[0].items.map(item => ({ - id: item.name, - name: item.name, - source: 'xm', - })), - tags: rawList.slice(1).map(item => ({ - name: item.title, - list: item.items.map(tag => ({ - parent_id: item.title, - parent_name: item.title, - id: tag.name, - name: tag.name, - source: 'xm', - })), - })), - source: 'xm', - } - }, - getTags() { - return this.getTag() - }, -} - -// getList -// getTags -// getListDetail diff --git a/src/renderer/utils/music/xm/util.js b/src/renderer/utils/music/xm/util.js deleted file mode 100644 index e02aa2c3..00000000 --- a/src/renderer/utils/music/xm/util.js +++ /dev/null @@ -1,122 +0,0 @@ -import { httpGet, httpFetch } from '../../request' -import { toMD5 } from '../../index' -// import crateIsg from './isg' -import { rendererInvoke, NAMES } from '../../../../common/ipc' - -if (!window.xm_token) { - let data = window.localStorage.getItem('xm_token') - window.xm_token = data ? JSON.parse(data) : { - cookies: {}, - cookie: null, - token: null, - isGetingToken: false, - } - window.xm_token.isGetingToken = false -} - -export const formatSinger = rawData => rawData.replace(/&/g, '、') - -const matchToken = headers => { - let cookies = {} - let token - for (const item of headers['set-cookie']) { - const [key, value] = item.substring(0, item.indexOf(';')).split('=') - cookies[key] = value - if (key == 'xm_sg_tk') token = value.substring(0, value.indexOf('_')) - } - // console.log(cookies) - return { token, cookies } -} - -const wait = time => new Promise(resolve => setTimeout(() => resolve(), time)) - -const createToken = (token, path, params) => toMD5(`${token}_xmMain_${path}_${params}`) - -const handleSaveToken = ({ token, cookies }) => { - Object.assign(window.xm_token.cookies, cookies) - // window.xm_token.cookies.isg = crateIsg() - window.xm_token.cookie = Object.keys(window.xm_token.cookies).map(k => `${k}=${window.xm_token.cookies[k]};`).join(' ') - if (token) window.xm_token.token = token - - window.localStorage.setItem('xm_token', JSON.stringify(window.xm_token)) -} - -export const getToken = (path, params) => new Promise((resolve, reject) => { - if (window.xm_token.isGetingToken) return wait(1000).then(() => getToken(path, params).then(data => resolve(data))) - if (window.xm_token.token) return resolve({ token: createToken(window.xm_token.token, path, params), cookie: window.xm_token.cookie }) - window.xm_token.isGetingToken = true - httpGet('https://www.xiami.com/', (err, resp) => { - window.xm_token.isGetingToken = false - if (err) return reject(err) - if (resp.statusCode != 200) return reject(new Error('获取失败')) - - handleSaveToken(matchToken(resp.headers)) - - resolve({ token: createToken(window.xm_token.token, path, params), cookie: window.xm_token.cookie }) - }) -}) - -const baseUrl = 'https://www.xiami.com' -export const xmRequest = (path, params = '') => { - let query = params - if (params != '') { - params = JSON.stringify(params) - query = '&_q=' + encodeURIComponent(params) - } - let requestObj = { - isInited: false, - isCancelled: false, - cancelHttp() { - if (!this.isInited) this.isCancelled = true - this.requestObj && this.requestObj.cancelHttp() - }, - } - - requestObj.promise = getToken(path, params).then(data => { - // console.log(data) - if (requestObj.isCancelled) return Promise.reject('取消请求') - let url = path - if (!/^http/.test(path)) url = baseUrl + path - let s = `_s=${data.token}${query}` - url += (url.includes('?') ? '&' : '?') + s - requestObj.requestObj = httpFetch(url, { - headers: { - Referer: 'https://www.xiami.com/', - 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1', - cookie: data.cookie, - }, - }) - return requestObj.requestObj.promise.then(resp => { - // console.log(resp.body) - if (resp.statusCode != 200) { - // console.log(resp.headers) - window.xm_token.token = null - return Promise.reject(new Error('获取失败')) - } - if (resp.body.code !== 'SUCCESS' && resp.body.rgv587_flag == 'sm') { - window.globalObj.xm.isShowVerify = true - return wait(300).then(() => { - return rendererInvoke(NAMES.mainWindow.handle_xm_verify_open, /^https:/.test(resp.body.url) ? resp.body.url : 'https:' + resp.body.url).then(x5sec => { - handleSaveToken({ cookies: { x5sec } }) - // console.log(x5sec) - window.globalObj.xm.isShowVerify = false - return Promise.reject(new Error('获取成功')) - }).catch(err => { - window.globalObj.xm.isShowVerify = false - return Promise.reject(err) - }) - }) - } - if (resp.headers['set-cookie']) handleSaveToken(matchToken(resp.headers)) - - return Promise.resolve(resp) - }) - }) - return requestObj -} - -export const closeVerifyModal = async() => { - if (!window.globalObj.xm.isShowVerify) return - await rendererInvoke(NAMES.mainWindow.handle_xm_verify_close) - window.globalObj.xm.isShowVerify = false -} From 9f72831e4ab6e22eae723ce91444ec9b4b930270 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Tue, 23 Feb 2021 19:51:01 +0800 Subject: [PATCH 22/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 2421 ++++++++++++++++++++++++--------------------- package.json | 18 +- 2 files changed, 1319 insertions(+), 1120 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6263f319..447fcf9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "lx-music-desktop", - "version": "1.7.0", + "version": "1.7.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -20,141 +20,142 @@ } }, "@babel/compat-data": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.7.tgz?cache=0&sync_timestamp=1605904555025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.7.tgz", - "integrity": "sha1-kym0eCp9a71+71fhGt35HuPvHkE=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.13.0.tgz?cache=0&sync_timestamp=1614034223050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.13.0.tgz", + "integrity": "sha1-eInrfuZRjir6XTErFf1/0f6fN0Q=", "dev": true }, "@babel/core": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.10.tgz", - "integrity": "sha1-t5ouG59w7T2Eu/ttjE74JfYGvM0=", + "version": "7.13.1", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.13.1.tgz?cache=0&sync_timestamp=1614047661695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.13.1.tgz", + "integrity": "sha1-fd0CcXbevkDxO7iLrAwhIYxbHs8=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.0", + "@babel/parser": "^7.13.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", + "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "lodash": "^4.17.19", - "semver": "^5.4.1", + "semver": "7.0.0", "source-map": "^0.5.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz?cache=0&sync_timestamp=1593522948158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", - "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.10.tgz?cache=0&sync_timestamp=1607569383543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.10.tgz", - "integrity": "sha1-KxiPwyn7jk92IYFwO+/8D+bfNGA=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.0.tgz?cache=0&sync_timestamp=1614034209588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.13.0.tgz", + "integrity": "sha1-vQDUOUyiLyIDkMVqC1uFVo7B7Aw=", "dev": true, "requires": { - "@babel/types": "^7.12.10", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593522977138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz", - "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", - "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha1-+KSRJErPamdhWKxCBykRuoOtCZ8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", - "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", - "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.10.tgz?cache=0&sync_timestamp=1607569373091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.10.tgz", - "integrity": "sha1-LR9AQei/QuoJnlstxI1qWUwAAXo=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.0.tgz?cache=0&sync_timestamp=1614035095258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.13.0.tgz", + "integrity": "sha1-bZV1JHX4bufe0GU23jCaZfyJZsw=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.10", - "@babel/types": "^7.12.10", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", - "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -171,9 +172,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1606852064928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", "dev": true } } @@ -191,12 +192,12 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.12.10.tgz?cache=0&sync_timestamp=1607583995267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha1-VKubAA5gqTZEzhez830xOq8dEV0=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.12.13.tgz?cache=0&sync_timestamp=1612314684390&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha1-D1jobfxLs7H819uAZXDhd9Q5tqs=", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -206,9 +207,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -219,13 +220,13 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz?cache=0&sync_timestamp=1593522960718&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz?cache=0&sync_timestamp=1612314819975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha1-a8IDYciLCnTQUTemXKyNPL9vYfw=", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -235,9 +236,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -248,40 +249,40 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.5.tgz?cache=0&sync_timestamp=1604441105017&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.12.5.tgz", - "integrity": "sha1-y0cMdhmNtqJOnbyJhydWMeXSmDE=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.13.0.tgz?cache=0&sync_timestamp=1614034209053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.13.0.tgz", + "integrity": "sha1-yc8puCp2/WN/D6o1VExKzmChVaE=", "dev": true, "requires": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", + "@babel/compat-data": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", - "semver": "^5.5.0" + "semver": "7.0.0" }, "dependencies": { "browserslist": { - "version": "4.16.0", - "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.0.tgz?cache=0&sync_timestamp=1607665751821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.0.tgz", - "integrity": "sha1-QQJ3YnUAvjyyihv+A3WG++35SIs=", + "version": "4.16.3", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.3.tgz?cache=0&sync_timestamp=1612124071745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.3.tgz", + "integrity": "sha1-NAqkaUDX24eHSFZ8XeokpI3fNxc=", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001165", + "caniuse-lite": "^1.0.30001181", "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.621", + "electron-to-chromium": "^1.3.649", "escalade": "^3.1.1", - "node-releases": "^1.1.67" + "node-releases": "^1.1.70" } }, "caniuse-lite": { - "version": "1.0.30001170", - "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001170.tgz?cache=0&sync_timestamp=1608444159124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001170.tgz", - "integrity": "sha1-AIi/7MahRpSWnjkcwp1+tjYspqc=", + "version": "1.0.30001191", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001191.tgz?cache=0&sync_timestamp=1613979294700&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001191.tgz", + "integrity": "sha1-ustDK2cB9pDIxffGgBZrmp8IQ9k=", "dev": true }, "electron-to-chromium": { - "version": "1.3.633", - "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.633.tgz?cache=0&sync_timestamp=1608748384027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.633.tgz", - "integrity": "sha1-Ft1a7J3gOJTo0UodtM2oo2m5t/4=", + "version": "1.3.672", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.672.tgz", + "integrity": "sha1-Om4zUBbatLxYTVKSrcT5j1RUH2o=", "dev": true }, "escalade": { @@ -291,68 +292,68 @@ "dev": true }, "node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.67.tgz?cache=0&sync_timestamp=1605581385142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.67.tgz", - "integrity": "sha1-KOv8zNC6pqrY6NTY/ky8Sa4jnBI=", + "version": "1.1.70", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.70.tgz?cache=0&sync_timestamp=1611010668335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.70.tgz", + "integrity": "sha1-ZuDtAnOqZWZtf+eP6+djSHVCagg=", "dev": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1606852064928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", "dev": true } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602799938240&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha1-PEWZj0Me3UqSFMXx060USKYTf24=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.13.0.tgz?cache=0&sync_timestamp=1614035098067&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.13.0.tgz", + "integrity": "sha1-KNBK2c+9HtHYuYjJ6nuUUmM2WEY=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz?cache=0&sync_timestamp=1608076996164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.11.tgz?cache=0&sync_timestamp=1608076995996&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.12.11.tgz", - "integrity": "sha1-H9dziu5dz1PD7P8k8dqcUR7Ee0I=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", - "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha1-G0zEJEWGQ8R9NwIiI9oz126kYDo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { @@ -362,37 +363,37 @@ "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.11.tgz?cache=0&sync_timestamp=1608076996366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.11.tgz", - "integrity": "sha1-nONZW810vFxGaQXobFNbiyUBHnk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", - "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -414,53 +415,84 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.7.tgz?cache=0&sync_timestamp=1605904561550&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha1-IIQXLpVEP6CgkhS6G7Mo+a6hJ48=", + "version": "7.12.17", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha1-oqyH6eMZJprGVbjUQV6U041mPLc=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-annotate-as-pure": "^7.12.13", "regexpu-core": "^4.7.1" } }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz", - "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=", + "@babel/helper-define-polyfill-provider": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.1.0.tgz", + "integrity": "sha1-qeihYbtZSmomupP2jv1HXJNaFyc=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/traverse": "^7.11.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz?cache=0&sync_timestamp=1608076996164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.0.tgz?cache=0&sync_timestamp=1614034209588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.13.0.tgz", + "integrity": "sha1-vQDUOUyiLyIDkMVqC1uFVo7B7Aw=", + "dev": true, + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.11.tgz?cache=0&sync_timestamp=1608076995996&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.12.11.tgz", - "integrity": "sha1-H9dziu5dz1PD7P8k8dqcUR7Ee0I=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", - "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", + "dev": true + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { @@ -470,37 +502,54 @@ "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.11.tgz?cache=0&sync_timestamp=1608076996366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.11.tgz", - "integrity": "sha1-nONZW810vFxGaQXobFNbiyUBHnk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", - "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.0.tgz?cache=0&sync_timestamp=1614035095258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.13.0.tgz", + "integrity": "sha1-bZV1JHX4bufe0GU23jCaZfyJZsw=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -522,12 +571,12 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.12.1.tgz?cache=0&sync_timestamp=1602801819900&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha1-gAakZmlcSthqKl8vsVtfLDGtVjM=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.13.0.tgz?cache=0&sync_timestamp=1614034233759&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha1-F7XFn/Rz2flW9A71cM86dsoSZX8=", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -537,9 +586,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -570,12 +619,146 @@ } }, "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz?cache=0&sync_timestamp=1593521294715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz", - "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.13.0.tgz?cache=0&sync_timestamp=1614034233154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.13.0.tgz", + "integrity": "sha1-XViC6FW1xe2pHgytwmxueiyFk9g=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.0.tgz?cache=0&sync_timestamp=1614034209588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.13.0.tgz", + "integrity": "sha1-vQDUOUyiLyIDkMVqC1uFVo7B7Aw=", + "dev": true, + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.0.tgz?cache=0&sync_timestamp=1614035095258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.13.0.tgz", + "integrity": "sha1-bZV1JHX4bufe0GU23jCaZfyJZsw=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.13.0.tgz?cache=0&sync_timestamp=1614034230629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha1-aqS7Z44PjCL1jNt5RR0wSURhsJE=", + "dev": true, + "requires": { + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -585,9 +768,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -597,56 +780,28 @@ } } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.12.1.tgz", - "integrity": "sha1-+6Dy/P8/ugDm7LZku15uJuLWFlw=", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", - "dev": true - }, - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, "@babel/helper-module-imports": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.1.tgz?cache=0&sync_timestamp=1602799917569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.1.tgz", - "integrity": "sha1-FkTAFZGhWi8ITdbQktlDDrHRIWw=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.13.tgz?cache=0&sync_timestamp=1612314630289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.13.tgz", + "integrity": "sha1-7GfkQE9BdQRj5FXMMgP2oy6T/LA=", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -654,129 +809,129 @@ } }, "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.12.1.tgz?cache=0&sync_timestamp=1602799922305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.12.1.tgz", - "integrity": "sha1-eVT+xx9bMsSOSzA7Q3w0RT/XJHw=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.13.0.tgz?cache=0&sync_timestamp=1614035098405&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.13.0.tgz", + "integrity": "sha1-QutL2O6mi6tGdRISw1e/7YtA9vE=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "lodash": "^4.17.19" }, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz?cache=0&sync_timestamp=1593522948158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", - "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.1.tgz?cache=0&sync_timestamp=1602799917077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.1.tgz", - "integrity": "sha1-DXC+Mr2qA9fFHIWX3aduDfHxVGg=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.0.tgz?cache=0&sync_timestamp=1614034209588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.13.0.tgz", + "integrity": "sha1-vQDUOUyiLyIDkMVqC1uFVo7B7Aw=", "dev": true, "requires": { - "@babel/types": "^7.12.1", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593522977138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz", - "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha1-+KSRJErPamdhWKxCBykRuoOtCZ8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.1.tgz?cache=0&sync_timestamp=1602801751997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.1.tgz", - "integrity": "sha1-lBOV4MXMhtXT51yqCV05JFJvDB4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.0.tgz?cache=0&sync_timestamp=1614035095258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.13.0.tgz", + "integrity": "sha1-bZV1JHX4bufe0GU23jCaZfyJZsw=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -795,27 +950,27 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz?cache=0&sync_timestamp=1593521296446&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha1-UNyWQT1ZT5lad5BZBbBYk813lnM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.12.13.tgz?cache=0&sync_timestamp=1612314687212&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha1-XALRcbTIYVsecWP4iMHIHDCiquo=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -829,14 +984,14 @@ "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha1-jE27+RYxT2BH3AXmoiFwdCODR/0=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.13.0.tgz?cache=0&sync_timestamp=1614035099023&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha1-N2p2DZ97SyB3qd0Fqpw5J8rbIgk=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/helper-validator-identifier": { @@ -846,9 +1001,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -859,124 +1014,124 @@ } }, "@babel/helper-replace-supers": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.12.1.tgz?cache=0&sync_timestamp=1602799937610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.12.1.tgz", - "integrity": "sha1-8VycyJdDkoGJHhHVzhJWKsDPP6k=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.13.0.tgz?cache=0&sync_timestamp=1614035096522&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.13.0.tgz", + "integrity": "sha1-YDS3tRlDCUy0FieEjLIZywK+HSQ=", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1" + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz?cache=0&sync_timestamp=1593522948158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", - "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.1.tgz?cache=0&sync_timestamp=1602799917077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.1.tgz", - "integrity": "sha1-DXC+Mr2qA9fFHIWX3aduDfHxVGg=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.0.tgz?cache=0&sync_timestamp=1614034209588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.13.0.tgz", + "integrity": "sha1-vQDUOUyiLyIDkMVqC1uFVo7B7Aw=", "dev": true, "requires": { - "@babel/types": "^7.12.1", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593522977138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz", - "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521294451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha1-+KSRJErPamdhWKxCBykRuoOtCZ8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", - "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", - "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.1.tgz?cache=0&sync_timestamp=1602801751997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.1.tgz", - "integrity": "sha1-lBOV4MXMhtXT51yqCV05JFJvDB4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.0.tgz?cache=0&sync_timestamp=1614035095258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.13.0.tgz", + "integrity": "sha1-bZV1JHX4bufe0GU23jCaZfyJZsw=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -995,27 +1150,27 @@ } }, "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.1.tgz?cache=0&sync_timestamp=1602799955395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.12.1.tgz", - "integrity": "sha1-MkJ+WqYVR9OOsebq9f0UJv2tkTY=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.13.tgz?cache=0&sync_timestamp=1612314687477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.12.13.tgz", + "integrity": "sha1-hHi8xcrPaqFnKyUcHS3eXM1hpsQ=", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.12.13" }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", "dev": true }, "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", - "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -1038,9 +1193,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1066,70 +1221,70 @@ "dev": true }, "@babel/helper-validator-option": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.11.tgz?cache=0&sync_timestamp=1608076995499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.12.11.tgz", - "integrity": "sha1-1my4t6Pn/kxpYrMgIKEx7PCEf08=", + "version": "7.12.17", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.17.tgz", + "integrity": "sha1-0fvwEuGnm37rv9xtJwuq+NnrmDE=", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.12.3.tgz?cache=0&sync_timestamp=1602881330831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.12.3.tgz", - "integrity": "sha1-MzIzn8TR+78cJ9eVjCfTRwjpkNk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.13.0.tgz?cache=0&sync_timestamp=1614034233760&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.13.0.tgz", + "integrity": "sha1-vbXGb9qFJuwjWriUrVOhI1x5/MQ=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz?cache=0&sync_timestamp=1608076996164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.11.tgz?cache=0&sync_timestamp=1608076904393&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.11.tgz", - "integrity": "sha1-mKffe4w1jJo3qweiQFaFMBaro68=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.0.tgz?cache=0&sync_timestamp=1614034209588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.13.0.tgz", + "integrity": "sha1-vQDUOUyiLyIDkMVqC1uFVo7B7Aw=", "dev": true, "requires": { - "@babel/types": "^7.12.11", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.11.tgz?cache=0&sync_timestamp=1608076995996&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.12.11.tgz", - "integrity": "sha1-H9dziu5dz1PD7P8k8dqcUR7Ee0I=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", - "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha1-G0zEJEWGQ8R9NwIiI9oz126kYDo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { @@ -1139,54 +1294,54 @@ "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.11.tgz?cache=0&sync_timestamp=1608076996366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.11.tgz", - "integrity": "sha1-nONZW810vFxGaQXobFNbiyUBHnk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", - "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.12.tgz?cache=0&sync_timestamp=1608730525021&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.12.tgz", - "integrity": "sha1-0M2HiScE7djaAC1nS8gRzmR0M3Y=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.0.tgz?cache=0&sync_timestamp=1614035095258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.13.0.tgz", + "integrity": "sha1-bZV1JHX4bufe0GU23jCaZfyJZsw=", "dev": true, "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1208,123 +1363,123 @@ } }, "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.5.tgz", - "integrity": "sha1-Ghukp2jZtYMQ7aUWxEmRP+ZHEW4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.13.0.tgz?cache=0&sync_timestamp=1614035096837&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.13.0.tgz", + "integrity": "sha1-dkeuVzd7TwQIv0+KevAcQuQbrcA=", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz?cache=0&sync_timestamp=1593522948158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", - "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/generator": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.10.tgz?cache=0&sync_timestamp=1607569383543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.10.tgz", - "integrity": "sha1-KxiPwyn7jk92IYFwO+/8D+bfNGA=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.0.tgz?cache=0&sync_timestamp=1614034209588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.13.0.tgz", + "integrity": "sha1-vQDUOUyiLyIDkMVqC1uFVo7B7Aw=", "dev": true, "requires": { - "@babel/types": "^7.12.10", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593522977138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz", - "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", - "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha1-+KSRJErPamdhWKxCBykRuoOtCZ8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.10.tgz?cache=0&sync_timestamp=1607569377971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.10.tgz", - "integrity": "sha1-gkYA1Z6WrqJqWir1qdgSrwXDroE=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", - "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.10.tgz?cache=0&sync_timestamp=1607569373091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.10.tgz", - "integrity": "sha1-LR9AQei/QuoJnlstxI1qWUwAAXo=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.0.tgz?cache=0&sync_timestamp=1614035095258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.13.0.tgz", + "integrity": "sha1-bZV1JHX4bufe0GU23jCaZfyJZsw=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.10", - "@babel/types": "^7.12.10", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", - "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -1373,238 +1528,238 @@ "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.12.12.tgz?cache=0&sync_timestamp=1608730476710&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.12.12.tgz", - "integrity": "sha1-BLjyT9RTIAirTnn3iEaP1ahHZWY=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.13.0.tgz?cache=0&sync_timestamp=1614035099761&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.13.0.tgz", + "integrity": "sha1-QvSkkiyXPOtwv9Rwja9VYB/iVDQ=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", "@babel/plugin-syntax-async-generators": "^7.8.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801742700&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.13.0.tgz?cache=0&sync_timestamp=1614035098704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha1-FGN2AAuU79AB5XpAqIpSWvqrnzc=", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.12.1.tgz?cache=0&sync_timestamp=1602801779067&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha1-Q+tcKjSH7NmMXI6otf22midJstw=", + "version": "7.12.17", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.12.17.tgz", + "integrity": "sha1-4OvY22Wsw36sUY+he+rSF04iRRI=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.1.tgz?cache=0&sync_timestamp=1602801775633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha1-i5uPN2stiPXdd05NJKXMLjZ5ttQ=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha1-OTvkekrNA/oq9uPN6bBuM94bRG0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.12.1.tgz?cache=0&sync_timestamp=1602801778453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha1-1FQjtRdxTu3VYhqd/cA/qfTrJBw=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.12.13.tgz?cache=0&sync_timestamp=1612314816754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.12.13.tgz", + "integrity": "sha1-zteIii25Kj1SCi4160If23/Mm10=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-json-strings": "^7.8.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.1.tgz?cache=0&sync_timestamp=1602801777850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha1-8sSQ024bPJZZJBA0pdLNUCY6J1E=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.13.tgz", + "integrity": "sha1-V1tdmgjYKZ7rTbZDDabhblzxQ1A=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz?cache=0&sync_timestamp=1602801777104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.13.0.tgz", + "integrity": "sha1-Gpb98sQxCc/lVoUTxTeQFaI/U4A=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.7.tgz?cache=0&sync_timestamp=1605904557549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.7.tgz", - "integrity": "sha1-i/JT3oE5CZ/qGTspfSOp1AbvBWs=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.13.tgz?cache=0&sync_timestamp=1612314835872&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha1-vZ2jGI54e1EgtPnUZagmHOZ+0ds=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.12.1.tgz?cache=0&sync_timestamp=1602799956368&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha1-3vm9A86g+bcig9rA7CLSicdpEGk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.13.0.tgz", + "integrity": "sha1-jxmtJHu5a9WtLUEH5u3f4KeJk3s=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" + "@babel/plugin-transform-parameters": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha1-zMJCGvZNOq5QtVinHO3pKaWrKUI=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.12.13.tgz?cache=0&sync_timestamp=1612314816858&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.12.13.tgz", + "integrity": "sha1-RkBSCv5XcorxS00VdLqETyY7yuU=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.7.tgz?cache=0&sync_timestamp=1605904558173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.12.7.tgz", - "integrity": "sha1-4C8OobXcWdQB7Bb7gkZ59oPTMDw=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.13.0.tgz", + "integrity": "sha1-dbQc4NiD0Z6P5jX8P4Rr47FmT00=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", "@babel/plugin-syntax-optional-chaining": "^7.8.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.12.1.tgz?cache=0&sync_timestamp=1602801864793&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha1-hoFPbnohN0yYDBDTi0ST5wP0o4k=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.13.0.tgz?cache=0&sync_timestamp=1614035100398&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha1-BL1MbUD25rv6L1fi2AlLrZAO94c=", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha1-Khg5WNQXdluerjNPR3WOXWqC4HI=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha1-vr3lEzm+gpwXqqrO0YZB3rYrObo=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } @@ -1619,18 +1774,18 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801779713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha1-vLKXxTZueb663vUJVJzZOwTxmXg=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } @@ -1672,9 +1827,9 @@ }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } @@ -1698,9 +1853,9 @@ }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } @@ -1733,150 +1888,149 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha1-3WwLNXrBuxQtmFN0UKMZYl0T0qA=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha1-xfD6biSfW3OXJ/kjVAz3qAYTAXg=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha1-gIP/yGrI53f74ktZZ8SyUh88srM=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.13.0.tgz?cache=0&sync_timestamp=1614034212513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha1-EKWb661S1jegJ6+mkujVzv9ePa4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.12.1.tgz?cache=0&sync_timestamp=1602799957601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha1-OEmknMKiLpdDy9a1KSbTAzcimvE=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha1-jhEr9ncbgr8el05eJoBsXJmqUW8=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.1.tgz?cache=0&sync_timestamp=1602801921176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha1-8qGjZb3itxEuCm3tkGf918B5Bdk=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.13.tgz?cache=0&sync_timestamp=1612314818063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha1-qb8YNvKjm062zwmWdzneKepL9MQ=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-block-scoping": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.12.tgz?cache=0&sync_timestamp=1608730517320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.12.tgz", - "integrity": "sha1-2TpWehUsIq6jsZKbsRjR0KF1zco=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha1-825VB20G9B39eFV+oDnBtYFkLmE=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.12.1.tgz?cache=0&sync_timestamp=1602801866220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.12.1.tgz", - "integrity": "sha1-ZeZQ/K3dPYjdzmfA+DSj1DajLbY=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.13.0.tgz?cache=0&sync_timestamp=1614035097764&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.13.0.tgz", + "integrity": "sha1-AmUVUHXEKRi/TTpAUxNBdq2bUzs=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", "globals": "^11.1.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz?cache=0&sync_timestamp=1608076996164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.11.tgz?cache=0&sync_timestamp=1608076995996&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.12.11.tgz", - "integrity": "sha1-H9dziu5dz1PD7P8k8dqcUR7Ee0I=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", - "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha1-G0zEJEWGQ8R9NwIiI9oz126kYDo=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz", + "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { @@ -1886,37 +2040,37 @@ "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.11.tgz?cache=0&sync_timestamp=1608076996366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.11.tgz", - "integrity": "sha1-nONZW810vFxGaQXobFNbiyUBHnk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", - "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1938,152 +2092,152 @@ } }, "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801922882&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha1-1oz2ybf4OKikFEutvpdUHqCQSFI=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.13.0.tgz?cache=0&sync_timestamp=1614034212505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha1-hFxui5u1U3ax+guS7wvcjqBmRO0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.12.1.tgz?cache=0&sync_timestamp=1602801919435&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha1-uaVw/g0KjUYBFkE8tPl+jgiy+Ec=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.13.0.tgz?cache=0&sync_timestamp=1614034212503&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha1-xdzicAFNTh67HYBhFmlMErcCiWM=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha1-odFsFIYoF7ZAnApnjW+Tc8qc2XU=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha1-PxYBzCmQW/y2f1ORDxl66v67Ja0=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha1-dFZhuropWsBuaGgieXpp+6osoig=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.13.tgz?cache=0&sync_timestamp=1612314817333&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha1-bwa4eouAP9ko5UuBwljwoAM5BN4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha1-sPLtNWuhvhQo7K8Sj/iiTwKDCuA=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha1-TVI5C5onPmUeSrpq7knvQOgM0KE=", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.12.1.tgz", - "integrity": "sha1-B2QPKIZ+0W+VEcmciIKR9WCSHPo=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.13.0.tgz?cache=0&sync_timestamp=1614034212987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.13.0.tgz", + "integrity": "sha1-x5n4gagJGsJrVIZ6hFw+l9JpYGI=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.12.1.tgz", - "integrity": "sha1-LsdiWMcP4IxtfaFUADpIBiDrpmc=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha1-uwJEUvmq7YYdN0yOeiQlLOOlAFE=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz?cache=0&sync_timestamp=1608076996164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz", + "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.11.tgz?cache=0&sync_timestamp=1608076995996&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.12.11.tgz", - "integrity": "sha1-H9dziu5dz1PD7P8k8dqcUR7Ee0I=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz", + "integrity": "sha1-k61lbbPDwiMlWf17LD29y+DrN3o=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584580801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", - "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314652298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz", + "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true }, "@babel/helper-validator-identifier": { @@ -2093,37 +2247,37 @@ "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.11.tgz?cache=0&sync_timestamp=1608076996366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.11.tgz", - "integrity": "sha1-nONZW810vFxGaQXobFNbiyUBHnk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.0.tgz?cache=0&sync_timestamp=1614034207866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.0.tgz", + "integrity": "sha1-Sbm27iE+VjT6gDYdrhOe/++JP3g=", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605904556456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", - "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz", + "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -2145,95 +2299,95 @@ } }, "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.12.1.tgz", - "integrity": "sha1-1zuAOiazcBfd+dO7j03Fi/uAb1c=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.13.tgz?cache=0&sync_timestamp=1612314818038&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.12.13.tgz", + "integrity": "sha1-LKRbr+SoIBl88xV5Sk0mVg/kvbk=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha1-SWA4YC2vFRSmTUPY4Xy7J1Xgw60=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.13.tgz?cache=0&sync_timestamp=1612314834575&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha1-X/pmzVm54ZExTJ8fgDuTjowIHkA=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.12.1.tgz?cache=0&sync_timestamp=1602801866519&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha1-MVQwCwJhhWZu67DA7X+EFf789vk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.13.0.tgz?cache=0&sync_timestamp=1614035101900&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha1-GfUR1g49h1PMWm1Od106UYSGbMM=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.12.1.tgz?cache=0&sync_timestamp=1602801780277&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha1-+kAxJFQmNseGz5tGCg/7tIqG5kg=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.13.0.tgz?cache=0&sync_timestamp=1614035100975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.13.0.tgz", + "integrity": "sha1-J2kyaTog0SyXdgk/3JnA2ZleNMY=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.1.tgz?cache=0&sync_timestamp=1602799960092&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha1-Zj/qYg1ZPJPyFKRkzTmb9txoMIY=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.13.tgz?cache=0&sync_timestamp=1612314800325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.13.tgz", + "integrity": "sha1-NRk385LH8HST/HmyEYIB1QQEo8U=", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-hoist-variables": "^7.12.13", + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true }, "@babel/helper-validator-identifier": { @@ -2245,295 +2399,272 @@ } }, "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.12.1.tgz?cache=0&sync_timestamp=1602801867203&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha1-61ohjWscaPPWIXuPosyC/sZUeQI=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha1-ij2WqX0ZlwW5/QIVgAgq+BwG5ws=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha1-tAf1yWvg2fX4hGdJf6grMKw+h1M=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha1-IhNyWl9bu+NktQw7pZmMlZnFydk=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" + "@babel/helper-create-regexp-features-plugin": "^7.12.13" } }, "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.12.1.tgz", - "integrity": "sha1-gAc/Au4bstNlw0FkkOCFyVdZ3sA=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.13.tgz?cache=0&sync_timestamp=1612314816557&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.12.13.tgz", + "integrity": "sha1-4i2MOvJLFQ3VKMvW5oXnmb8cNRw=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.1.tgz?cache=0&sync_timestamp=1602799958437&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.1.tgz", - "integrity": "sha1-TqCGlrjS5lhB0MdwZIKwSL7RBm4=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.13.tgz?cache=0&sync_timestamp=1612314795746&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.13.tgz", + "integrity": "sha1-tEFqLWO4974xTz00m9VanBtRcfc=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.12.1.tgz", - "integrity": "sha1-0uljsDh3FlDJIu/1k3mclthTJV0=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.13.0.tgz?cache=0&sync_timestamp=1614034217661&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.13.0.tgz", + "integrity": "sha1-j6dgPjCX+cC3yhpIIbwvtS6eUAc=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha1-QbyBIA1zCrtEVquLP71VN7Wa3s0=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha1-TmqeN4ZNjxs7wOLc57+IV9uLGoE=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha1-Xwoo2EL2RiKB8GqWToi6jXq0l1M=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.13.tgz?cache=0&sync_timestamp=1612314681275&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha1-tii8ychSYKwa6wW0W94lIQGUovU=", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha1-b9/IzH7cxCs2p8EhiMZ4fIc63Ng=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.13.tgz?cache=0&sync_timestamp=1612314845661&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha1-fZmI1PBuD+aX6h2YAxiKoYtHJpU=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-runtime": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.10.tgz?cache=0&sync_timestamp=1607569385672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.12.10.tgz", - "integrity": "sha1-rw/e1OhGxLNweOjl0G3qxs2EhWI=", + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.4.tgz", + "integrity": "sha512-0Xip4KjXwapfwjK4yj4MXklT5JIA+ENWdOiQM/lpFF+13Z7BHzosgaDDRwQNvzhXvJuJFAW06F72wqsCL4lmyQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "semver": "^5.5.1" + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.2", + "babel-plugin-polyfill-corejs3": "^0.1.2", + "babel-plugin-polyfill-regenerator": "^0.1.1", + "semver": "7.0.0" }, "dependencies": { - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.5.tgz?cache=0&sync_timestamp=1604441076449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.5.tgz", - "integrity": "sha1-G/wCKfeUmI927QpNTpCGCFC1Tfs=", - "dev": true, - "requires": { - "@babel/types": "^7.12.5" - } - }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", "dev": true }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", - "dev": true - }, - "@babel/types": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.10.tgz?cache=0&sync_timestamp=1607569351602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.10.tgz", - "integrity": "sha1-eWXkpyYLJvCcVrz8sEmK8fbZsmA=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.1.tgz?cache=0&sync_timestamp=1602799951645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha1-C/nKxVUPzgz98ENCD2YdZF/cdeM=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.13.tgz?cache=0&sync_timestamp=1612314820265&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha1-23VXMrcMU51QTGOQ2c6Q/mSv960=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.12.1.tgz?cache=0&sync_timestamp=1602799957708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.12.1.tgz", - "integrity": "sha1-Un+fMRvk7H/cK3m7ife/iEs+Hh4=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.13.0.tgz?cache=0&sync_timestamp=1614034217488&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.13.0.tgz", + "integrity": "sha1-hIh3EOJzwYFaznrkWfb0Kl0x1f0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.7.tgz?cache=0&sync_timestamp=1605904558279&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha1-VgIkYTqyOYdFOUjtIdCwsZP6f60=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha1-dg/9k2+s5z+GCuZG+4bugvPQbR8=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.12.1.tgz?cache=0&sync_timestamp=1602799951964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha1-tD7ObtmnnAxxEZ9XbSme8J2UKEM=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.13.0.tgz?cache=0&sync_timestamp=1614034222672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha1-o2BJEnl3rZRDje50Q1mNHO/fQJ0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.10.tgz?cache=0&sync_timestamp=1607569552808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha1-3gHEyPllgL0A8YMHKw0Ozc8N7Es=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.13.tgz?cache=0&sync_timestamp=1612314820235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha1-eF3Weh8upXnZwr5yLejITLhfWn8=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.1.tgz?cache=0&sync_timestamp=1602799952036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha1-UjK5+BzLBwcLfDw2xnobePGEVwk=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.13.tgz?cache=0&sync_timestamp=1612314845292&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha1-hAztO4FtO1En3R0S3O3F3q0aXnQ=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799957036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha1-zJZh9hOQ21xl4/66zO/Vxqw/rss=", + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314820337&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha1-tSUhaFgE4VWxIC6D/BiNNLtw9aw=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true } } @@ -2557,31 +2688,30 @@ } }, "@babel/preset-env": { - "version": "7.12.11", - "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.11.tgz?cache=0&sync_timestamp=1608076996293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.11.tgz", - "integrity": "sha1-VdX3mBSHNlyT27yEUHscchXoV/k=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.13.0.tgz", + "integrity": "sha1-bsw9r2Nid5LsA9EHbbtUtJKKng0=", "dev": true, "requires": { - "@babel/compat-data": "^7.12.7", - "@babel/helper-compilation-targets": "^7.12.5", - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.11", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.7", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/compat-data": "^7.13.0", + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-proposal-async-generator-functions": "^7.13.0", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.12.17", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.12.13", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.0", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.13", + "@babel/plugin-proposal-optional-chaining": "^7.13.0", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", @@ -2591,58 +2721,52 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.11", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.7", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.10", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.0", + "@babel/plugin-transform-modules-systemjs": "^7.12.13", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.11", - "core-js-compat": "^3.8.0", - "semver": "^5.5.0" + "@babel/types": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.2", + "babel-plugin-polyfill-corejs3": "^0.1.2", + "babel-plugin-polyfill-regenerator": "^0.1.1", + "core-js-compat": "^3.9.0", + "semver": "7.0.0" }, "dependencies": { - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.5.tgz?cache=0&sync_timestamp=1604441076449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.5.tgz", - "integrity": "sha1-G/wCKfeUmI927QpNTpCGCFC1Tfs=", - "dev": true, - "requires": { - "@babel/types": "^7.12.5" - } - }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", "dev": true }, "@babel/helper-validator-identifier": { @@ -2652,9 +2776,9 @@ "dev": true }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.12.tgz?cache=0&sync_timestamp=1608730470163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.12.tgz", - "integrity": "sha1-Rgim7DE6u9h6+lUATTc60EqWwpk=", + "version": "7.13.0", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.0.tgz?cache=0&sync_timestamp=1614034208093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.0.tgz", + "integrity": "sha1-dEJNKBbwFxtBAPCrNOmjdO/ff4A=", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -2663,9 +2787,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1606852064928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", "dev": true } } @@ -2684,9 +2808,9 @@ } }, "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.5.tgz?cache=0&sync_timestamp=1604441104026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.5.tgz", - "integrity": "sha1-QQ5+SHRB4bNgwpvnFdhw2bmFiC4=", + "version": "7.13.2", + "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.13.2.tgz", + "integrity": "sha1-lRHIfSgIss9fuenFzw0at4nXVJk=", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -2821,9 +2945,9 @@ "dev": true }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336125847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", - "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", + "version": "4.17.21", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1613835838133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz", + "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=", "dev": true }, "strip-json-comments": { @@ -2967,7 +3091,7 @@ }, "@types/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/@types/parse-json/download/@types/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1605054896578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fparse-json%2Fdownload%2F%40types%2Fparse-json-4.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/@types/parse-json/download/@types/parse-json-4.0.0.tgz", "integrity": "sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=", "dev": true }, @@ -4155,6 +4279,36 @@ "babel-helper-is-void-0": "^0.3.0" } }, + "babel-plugin-polyfill-corejs2": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.1.2.tgz", + "integrity": "sha1-Pl5+8zndhMo0xqIGBebU72Kro7E=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-define-polyfill-provider": "^0.1.0", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.1.2.tgz", + "integrity": "sha1-ObDUZ0Q2Bzgje9VAUq+FLITXTr8=", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.0", + "core-js-compat": "^3.8.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.1.1.tgz", + "integrity": "sha1-O5uQfRVUdH/xMb1cbagXE+NC23M=", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.0" + } + }, "babel-plugin-transform-inline-consecutive-adds": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz", @@ -6018,44 +6172,44 @@ } }, "core-js": { - "version": "3.8.3", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.8.3.tgz?cache=0&sync_timestamp=1611040749668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.8.3.tgz", - "integrity": "sha1-whkG4fFPNon5OrzG4miDVQ3ZLdA=", + "version": "3.9.0", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.9.0.tgz?cache=0&sync_timestamp=1613668840564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.9.0.tgz", + "integrity": "sha1-eQsbsRVToicrNuJiXHF52zRUkvg=", "dev": true }, "core-js-compat": { - "version": "3.8.1", - "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.8.1.tgz?cache=0&sync_timestamp=1607215918248&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.8.1.tgz", - "integrity": "sha1-jR3dNB1mC6YZTL4M5g9MeUyHo24=", + "version": "3.9.0", + "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.9.0.tgz?cache=0&sync_timestamp=1613668838540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.9.0.tgz", + "integrity": "sha1-Kdo5OF8Wtx4ZFVZaoDhcTgljrVY=", "dev": true, "requires": { - "browserslist": "^4.15.0", + "browserslist": "^4.16.3", "semver": "7.0.0" }, "dependencies": { "browserslist": { - "version": "4.16.0", - "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.0.tgz?cache=0&sync_timestamp=1607665751821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.0.tgz", - "integrity": "sha1-QQJ3YnUAvjyyihv+A3WG++35SIs=", + "version": "4.16.3", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.3.tgz?cache=0&sync_timestamp=1612124071745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.3.tgz", + "integrity": "sha1-NAqkaUDX24eHSFZ8XeokpI3fNxc=", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001165", + "caniuse-lite": "^1.0.30001181", "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.621", + "electron-to-chromium": "^1.3.649", "escalade": "^3.1.1", - "node-releases": "^1.1.67" + "node-releases": "^1.1.70" } }, "caniuse-lite": { - "version": "1.0.30001170", - "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001170.tgz?cache=0&sync_timestamp=1608444159124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001170.tgz", - "integrity": "sha1-AIi/7MahRpSWnjkcwp1+tjYspqc=", + "version": "1.0.30001191", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001191.tgz?cache=0&sync_timestamp=1613979294700&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001191.tgz", + "integrity": "sha1-ustDK2cB9pDIxffGgBZrmp8IQ9k=", "dev": true }, "electron-to-chromium": { - "version": "1.3.633", - "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.633.tgz?cache=0&sync_timestamp=1608748384027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.633.tgz", - "integrity": "sha1-Ft1a7J3gOJTo0UodtM2oo2m5t/4=", + "version": "1.3.672", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.672.tgz", + "integrity": "sha1-Om4zUBbatLxYTVKSrcT5j1RUH2o=", "dev": true }, "escalade": { @@ -6065,9 +6219,9 @@ "dev": true }, "node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.67.tgz?cache=0&sync_timestamp=1605581385142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.67.tgz", - "integrity": "sha1-KOv8zNC6pqrY6NTY/ky8Sa4jnBI=", + "version": "1.1.70", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.70.tgz?cache=0&sync_timestamp=1611010668335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.70.tgz", + "integrity": "sha1-ZuDtAnOqZWZtf+eP6+djSHVCagg=", "dev": true }, "semver": { @@ -7151,9 +7305,9 @@ } }, "electron-log": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/electron-log/download/electron-log-4.3.1.tgz", - "integrity": "sha1-FAX++dTmlkpf24eQppFjqiN//pE=" + "version": "4.3.2", + "resolved": "https://registry.npm.taobao.org/electron-log/download/electron-log-4.3.2.tgz", + "integrity": "sha1-ITM0xp8EmPrGd6enPq5KYftplJ4=" }, "electron-publish": { "version": "22.9.1", @@ -7459,12 +7613,12 @@ "dev": true }, "eslint": { - "version": "7.18.0", - "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-7.18.0.tgz?cache=0&sync_timestamp=1610751984223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-7.18.0.tgz", - "integrity": "sha1-f9zS83FaQf5ilaFiNL1prtLHXmc=", + "version": "7.20.0", + "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-7.20.0.tgz", + "integrity": "sha1-2wfEyk7aLiMW56pXrH/JHsVQvcc=", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -7476,7 +7630,7 @@ "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", - "esquery": "^1.2.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", @@ -7503,6 +7657,45 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz?cache=0&sync_timestamp=1612314620252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.11.tgz", + "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz?cache=0&sync_timestamp=1608076995361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.12.13.tgz?cache=0&sync_timestamp=1612314610961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.12.13.tgz", + "integrity": "sha1-irU4OT4ANwsmJxsB+gj38n8ueVw=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", @@ -7531,9 +7724,9 @@ "dev": true }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336125847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", - "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", + "version": "4.17.21", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1613835838133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz", + "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=", "dev": true }, "semver": { @@ -7992,9 +8185,9 @@ } }, "eslint-plugin-promise": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", - "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-promise/download/eslint-plugin-promise-4.3.1.tgz", + "integrity": "sha1-YUhd8qNZ4DFJ/a/AposOAwrSrEU=", "dev": true }, "eslint-plugin-standard": { @@ -8059,9 +8252,9 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.3.1.tgz", - "integrity": "sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc=", + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.4.0.tgz", + "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -8558,9 +8751,9 @@ "dev": true }, "file-entry-cache": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.0.tgz?cache=0&sync_timestamp=1604832267816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-6.0.0.tgz", - "integrity": "sha1-eSGonDkcbZPv7CFprGvzAMUn6go=", + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.1.tgz?cache=0&sync_timestamp=1613794357372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-6.0.1.tgz", + "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", "dev": true, "requires": { "flat-cache": "^3.0.4" @@ -10608,7 +10801,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1609583919173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1604996837320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", "dev": true, "requires": { @@ -10620,7 +10813,7 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1608059984992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1604565113393&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", "dev": true }, @@ -10675,7 +10868,7 @@ }, "lines-and-columns": { "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, @@ -10756,6 +10949,12 @@ "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -10824,9 +11023,9 @@ "dev": true }, "lrc-file-parser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/lrc-file-parser/-/lrc-file-parser-1.0.5.tgz", - "integrity": "sha512-cBB8gG3BwhQp3ewv4G/rqfk8hBjcjGFjgki3jYpU7A6QX+VFQatRUYq3LxfE9+f4ZzoAUIuFYNEBHHdbFRrulw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/lrc-file-parser/-/lrc-file-parser-1.0.7.tgz", + "integrity": "sha512-YaPa3xMMlN+cLXyINorMlWkXfO5U+AWpPywHiyVaVLgvRnI7xjArOyLpKH/I8XHmIPmdtJQfxFxT3K3hdCS91Q==" }, "lru-cache": { "version": "6.0.0", @@ -12243,7 +12442,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1609583919173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1602353715225&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", "dev": true, "requires": { @@ -12255,7 +12454,7 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1608059984992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1595908717940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", "dev": true }, @@ -13553,9 +13752,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz", - "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", + "version": "0.6.7", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.7.tgz?cache=0&sync_timestamp=1612023307806&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.7.tgz", + "integrity": "sha1-wAFk4eZxPC4+5kHxcBxLeqCn+Gw=", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -15110,9 +15309,9 @@ }, "dependencies": { "ajv": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-7.0.3.tgz?cache=0&sync_timestamp=1609583919173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-7.0.3.tgz", - "integrity": "sha1-E650fv8SXK+yMKxQSyQGzzce7OI=", + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-7.1.1.tgz?cache=0&sync_timestamp=1613553016724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-7.1.1.tgz", + "integrity": "sha1-Hms3pFQCH6mUFxPzi5UvwcjTKoQ=", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -15128,9 +15327,9 @@ "dev": true }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336125847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", - "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", + "version": "4.17.21", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1613835838133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz", + "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=", "dev": true } } diff --git a/package.json b/package.json index 5561cdd4..f373005c 100644 --- a/package.json +++ b/package.json @@ -162,12 +162,12 @@ }, "homepage": "https://github.com/lyswhut/lx-music-desktop#readme", "devDependencies": { - "@babel/core": "^7.12.10", + "@babel/core": "^7.13.1", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-runtime": "^7.12.10", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-runtime": "^7.13.4", "@babel/polyfill": "^7.12.1", - "@babel/preset-env": "^7.12.11", + "@babel/preset-env": "^7.13.0", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.2", "babel-minify-webpack-plugin": "^0.3.1", @@ -176,7 +176,7 @@ "chalk": "^4.1.0", "changelog-parser": "^2.8.0", "copy-webpack-plugin": "^6.4.1", - "core-js": "^3.8.3", + "core-js": "^3.9.0", "cross-env": "^7.0.3", "css-loader": "^4.3.0", "del": "^6.0.0", @@ -184,14 +184,14 @@ "electron-builder": "^22.9.1", "electron-debug": "^3.2.0", "electron-devtools-installer": "^3.1.1", - "eslint": "^7.18.0", + "eslint": "^7.20.0", "eslint-config-standard": "^14.1.1", "eslint-formatter-friendly": "^7.0.0", "eslint-loader": "^4.0.2", "eslint-plugin-html": "^6.1.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-promise": "^4.3.1", "eslint-plugin-standard": "^4.1.0", "file-loader": "^6.2.0", "friendly-errors-webpack-plugin": "^1.7.0", @@ -224,13 +224,13 @@ "dependencies": { "crypto-js": "^4.0.0", "dnscache": "^1.0.2", - "electron-log": "^4.3.1", + "electron-log": "^4.3.2", "electron-store": "^6.0.1", "electron-updater": "^4.3.5", "iconv-lite": "^0.6.2", "image-size": "^0.9.3", "js-htmlencode": "^0.3.0", - "lrc-file-parser": "^1.0.5", + "lrc-file-parser": "^1.0.7", "needle": "^2.6.0", "node-id3": "^0.2.2", "request": "^2.88.2", From 040fcfba4ffc3232491593ab78f5e55b1fb07138 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Tue, 2 Mar 2021 08:32:26 +0800 Subject: [PATCH 23/37] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E6=AD=8C=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .babelrc | 3 +- package-lock.json | 150 ++++------ package.json | 1 + src/renderer/components/core/Player.vue | 18 +- src/renderer/components/core/PlayerDetail.vue | 73 ++++- src/renderer/store/modules/player.js | 16 +- .../utils/lyric-font-player/font-player.js | 267 ++++++++++++++++++ src/renderer/utils/lyric-font-player/index.js | 148 ++++++++++ .../utils/lyric-font-player/line-player.js | 153 ++++++++++ src/renderer/utils/lyric-font-player/utils.js | 50 ++++ src/renderer/utils/music/kg/lyric.js | 16 +- src/renderer/utils/music/wy/index.js | 4 +- 12 files changed, 779 insertions(+), 120 deletions(-) create mode 100644 src/renderer/utils/lyric-font-player/font-player.js create mode 100644 src/renderer/utils/lyric-font-player/index.js create mode 100644 src/renderer/utils/lyric-font-player/line-player.js create mode 100644 src/renderer/utils/lyric-font-player/utils.js diff --git a/.babelrc b/.babelrc index b4f2472d..c3affdfe 100644 --- a/.babelrc +++ b/.babelrc @@ -19,6 +19,7 @@ "plugins": [ "@babel/plugin-syntax-dynamic-import", "@babel/plugin-transform-modules-umd", - "@babel/plugin-transform-runtime" + "@babel/plugin-transform-runtime", + "@babel/plugin-proposal-class-properties" ] } diff --git a/package-lock.json b/package-lock.json index 447fcf9a..8732f3c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1548,8 +1548,8 @@ }, "@babel/plugin-proposal-class-properties": { "version": "7.13.0", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.13.0.tgz?cache=0&sync_timestamp=1614035098704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.13.0.tgz", - "integrity": "sha1-FGN2AAuU79AB5XpAqIpSWvqrnzc=", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.13.0", @@ -1558,8 +1558,8 @@ "dependencies": { "@babel/helper-plugin-utils": { "version": "7.13.0", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", "dev": true } } @@ -2882,14 +2882,13 @@ } }, "@electron/get": { - "version": "1.12.3", - "resolved": "https://registry.npm.taobao.org/@electron/get/download/@electron/get-1.12.3.tgz", - "integrity": "sha1-+icjOFxLVlo0xMgvRgh6oqX79tA=", + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.4.tgz", + "integrity": "sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==", "dev": true, "requires": { "debug": "^4.1.1", "env-paths": "^2.2.0", - "filenamify": "^4.1.0", "fs-extra": "^8.1.0", "global-agent": "^2.0.2", "global-tunnel-ng": "^2.7.1", @@ -4871,8 +4870,8 @@ }, "boolean": { "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/boolean/download/boolean-3.0.2.tgz", - "integrity": "sha1-3xuqGLaisOcIQEdeHZPsj+dbJXA=", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz", + "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==", "dev": true, "optional": true }, @@ -5085,7 +5084,7 @@ }, "buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true }, @@ -5929,8 +5928,8 @@ }, "config-chain": { "version": "1.1.12", - "resolved": "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz", - "integrity": "sha1-D96NCRIA616AjK8l/mGMAvSOTvo=", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", "dev": true, "optional": true, "requires": { @@ -7182,8 +7181,8 @@ }, "electron": { "version": "9.4.2", - "resolved": "https://registry.npm.taobao.org/electron/download/electron-9.4.2.tgz", - "integrity": "sha1-DHbfw9MXEIraxmhEuGip4uV9SPU=", + "resolved": "https://registry.npmjs.org/electron/-/electron-9.4.2.tgz", + "integrity": "sha512-WpnJLDFHtj5eIewAi4hMHxGdbwkzjzmxsMu/BtDFCic3wpruchkskL7EV28Sg/IYTAqo6yN5ISfnFaQcLsIdng==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -7192,9 +7191,9 @@ }, "dependencies": { "@types/node": { - "version": "12.19.15", - "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.19.15.tgz", - "integrity": "sha1-DefpePtD22LaNp2xjqCIpjZzwYI=", + "version": "12.20.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.4.tgz", + "integrity": "sha512-xRCgeE0Q4pT5UZ189TJ3SpYuX/QGl6QIAOAIeDSbAVAd2gX1NxSZup4jNVK7cxIeP8KDSbJgcckun495isP1jQ==", "dev": true } } @@ -7583,8 +7582,8 @@ }, "es6-error": { "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/es6-error/download/es6-error-4.1.1.tgz", - "integrity": "sha1-njr0B0Wd7tR+mpH5uIWoTrBcVh0=", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true, "optional": true }, @@ -8644,8 +8643,8 @@ }, "extract-zip": { "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/extract-zip/download/extract-zip-1.7.0.tgz?cache=0&sync_timestamp=1591773082587&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fextract-zip%2Fdownload%2Fextract-zip-1.7.0.tgz", - "integrity": "sha1-VWzDrp339FLEk6DPtRzDAneUCSc=", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, "requires": { "concat-stream": "^1.6.2", @@ -8656,8 +8655,8 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -8665,7 +8664,7 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } @@ -8737,7 +8736,7 @@ }, "fd-slicer": { "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "requires": { @@ -8827,23 +8826,6 @@ "minimatch": "^3.0.4" } }, - "filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/filename-reserved-regex/download/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", - "dev": true - }, - "filenamify": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/filenamify/download/filenamify-4.2.0.tgz?cache=0&sync_timestamp=1600940508592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilenamify%2Fdownload%2Ffilenamify-4.2.0.tgz", - "integrity": "sha1-yZcW1naGlYWztdMos/BlkNAy6J8=", - "dev": true, - "requires": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -9333,8 +9315,8 @@ }, "global-agent": { "version": "2.1.12", - "resolved": "https://registry.npm.taobao.org/global-agent/download/global-agent-2.1.12.tgz", - "integrity": "sha1-5K44Ercxqegcv4Jfk3fvRQqOQZU=", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", + "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", "dev": true, "optional": true, "requires": { @@ -9349,8 +9331,8 @@ "dependencies": { "semver": { "version": "7.3.4", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1606852064928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz", - "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, "optional": true, "requires": { @@ -9425,8 +9407,8 @@ }, "global-tunnel-ng": { "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/global-tunnel-ng/download/global-tunnel-ng-2.7.1.tgz", - "integrity": "sha1-0DtRAt/eOmmRT17n2GdhyjXVfY8=", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", "dev": true, "optional": true, "requires": { @@ -9443,9 +9425,9 @@ "dev": true }, "globalthis": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/globalthis/download/globalthis-1.0.1.tgz", - "integrity": "sha1-QBFvXZwHH56PsAN2VN8as6g7fvk=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", "dev": true, "optional": true, "requires": { @@ -11089,8 +11071,8 @@ }, "matcher": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/matcher/download/matcher-3.0.0.tgz", - "integrity": "sha1-vZBg9MW3CqgEHMxvgDaHYJlPMMo=", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", "dev": true, "optional": true, "requires": { @@ -11099,8 +11081,8 @@ "dependencies": { "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "optional": true } @@ -11684,8 +11666,8 @@ }, "npm-conf": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/npm-conf/download/npm-conf-1.1.3.tgz", - "integrity": "sha1-JWzEe9DiGMJZxOlVC/QTvCGSr/k=", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", "dev": true, "optional": true, "requires": { @@ -12209,7 +12191,7 @@ }, "pend": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, @@ -12226,7 +12208,7 @@ }, "pify": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, "optional": true @@ -13094,7 +13076,7 @@ }, "proto-list": { "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", "dev": true, "optional": true @@ -14010,8 +13992,8 @@ }, "roarr": { "version": "2.15.4", - "resolved": "https://registry.npm.taobao.org/roarr/download/roarr-2.15.4.tgz?cache=0&sync_timestamp=1610472352033&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Froarr%2Fdownload%2Froarr-2.15.4.tgz", - "integrity": "sha1-9f55W3uDjM/jXcYI4Cgrnrouev0=", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "dev": true, "optional": true, "requires": { @@ -14025,8 +14007,8 @@ "dependencies": { "sprintf-js": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.1.2.tgz", - "integrity": "sha1-2hdlJiv4wPVxdJ8q1sJjACB65nM=", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "dev": true, "optional": true } @@ -14113,7 +14095,7 @@ }, "semver-compare": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true, "optional": true @@ -14175,8 +14157,8 @@ }, "serialize-error": { "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/serialize-error/download/serialize-error-7.0.1.tgz", - "integrity": "sha1-8TYLBEf2H/tIPsQVfHN/q313jhg=", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", "dev": true, "optional": true, "requires": { @@ -14185,8 +14167,8 @@ "dependencies": { "type-fest": { "version": "0.13.1", - "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.13.1.tgz?cache=0&sync_timestamp=1606468844109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.13.1.tgz", - "integrity": "sha1-AXLLW86AsL1ULqNI21DH4hg02TQ=", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true, "optional": true } @@ -15069,15 +15051,6 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/strip-outer/download/strip-outer-1.0.1.tgz", - "integrity": "sha1-sv0qv2YEudHmATBXGV34Nrip1jE=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -15218,8 +15191,8 @@ }, "sumchecker": { "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/sumchecker/download/sumchecker-3.0.1.tgz", - "integrity": "sha1-Y3fplnlauwttNI6bPh37JDRajkI=", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", "dev": true, "requires": { "debug": "^4.1.0" @@ -15734,15 +15707,6 @@ "punycode": "^2.1.1" } }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/trim-repeated/download/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -15795,8 +15759,8 @@ }, "tunnel": { "version": "0.0.6", - "resolved": "https://registry.npm.taobao.org/tunnel/download/tunnel-0.0.6.tgz", - "integrity": "sha1-cvExSzSlsZLbASMk3yzFh8pH+Sw=", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "dev": true, "optional": true }, @@ -17844,7 +17808,7 @@ }, "yauzl": { "version": "2.10.0", - "resolved": "https://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dev": true, "requires": { diff --git a/package.json b/package.json index f373005c..669190c7 100644 --- a/package.json +++ b/package.json @@ -163,6 +163,7 @@ "homepage": "https://github.com/lyswhut/lx-music-desktop#readme", "devDependencies": { "@babel/core": "^7.13.1", + "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-modules-umd": "^7.13.0", "@babel/plugin-transform-runtime": "^7.13.4", diff --git a/src/renderer/components/core/Player.vue b/src/renderer/components/core/Player.vue index e7847c55..1f3f7b39 100644 --- a/src/renderer/components/core/Player.vue +++ b/src/renderer/components/core/Player.vue @@ -85,7 +85,7 @@ div(:class="$style.player") `)) + const randomNum = Math.random().toString().substring(2, 10) + global.modules.userApiWindow.loadURL( + 'data:text/html;charset=UTF-8,' + encodeURIComponent(html + .replace('', + ``) + .replace('', ``))) + + // global.modules.userApiWindow.loadFile(path.join(dir, 'renderer/user-api.html')) + // global.modules.userApiWindow.webContents.openDevTools() +} + +exports.closeWindow = async() => { + if (!global.modules.userApiWindow) return + await Promise.all([ + global.modules.userApiWindow.webContents.session.clearAuthCache(), + global.modules.userApiWindow.webContents.session.clearStorageData(), + global.modules.userApiWindow.webContents.session.clearCache(), + ]) + global.modules.userApiWindow.destroy() + global.modules.userApiWindow = null +} diff --git a/src/main/modules/userApi/renderer/preload.js b/src/main/modules/userApi/renderer/preload.js new file mode 100644 index 00000000..f0b0793e --- /dev/null +++ b/src/main/modules/userApi/renderer/preload.js @@ -0,0 +1,227 @@ +const { contextBridge, ipcRenderer } = require('electron') +const needle = require('needle') +const { createCipheriv, publicEncrypt, constants, randomBytes, createHash } = require('crypto') +const USER_API_RENDERER_EVENT_NAME = require('../rendererEvent/name') + +const sendMessage = (action, status, data, message) => { + ipcRenderer.send(action, { status, data, message }) +} + +let isInitedApi = false +const EVENT_NAMES = { + request: 'request', + inited: 'inited', +} +const eventNames = Object.values(EVENT_NAMES) +const events = { + request: null, +} +const allSources = ['kw', 'kg', 'tx', 'wy', 'mg'] +const supportQualitys = { + kw: ['128k', '320k', 'flac'], + kg: ['128k', '320k', 'flac'], + tx: ['128k', '320k', 'flac'], + wy: ['128k', '320k', 'flac'], + mg: ['128k', '320k', 'flac'], +} +const supportActions = { + kw: ['musicUrl'], + kg: ['musicUrl'], + tx: ['musicUrl'], + wy: ['musicUrl'], + mg: ['musicUrl'], + xm: ['musicUrl'], +} + +const handleRequest = (context, { requestKey, data }) => { + // console.log(data) + if (!events.request) return sendMessage(USER_API_RENDERER_EVENT_NAME.response, false, { requestKey }, 'Request event is not defined') + try { + events.request.call(context, { source: data.source, action: data.action, info: data.info }).then(response => { + let sendData = { + requestKey, + } + switch (data.action) { + case 'musicUrl': + sendData.result = { + source: data.source, + action: data.action, + data: { + type: data.info.type, + url: response, + }, + } + break + } + sendMessage(USER_API_RENDERER_EVENT_NAME.response, true, sendData) + }).catch(err => { + sendMessage(USER_API_RENDERER_EVENT_NAME.response, false, { requestKey }, err.message) + }) + } catch (err) { + sendMessage(USER_API_RENDERER_EVENT_NAME.response, false, { requestKey }, err.message) + } +} + +/** + * + * @param {*} context + * @param {*} info { + * status: true, + * message: 'xxx', + * sources: { + * kw: ['128k', '320k', 'flac'], + * kg: ['128k', '320k', 'flac'], + * tx: ['128k', '320k', 'flac'], + * wy: ['128k', '320k', 'flac'], + * mg: ['128k', '320k', 'flac'], + * } + * } + */ +const handleInit = (context, info) => { + if (!info) { + sendMessage(USER_API_RENDERER_EVENT_NAME.init, false, null, 'Init failed') + // sendMessage(USER_API_RENDERER_EVENT_NAME.init, false, null, typeof info.message === 'string' ? info.message.substring(0, 100) : '') + return + } + if (info.openDevTools === true) { + sendMessage(USER_API_RENDERER_EVENT_NAME.openDevTools) + } + if (!info.status) { + sendMessage(USER_API_RENDERER_EVENT_NAME.init, false, null, 'Init failed') + // sendMessage(USER_API_RENDERER_EVENT_NAME.init, false, null, typeof info.message === 'string' ? info.message.substring(0, 100) : '') + return + } + const sourceInfo = { + sources: {}, + } + try { + for (const source of allSources) { + const userSource = info.sources[source] + if (!userSource || userSource.type !== 'music') continue + const qualitys = supportQualitys[source] + const actions = supportActions[source] + sourceInfo.sources[source] = { + type: 'music', + actions: actions.filter(a => userSource.actions.includes(a)), + qualitys: qualitys.filter(q => userSource.qualitys.includes(q)), + } + } + } catch (error) { + console.log(error) + sendMessage(USER_API_RENDERER_EVENT_NAME.init, false, null, error.message) + return + } + sendMessage(USER_API_RENDERER_EVENT_NAME.init, true, sourceInfo) + + ipcRenderer.on(USER_API_RENDERER_EVENT_NAME.request, (event, data) => { + handleRequest(context, data) + }) +} + +contextBridge.exposeInMainWorld('lx', { + EVENT_NAMES, + request(url, { method = 'get', timeout, headers, body, form, formData }, callback) { + let options = { headers } + let data + if (body) { + data = body + } else if (form) { + data = form + // data.content_type = 'application/x-www-form-urlencoded' + options.json = false + } else if (formData) { + data = formData + // data.content_type = 'multipart/form-data' + options.json = false + } + options.response_timeout = timeout + + let request = needle.request(method, url, data, options, (err, resp, body) => { + if (!err) { + body = resp.body = resp.raw.toString() + try { + resp.body = JSON.parse(resp.body) + } catch (_) {} + body = resp.body + } + callback(err, { + statusCode: resp.statusCode, + statusMessage: resp.statusMessage, + headers: resp.headers, + bytes: resp.bytes, + raw: resp.raw, + body: body, + }, body) + }).request + + return () => { + if (!request.aborted) request.abort() + request = null + } + }, + send(eventName, data) { + return new Promise((resolve, reject) => { + if (!eventNames.includes(eventName)) return reject(new Error('The event is not supported: ' + eventName)) + switch (eventName) { + case EVENT_NAMES.inited: + if (isInitedApi) return + isInitedApi = true + handleInit(this, data) + break + default: + resolve(new Error('Unknown event name: ' + eventName)) + } + }) + }, + on(eventName, handler) { + if (!eventNames.includes(eventName)) return Promise.reject(new Error('The event is not supported: ' + eventName)) + switch (eventName) { + case EVENT_NAMES.request: + events.request = handler + break + } + }, + utils: { + crypto: { + aesEncrypt(buffer, mode, key, iv) { + const cipher = createCipheriv('aes-128-' + mode, key, iv) + return Buffer.concat([cipher.update(buffer), cipher.final()]) + }, + rsaEncrypt(buffer, key) { + buffer = Buffer.concat([Buffer.alloc(128 - buffer.length), buffer]) + return publicEncrypt({ key: key, padding: constants.RSA_NO_PADDING }, buffer) + }, + randomBytes(size) { + return randomBytes(size) + }, + md5(str) { + return createHash('md5').update(str).digest('hex') + }, + }, + buffer: { + from(...args) { + return Buffer.from(...args) + }, + }, + }, + // removeEvent(eventName, handler) { + // if (!eventNames.includes(eventName)) return Promise.reject(new Error('The event is not supported: ' + eventName)) + // let handlers + // switch (eventName) { + // case EVENT_NAMES.request: + // handlers = events.request + // break + // } + // for (let index = 0; index < handlers.length; index++) { + // if (handlers[index] === handler) { + // handlers.splice(index, 1) + // break + // } + // } + // }, + // removeAllEvents() { + // for (const handlers of Object.values(events)) { + // handlers.splice(0, handlers.length) + // } + // }, +}) diff --git a/src/main/modules/userApi/renderer/user-api.html b/src/main/modules/userApi/renderer/user-api.html new file mode 100644 index 00000000..a5cadf09 --- /dev/null +++ b/src/main/modules/userApi/renderer/user-api.html @@ -0,0 +1,12 @@ + + + + + + + Document + + + + + diff --git a/src/main/modules/userApi/rendererEvent/name.js b/src/main/modules/userApi/rendererEvent/name.js new file mode 100644 index 00000000..c95c019e --- /dev/null +++ b/src/main/modules/userApi/rendererEvent/name.js @@ -0,0 +1,12 @@ +const names = { + init: '', + request: '', + response: '', + openDevTools: '', +} + + +for (const key of Object.keys(names)) { + names[key] = `userApi_${key}` +} +module.exports = names diff --git a/src/main/modules/userApi/rendererEvent/rendererEvent.js b/src/main/modules/userApi/rendererEvent/rendererEvent.js new file mode 100644 index 00000000..c189a1ec --- /dev/null +++ b/src/main/modules/userApi/rendererEvent/rendererEvent.js @@ -0,0 +1,82 @@ +const { mainOn, mainSend } = require('@common/ipc') + +const USER_API_RENDERER_EVENT_NAME = require('../rendererEvent/name') +const { createWindow } = require('../main') +const { getUserApis } = require('../utils') + +let userApi +let status = { status: true } +const requestQueue = new Map() +const timeouts = {} + +const handleInit = (event, { status, message, data: apiInfo }) => { + // console.log('inited') + if (!status) { + console.log('init failed:', message) + global.lx_event.userApi.status(status = { status: false, apiInfo: userApi, message }) + return + } + global.lx_event.userApi.status(status = { status: true, apiInfo: { ...userApi, sources: apiInfo.sources } }) +} +const handleResponse = (event, { status, data: { requestKey, result }, message }) => { + const request = requestQueue.get(requestKey) + if (!request) return + requestQueue.delete(requestKey) + clearTimeout(timeouts[requestKey]) + delete timeouts[requestKey] + if (status) { + request[0](result) + } else { + request[1](new Error(message)) + } +} +const handleOpenDevTools = () => { + if (global.modules.userApiWindow) { + global.modules.userApiWindow.webContents.openDevTools() + } +} +mainOn(USER_API_RENDERER_EVENT_NAME.init, handleInit) +mainOn(USER_API_RENDERER_EVENT_NAME.response, handleResponse) +mainOn(USER_API_RENDERER_EVENT_NAME.openDevTools, handleOpenDevTools) + +exports.loadApi = async apiId => { + if (!apiId) return global.lx_event.userApi.status(status = { status: false, message: 'api id is null' }) + userApi = getUserApis().find(api => api.id == apiId) + console.log('load api', userApi.name) + await createWindow(userApi) + // if (!userApi) return global.lx_event.userApi.status(status = { status: false, message: 'api script is not found' }) + // if (!global.modules.userApiWindow) { + // global.lx_event.userApi.status(status = { status: false, message: 'user api runtime is not defined' }) + // throw new Error('user api window is not defined') + // } + + // // const path = require('path') + // // // eslint-disable-next-line no-undef + // // userApi.script = require('fs').readFileSync(path.join(global.isDev ? __userApi : __dirname, 'renderer/test-api.js')).toString() + // console.log('load api', userApi.name) + // mainSend(global.modules.userApiWindow, USER_API_RENDERER_EVENT_NAME.init, { userApi }) +} + +exports.cancelRequest = requestKey => { + if (!requestQueue.has(requestKey)) return + const request = requestQueue.get(requestKey) + request[1](new Error('Cancel request')) + requestQueue.delete(requestKey) + clearTimeout(timeouts[requestKey]) + delete timeouts[requestKey] +} + +exports.request = ({ requestKey, data }) => new Promise((resolve, reject) => { + if (!userApi) return reject(new Error('user api is not load')) + + // const requestKey = `request__${Math.random().toString().substring(2)}` + + timeouts[requestKey] = setTimeout(() => { + exports.cancelRequest(requestKey) + }, 20000) + + requestQueue.set(requestKey, [resolve, reject, data]) + mainSend(global.modules.userApiWindow, USER_API_RENDERER_EVENT_NAME.request, { requestKey, data }) +}) + +exports.getStatus = () => status diff --git a/src/main/modules/userApi/utils/index.js b/src/main/modules/userApi/utils/index.js new file mode 100644 index 00000000..18060a7a --- /dev/null +++ b/src/main/modules/userApi/utils/index.js @@ -0,0 +1,46 @@ +const { userApis: defaultUserApis } = require('../config') +const Store = require('electron-store') + +let userApis +const electronStore_userApi = new Store({ + name: 'userApi', +}) + +exports.getUserApis = () => { + if (userApis) return userApis + userApis = electronStore_userApi.get('userApis') + if (!userApis) { + userApis = defaultUserApis + electronStore_userApi.set('userApis', userApis) + } + return userApis +} + +exports.importApi = script => { + let scriptInfo = script.split(/\r?\n/) + let name = scriptInfo[1] || '' + let description = scriptInfo[2] || '' + name = name.startsWith(' * @name ') ? name.replace(' * @name ', '').trim() : `user_api_${new Date().toLocaleString()}` + if (name.length > 10) name = name.substring(0, 10) + '...' + description = description.startsWith(' * @description ') ? description.replace(' * @description ', '').trim() : '' + if (description.length > 20) description = description.substring(0, 20) + '...' + const apiInfo = { + id: `user_api_${Math.random().toString().substring(2, 5)}_${Date.now()}`, + name, + description, + script, + } + userApis.push(apiInfo) + electronStore_userApi.set('userApis', userApis) + return apiInfo +} + +exports.removeApi = ids => { + for (let index = userApis.length - 1; index > -1; index--) { + if (ids.includes(userApis[index].id)) { + userApis.splice(index, 1) + ids.splice(index, 1) + } + } + electronStore_userApi.set('userApis', userApis) +} diff --git a/src/main/rendererEvents/index.js b/src/main/rendererEvents/index.js index 9fe426ab..c2a0b5b3 100644 --- a/src/main/rendererEvents/index.js +++ b/src/main/rendererEvents/index.js @@ -19,3 +19,5 @@ require('./playList') require('./data') require('./kw_decodeLyric') + +require('./userApi') diff --git a/src/main/rendererEvents/userApi.js b/src/main/rendererEvents/userApi.js new file mode 100644 index 00000000..0f1599b6 --- /dev/null +++ b/src/main/rendererEvents/userApi.js @@ -0,0 +1,35 @@ +const { mainSend, mainHandle, NAMES: { mainWindow: ipcMainWindowNames } } = require('@common/ipc') +const { getApiList, importApi, removeApi, setApi, getStatus, request, cancelRequest, eventNames } = require('../modules/userApi') + +const handleStatusChange = status => { + mainSend(global.modules.mainWindow, ipcMainWindowNames.user_api_status, status) +} + +global.lx_event.userApi.on(eventNames.status, handleStatusChange) + +mainHandle(ipcMainWindowNames.import_user_api, async(event, script) => { + return importApi(script) +}) + +mainHandle(ipcMainWindowNames.remove_user_api, (event, apiIds) => { + return removeApi(apiIds) +}) + +mainHandle(ipcMainWindowNames.set_user_api, (event, apiId) => { + return setApi(apiId) +}) + +mainHandle(ipcMainWindowNames.get_user_api_list, event => { + return getApiList() +}) + +mainHandle(ipcMainWindowNames.get_user_api_status, event => { + return getStatus() +}) + +mainHandle(ipcMainWindowNames.request_user_api, (event, musicInfo) => { + return request(musicInfo) +}) +mainHandle(ipcMainWindowNames.request_user_api_cancel, (event, requestKey) => { + return cancelRequest(requestKey) +}) diff --git a/src/renderer/App.vue b/src/renderer/App.vue index edd3bad4..cf01401a 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -27,6 +27,7 @@ import { isLinux } from '../common/utils' import music from './utils/music' import { throttle, openUrl, compareVer, getPlayList, parseUrlParams } from './utils' import { base as eventBaseName } from './event/names' +import apiSourceInfo from './utils/music/api-source-info' window.ELECTRON_DISABLE_SECURITY_WARNINGS = process.env.ELECTRON_DISABLE_SECURITY_WARNINGS dnscache({ @@ -56,10 +57,16 @@ export default { isDT: false, isLinux, globalObj: { - apiSource: 'test', + apiSource: null, proxy: {}, isShowPact: false, qualityList: {}, + userApi: { + list: [], + status: false, + message: 'initing', + apis: {}, + }, }, updateTimeout: null, envParams: { @@ -137,8 +144,20 @@ export default { searchHistoryList(n) { this.saveSearchHistoryList(n) }, - 'globalObj.apiSource'(n) { - this.globalObj.qualityList = music.supportQuality[n] + 'globalObj.apiSource'(n, o) { + if (/^user_api/.test(n)) { + this.globalObj.qualityList = {} + this.globalObj.userApi.status = false + this.globalObj.userApi.message = 'initing' + } else { + this.globalObj.qualityList = music.supportQuality[n] + } + if (o === null) return + rendererInvoke(NAMES.mainWindow.set_user_api, n).catch(err => { + console.log(err) + let api = apiSourceInfo.find(api => !api.disabled) + if (api) this.globalObj.apiSource = api.id + }) if (n != this.setting.apiSource) { this.setSetting(Object.assign({}, this.setting, { apiSource: n, @@ -244,8 +263,13 @@ export default { this.listenEvent() asyncTask.push(this.initData()) + asyncTask.push(this.initUserApi()) this.globalObj.apiSource = this.setting.apiSource - this.globalObj.qualityList = music.supportQuality[this.setting.apiSource] + if (/^user_api/.test(this.setting.apiSource)) { + rendererInvoke(NAMES.mainWindow.set_user_api, this.setting.apiSource) + } else { + this.globalObj.qualityList = music.supportQuality[this.setting.apiSource] + } this.globalObj.proxy = Object.assign({}, this.setting.network.proxy) window.globalObj = this.globalObj @@ -345,6 +369,72 @@ export default { }) }) }, + initUserApi() { + return Promise.all([ + rendererOn(NAMES.mainWindow.user_api_status, (event, { status, message, apiInfo }) => { + // console.log(apiInfo) + this.globalObj.userApi.status = status + this.globalObj.userApi.message = message + if (status) { + if (apiInfo.id === this.setting.apiSource) { + let apis = {} + let qualitys = {} + for (const [source, { actions, type, qualitys: sourceQualitys }] of Object.entries(apiInfo.sources)) { + if (type != 'music') continue + apis[source] = {} + for (const action of actions) { + switch (action) { + case 'musicUrl': + apis[source].getMusicUrl = (songInfo, type) => { + const requestKey = `request__${Math.random().toString().substring(2)}` + return { + canceleFn() { + rendererInvoke(NAMES.mainWindow.request_user_api_cancel, requestKey) + }, + promise: rendererInvoke(NAMES.mainWindow.request_user_api, { + requestKey, + data: { + source: source, + action: 'musicUrl', + info: { + type, + musicInfo: songInfo, + }, + }, + }).then(res => { + // console.log(res) + if (!/^https?:/.test(res.data.url)) return Promise.reject(new Error('Get url failed')) + return { type, url: res.data.url } + }).catch(err => { + console.log(err.message) + return Promise.reject(err) + }), + } + } + break + + default: + break + } + } + qualitys[source] = sourceQualitys + } + this.globalObj.qualityList = qualitys + this.globalObj.userApi.apis = apis + } + } + }), + rendererInvoke(NAMES.mainWindow.get_user_api_list).then(res => { + // console.log(res) + if (![...apiSourceInfo.map(s => s.id), ...res.map(s => s.id)].includes(this.setting.apiSource)) { + console.warn('reset api') + let api = apiSourceInfo.find(api => !api.disabled) + if (api) this.globalObj.apiSource = api.id + } + this.globalObj.userApi.list = res + }), + ]) + }, showUpdateModal() { (this.version.newVersion && this.version.newVersion.history ? Promise.resolve(this.version.newVersion) diff --git a/src/renderer/components/material/Btn.vue b/src/renderer/components/material/Btn.vue index fafc6017..b11b6eb0 100644 --- a/src/renderer/components/material/Btn.vue +++ b/src/renderer/components/material/Btn.vue @@ -1,5 +1,5 @@ @@ -9,6 +9,10 @@ export default { min: { type: Boolean, }, + outline: { + type: Boolean, + default: false, + }, disabled: { type: Boolean, default: false, @@ -36,6 +40,10 @@ export default { opacity: .4; } + &.outline { + background-color: transparent; + } + &:hover { background-color: @color-btn-hover; } @@ -54,6 +62,9 @@ each(@themes, { .btn { color: ~'@{color-@{value}-btn}'; background-color: ~'@{color-@{value}-btn-background}'; + &.outline { + background-color: transparent; + } &:hover { background-color: ~'@{color-@{value}-btn-hover}'; } diff --git a/src/renderer/components/material/UserApiModal.vue b/src/renderer/components/material/UserApiModal.vue new file mode 100644 index 00000000..2fc1d516 --- /dev/null +++ b/src/renderer/components/material/UserApiModal.vue @@ -0,0 +1,240 @@ + + + + + + diff --git a/src/renderer/lang/en-us/material/user_api_modal.json b/src/renderer/lang/en-us/material/user_api_modal.json new file mode 100644 index 00000000..79c983ec --- /dev/null +++ b/src/renderer/lang/en-us/material/user_api_modal.json @@ -0,0 +1,10 @@ +{ + "title": "Custom Source Management", + "readme": "Source writing instructions: ", + "note": "Tip: Although we have isolated the script's running environment as much as possible, importing scripts containing malicious behaviors may still affect your system. Please import them carefully.", + "btn_remove": "Remove", + "btn_import": "Import", + "btn_export": "Export", + "import_file": "Select music API script file", + "noitem": "There is nothing here...😲" +} diff --git a/src/renderer/lang/en-us/view/setting.json b/src/renderer/lang/en-us/view/setting.json index 8609af7c..66cfb238 100644 --- a/src/renderer/lang/en-us/view/setting.json +++ b/src/renderer/lang/en-us/view/setting.json @@ -11,6 +11,10 @@ "basic_sourcename_real": "Original", "basic_sourcename_alias": "Aliases", "basic_sourcename": "Source name", + "basic_source_status_success": "Initialization successful", + "basic_source_status_initing": "Initializing", + "basic_source_status_failed": "Initialization failed", + "basic_source_user_api_btn": "Custom Source Management", "basic_window_size_title": "Set the window size", "basic_window_size": "Window size", "basic_window_size_smaller": "Smaller", diff --git a/src/renderer/lang/zh-cn/material/user_api_modal.json b/src/renderer/lang/zh-cn/material/user_api_modal.json new file mode 100644 index 00000000..894fb5b6 --- /dev/null +++ b/src/renderer/lang/zh-cn/material/user_api_modal.json @@ -0,0 +1,10 @@ +{ + "title": "自定义源管理", + "readme": "源编写说明:", + "note": "提示:虽然我们已经尽可能地隔离了脚本的运行环境,但导入包含恶意行为的脚本仍可能会影响你的系统,请谨慎导入。", + "btn_remove": "移除", + "btn_import": "导入", + "btn_export": "导出", + "import_file": "选择音乐API脚本文件", + "noitem": "这里竟然是空的 😲" +} diff --git a/src/renderer/lang/zh-cn/view/setting.json b/src/renderer/lang/zh-cn/view/setting.json index 84c06b8f..9b33455c 100644 --- a/src/renderer/lang/zh-cn/view/setting.json +++ b/src/renderer/lang/zh-cn/view/setting.json @@ -11,6 +11,10 @@ "basic_sourcename_real": "原名", "basic_sourcename_alias": "别名", "basic_sourcename": "音源名字", + "basic_source_status_success": "初始化成功", + "basic_source_status_initing": "初始化中", + "basic_source_status_failed": "初始化失败", + "basic_source_user_api_btn": "自定义源管理", "basic_window_size_title": "设置软件窗口尺寸", "basic_window_size": "窗口尺寸", "basic_window_size_smaller": "较小", diff --git a/src/renderer/lang/zh-tw/material/user_api_modal.json b/src/renderer/lang/zh-tw/material/user_api_modal.json new file mode 100644 index 00000000..0d1948ee --- /dev/null +++ b/src/renderer/lang/zh-tw/material/user_api_modal.json @@ -0,0 +1,10 @@ +{ + "title": "自定義源管理", + "readme": "源編寫說明:", + "note": "提示:雖然我們已經盡可能地隔離了腳本的運行環境,但導入包含惡意行為的腳本仍可能會影響你的系統,請謹慎導入。", + "btn_remove": "移除", + "btn_import": "導入", + "btn_export": "導出", + "import_file": "選擇音樂API腳本文件", + "noitem": "這裡竟然是空的 😲" +} diff --git a/src/renderer/lang/zh-tw/view/setting.json b/src/renderer/lang/zh-tw/view/setting.json index f13c823f..78ecffba 100644 --- a/src/renderer/lang/zh-tw/view/setting.json +++ b/src/renderer/lang/zh-tw/view/setting.json @@ -11,6 +11,10 @@ "basic_sourcename_real": "原名", "basic_sourcename_alias": "別名", "basic_sourcename": "音源名字", + "basic_source_status_success": "初始化成功", + "basic_source_status_initing": "初始化中", + "basic_source_status_failed": "初始化失敗", + "basic_source_user_api_btn": "自定義源管理", "basic_window_size_title": "設置軟件窗口尺寸", "basic_window_size": "窗口尺寸", "basic_window_size_smaller": "較小", diff --git a/src/renderer/utils/music/api-source.js b/src/renderer/utils/music/api-source.js index 3a598191..c94555cc 100644 --- a/src/renderer/utils/music/api-source.js +++ b/src/renderer/utils/music/api-source.js @@ -13,6 +13,7 @@ for (const api of apiSourceInfo) { const getAPI = source => apiList[`${window.globalObj.apiSource}_api_${source}`] const apis = source => { + if (/^user_api/.test(window.globalObj.apiSource)) return window.globalObj.userApi.apis[source] let api = getAPI(source) if (api) return api throw new Error('Api is not found') diff --git a/src/renderer/views/Setting.vue b/src/renderer/views/Setting.vue index 92caf033..6a45292d 100644 --- a/src/renderer/views/Setting.vue +++ b/src/renderer/views/Setting.vue @@ -1,5 +1,5 @@ @@ -1099,12 +1123,12 @@ export default {